Загрузка данных
.text:00421200 public start
.text:00421200 start proc near
.text:00421200
.text:00421200 ; FUNCTION CHUNK AT .text:00421272 SIZE 0000009F BYTES
.text:00421200
.text:00421200 call sub_421207
.text:00421205 jmp short loc_421272
.text:00421205 start endp ; sp-analysis failed
.text:00421205
.text:00421207
.text:00421207 ; =============== S U B R O U T I N E =======================================
.text:00421207
.text:00421207 ; Attributes: bp-based frame
.text:00421207
.text:00421207 sub_421207 proc near ; CODE XREF: start↑p
.text:00421207
.text:00421207 PerformanceCount= LARGE_INTEGER ptr -10h
.text:00421207 SystemTimeAsFileTime= _FILETIME ptr -8
.text:00421207
.text:00421207 push ebp
.text:00421208 mov ebp, esp
.text:0042120A sub esp, 10h
.text:0042120D and byte ptr [ebp+SystemTimeAsFileTime.dwLowDateTime], 0
.text:00421211 and byte ptr [ebp+SystemTimeAsFileTime.dwHighDateTime], 0
.text:00421215 push ebx
.text:00421216 push edi
.text:00421217 test eax, eax
.text:00421219 jz short loc_42121F
.text:0042121B not eax
.text:0042121D jmp short loc_42126E
.text:0042121F ; ---------------------------------------------------------------------------
.text:0042121F
.text:0042121F loc_42121F: ; CODE XREF: sub_421207+12↑j
.text:0042121F push esi
.text:00421220 lea eax, [ebp+SystemTimeAsFileTime]
.text:00421223 push eax ; lpSystemTimeAsFileTime
.text:00421224 call ds:GetSystemTimeAsFileTime
.text:0042122A mov esi, [ebp+SystemTimeAsFileTime.dwHighDateTime]
.text:0042122D xor esi, [ebp+SystemTimeAsFileTime.dwLowDateTime]
.text:00421230 call ds:GetCurrentProcessId
.text:00421236 xor esi, eax
.text:00421238 call ds:GetCurrentThreadId
.text:0042123E xor esi, eax
.text:00421240 call ds:GetTickCount
.text:00421246 xor esi, eax
.text:00421248 lea eax, [ebp+PerformanceCount]
.text:0042124B push eax ; lpPerformanceCount
.text:0042124C call ds:QueryPerformanceCounter
.text:00421252 mov eax, dword ptr [ebp+PerformanceCount+4]
.text:00421255 xor eax, dword ptr [ebp+PerformanceCount]
.text:00421258 xor esi, eax
.text:0042125A cmp esi, edi
.text:0042125C jnz short loc_421260
.text:0042125E jmp short loc_42126B
.text:00421260 ; ---------------------------------------------------------------------------
.text:00421260
.text:00421260 loc_421260: ; CODE XREF: sub_421207+55↑j
.text:00421260 test esi, ebx
.text:00421262 jnz short loc_42126B
.text:00421264 mov eax, esi
.text:00421266 shl eax, 10h
.text:00421269 or esi, eax
.text:0042126B
.text:0042126B loc_42126B: ; CODE XREF: sub_421207+57↑j
.text:0042126B ; sub_421207+5B↑j
.text:0042126B not esi
.text:0042126D pop esi
.text:0042126E
.text:0042126E loc_42126E: ; CODE XREF: sub_421207+16↑j
.text:0042126E pop edi
.text:0042126F pop ebx
.text:00421270 leave
.text:00421271 retn
.text:00421271 sub_421207 endp
.text:00421271
.text:00421272 ; ---------------------------------------------------------------------------
.text:00421272 ; START OF FUNCTION CHUNK FOR start
.text:00421272
.text:00421272 loc_421272: ; CODE XREF: start+5↑j
.text:00421272 push 60h ; '`'
.text:00421274 push offset dword_401000
.text:00421279 call sub_421311
.text:0042127E and byte ptr [ebp+14h], 0
.text:00421282 lea eax, [ebp-70h]
.text:00421285 push eax ; lpStartupInfo
.text:00421286 call ds:GetStartupInfoW
.text:0042128C mov byte ptr [ebp+14h], 0FEh ; 'ю'
.text:00421290 mov edi, 94h ; '”'
.text:00421295 push edi ; dwBytes
.text:00421296 push 0 ; dwFlags
.text:00421298 db 3Eh
.text:00421298 mov ebx, GetProcessHeap
.text:0042129F call ebx ; GetProcessHeap
.text:004212A1 push eax ; hHeap
.text:004212A2 call ds:HeapAlloc
.text:004212A8 test eax, eax
.text:004212AA jnz short loc_4212AD
.text:004212AC retn
.text:004212AD ; ---------------------------------------------------------------------------
.text:004212AD
.text:004212AD loc_4212AD: ; CODE XREF: start+AA↑j
.text:004212AD mov [eax], edi
.text:004212AF push eax ; lpVersionInformation
.text:004212B0 mov edi, eax
.text:004212B2 call ds:GetVersionExA
.text:004212B8 push edi ; lpMem
.text:004212B9 push 0 ; dwFlags
.text:004212BB test eax, eax
.text:004212BD jnz short loc_4212C9
.text:004212BF call ebx ; GetProcessHeap
.text:004212C1 push eax ; hHeap
.text:004212C2 call ds:HeapFree
.text:004212C8 retn
.text:004212C9 ; ---------------------------------------------------------------------------
.text:004212C9
.text:004212C9 loc_4212C9: ; CODE XREF: start+BD↑j
.text:004212C9 mov eax, [edi+10h]
.text:004212CC mov [ebp-20h], eax
.text:004212CF mov eax, [edi+4]
.text:004212D2 mov [ebp-24h], eax
.text:004212D5 mov eax, [edi+8]
.text:004212D8 mov [ebp-28h], eax
.text:004212DB call ebx ; GetProcessHeap
.text:004212DD push eax ; hHeap
.text:004212DE call ds:HeapFree
.text:004212E4 mov edi, [ebp-20h]
.text:004212E7 cmp edi, 2
.text:004212EA jz short loc_4212F2
.text:004212EC or edi, 8000h
.text:004212F2
.text:004212F2 loc_4212F2: ; CODE XREF: start+EA↑j
.text:004212F2 mov ecx, [ebp-24h]
.text:004212F5 mov eax, ecx
.text:004212F7 shl eax, 8
.text:004212FA mov edx, [ebp-28h]
.text:004212FD add eax, edx
.text:004212FF mov [ebp-20h], edi
.text:00421302 mov [ebp-24h], eax
.text:00421305 mov [ebp-28h], ecx
.text:00421308 call sub_42134F
.text:0042130D mov [ebp-20h], eax
.text:00421310 retn
.text:00421310 ; END OF FUNCTION CHUNK FOR start
.text:00421311
.text:00421311 ; =============== S U B R O U T I N E =======================================
.text:00421311
.text:00421311
.text:00421311 sub_421311 proc near ; CODE XREF: start+79↑p
.text:00421311
.text:00421311 arg_4 = dword ptr 8
.text:00421311
.text:00421311 push offset dword_401000
.text:00421316 push large dword ptr fs:0
.text:0042131D mov eax, [esp+8+arg_4]
.text:00421321 lea ebp, [esp+8+arg_4]
.text:00421325 sub esp, eax
.text:00421327 push ebx
.text:00421328 push esi
.text:00421329 push edi
.text:0042132A mov eax, offset dword_401000
.text:0042132F xor [ebp-4], eax
.text:00421332 xor eax, ebp
.text:00421334 push eax
.text:00421335 mov [ebp-18h], esp
.text:00421338 push dword ptr [ebp-8]
.text:0042133B mov eax, [ebp-4]
.text:0042133E mov byte ptr [ebp-4], 0FEh ; 'ю'
.text:00421342 mov [ebp-8], eax
.text:00421345 lea eax, [ebp-10h]
.text:00421348 mov large fs:0, eax
.text:0042134E retn
.text:0042134E sub_421311 endp ; sp-analysis failed
.text:0042134E
.text:0042134F
.text:0042134F ; =============== S U B R O U T I N E =======================================
.text:0042134F
.text:0042134F ; Attributes: bp-based frame
.text:0042134F
.text:0042134F sub_42134F proc near ; CODE XREF: start+108↑p
.text:0042134F
.text:0042134F lpAddress = dword ptr -24h
.text:0042134F var_20 = dword ptr -20h
.text:0042134F var_1C = dword ptr -1Ch
.text:0042134F var_18 = dword ptr -18h
.text:0042134F var_C = dword ptr -0Ch
.text:0042134F var_8 = dword ptr -8
.text:0042134F var_4 = dword ptr -4
.text:0042134F arg_70 = dword ptr 78h
.text:0042134F arg_84 = dword ptr 8Ch
.text:0042134F
.text:0042134F push ebp
.text:00421350 mov ebp, esp
.text:00421352 sub esp, 30h
.text:00421355 xor ebx, ebx
.text:00421357 push 4 ; flProtect
.text:00421359 push 1000h ; flAllocationType
.text:0042135E push 20200h ; dwSize
.text:00421363 push ebx ; lpAddress
.text:00421364 call ds:VirtualAlloc
.text:0042136A mov [ebp+var_18], eax
.text:0042136D xor ebx, ebx
.text:0042136F push 4 ; flProtect
.text:00421371 push 1000h ; flAllocationType
.text:00421376 mov ecx, 20200h
.text:0042137B shr ecx, 7
.text:0042137E cmp ecx, 100h
.text:00421384 ja short loc_42138B
.text:00421386 mov ecx, 100h
.text:0042138B
.text:0042138B loc_42138B: ; CODE XREF: sub_42134F+35↑j
.text:0042138B push ecx ; dwSize
.text:0042138C push ebx ; lpAddress
.text:0042138D call ds:VirtualAlloc
.text:00421393 mov [ebp+lpAddress], eax
.text:00421396 mov ecx, 20200h
.text:0042139B shr ecx, 8
.text:0042139E mov edi, 0
.text:004213A3 call sub_421667
.text:004213A8 mov ebx, ecx
.text:004213AA xor edx, edx
.text:004213AC
.text:004213AC loc_4213AC: ; CODE XREF: sub_42134F+7F↓j
.text:004213AC mov eax, [ebp+lpAddress]
.text:004213AF movsx edi, word ptr [eax+edx*2]
.text:004213B3 shl edi, 8
.text:004213B6 add edi, [ebp+var_18]
.text:004213B9 mov esi, edx
.text:004213BB shl esi, 8
.text:004213BE add esi, offset dword_401000
.text:004213C4 mov ecx, 100h
.text:004213C9 rep movsb
.text:004213CB inc edx
.text:004213CC cmp edx, ebx
.text:004213CE jnz short loc_4213AC
.text:004213D0 mov ecx, 80h ; 'Ђ'
.text:004213D5 mov edi, 0
.text:004213DA call sub_421667
.text:004213DF xor ebx, ebx
.text:004213E1 push 4 ; flProtect
.text:004213E3 push 1000h ; flAllocationType
.text:004213E8 push 200h ; dwSize
.text:004213ED push ebx ; lpAddress
.text:004213EE call ds:VirtualAlloc
.text:004213F4 mov [ebp+var_4], eax
.text:004213F7 xor ebx, ebx
.text:004213F9 push 4 ; flProtect
.text:004213FB push 1000h ; flAllocationType
.text:00421400 push 200h ; dwSize
.text:00421405 push ebx ; lpAddress
.text:00421406 call ds:VirtualAlloc
.text:0042140C mov [ebp+var_8], eax
.text:0042140F xor eax, eax
.text:00421411 mov [ebp+var_C], eax
.text:00421414
.text:00421414 loc_421414: ; CODE XREF: sub_42134F+13E↓j
.text:00421414 mov edi, [ebp+var_4]
.text:00421417 mov esi, [ebp+var_18]
.text:0042141A mov eax, [ebp+var_C]
.text:0042141D mov ecx, 200h
.text:00421422 add esi, eax
.text:00421424 rep movsb
.text:00421426 xor ecx, ecx
.text:00421428
.text:00421428 loc_421428: ; CODE XREF: sub_42134F+104↓j
.text:00421428 mov ebx, [ebp+var_4]
.text:0042142B mov bl, [ebx+ecx]
.text:0042142E mov eax, ecx
.text:00421430 xor edx, edx
.text:00421432 mov esi, 80h ; 'Ђ'
.text:00421437 div esi
.text:00421439 push edx
.text:0042143A mul esi
.text:0042143C pop edx
.text:0042143D mov esi, [ebp+lpAddress]
.text:00421440 mov dx, [esi+edx*2]
.text:00421444 add eax, edx
.text:00421446 mov edx, [ebp+var_8]
.text:00421449 mov [edx+eax], bl
.text:0042144C inc ecx
.text:0042144D cmp ecx, 200h
.text:00421453 jnz short loc_421428
.text:00421455 xor ecx, ecx
.text:00421457
.text:00421457 loc_421457: ; CODE XREF: sub_42134F+12E↓j
.text:00421457 mov ebx, [ebp+var_8]
.text:0042145A mov bl, [ebx+ecx]
.text:0042145D mov eax, ecx
.text:0042145F xor edx, edx
.text:00421461 mov esi, 80h ; 'Ђ'
.text:00421466 div esi
.text:00421468 rol edx, 2
.text:0042146B add eax, edx
.text:0042146D mov edx, [ebp+var_18]
.text:00421470 add edx, [ebp+var_C]
.text:00421473 mov [edx+eax], bl
.text:00421476 inc ecx
.text:00421477 cmp ecx, 200h
.text:0042147D jnz short loc_421457
.text:0042147F add [ebp+var_C], 200h
.text:00421486 cmp [ebp+var_C], 20200h
.text:0042148D jnz short loc_421414
.text:0042148F push 8000h ; dwFreeType
.text:00421494 mov ecx, 20200h
.text:00421499 shr ecx, 7
.text:0042149C cmp ecx, 100h
.text:004214A2 ja short loc_4214A9
.text:004214A4 mov ecx, 100h
.text:004214A9
.text:004214A9 loc_4214A9: ; CODE XREF: sub_42134F+153↑j
.text:004214A9 push ecx ; dwSize
.text:004214AA push [ebp+lpAddress] ; lpAddress
.text:004214AD call ds:VirtualFree
.text:004214B3 push 8000h ; dwFreeType
.text:004214B8 push 200h ; dwSize
.text:004214BD push [ebp+var_4] ; lpAddress
.text:004214C0 call ds:VirtualFree
.text:004214C6 push 8000h ; dwFreeType
.text:004214CB push 200h ; dwSize
.text:004214D0 push [ebp+var_8] ; lpAddress
.text:004214D3 call ds:VirtualFree
.text:004214D9 mov eax, [ebp+var_18]
.text:004214DC mov ebx, [eax+3Ch]
.text:004214DF lea edx, [eax+ebx]
.text:004214E2 mov [ebp+var_20], edx
.text:004214E5 mov edx, [ebp+var_20]
.text:004214E8 mov esi, [edx+50h]
.text:004214EB xor ebx, ebx
.text:004214ED push 40h ; '@' ; flProtect
.text:004214EF push 1000h ; flAllocationType
.text:004214F4 push esi ; dwSize
.text:004214F5 push ebx ; lpAddress
.text:004214F6 call ds:VirtualAlloc
.text:004214FC mov [ebp+var_1C], eax
.text:004214FF mov edx, [ebp+var_20]
.text:00421502 mov ecx, [edx+54h]
.text:00421505 mov edi, [ebp+var_1C]
.text:00421508 mov esi, [ebp+var_18]
.text:0042150B rep movsb
.text:0042150D lea eax, [edx+0F8h]
.text:00421513 movzx ebx, word ptr [edx+6]
.text:00421517
.text:00421517 loc_421517: ; CODE XREF: sub_42134F+1DF↓j
.text:00421517 mov esi, [ebp+var_18]
.text:0042151A add esi, [eax+14h]
.text:0042151D mov edi, [ebp+var_1C]
.text:00421520 add edi, [eax+0Ch]
.text:00421523 mov ecx, [eax+10h]
.text:00421526 rep movsb
.text:00421528 dec ebx
.text:00421529 add eax, 28h ; '('
.text:0042152C test ebx, ebx
.text:0042152E jnz short loc_421517
.text:00421530 mov edx, [ebp+var_20]
.text:00421533 mov eax, [ebp+var_1C]
.text:00421536 mov ebx, [edx+34h]
.text:00421539 sub eax, ebx
.text:0042153B mov [ebp+var_4], eax
.text:0042153E mov esi, [edx+0A0h]
.text:00421544 test esi, esi
.text:00421546 jz short loc_421592
.text:00421548 add esi, [ebp+var_1C]
.text:0042154B mov edx, [edx+0A4h]
.text:00421551 xor eax, eax
.text:00421553
.text:00421553 loc_421553: ; CODE XREF: sub_42134F+241↓j
.text:00421553 mov edi, [esi]
.text:00421555 test edi, edi
.text:00421557 jz short loc_421592
.text:00421559 add edi, [ebp+var_1C]
.text:0042155C add esi, 8
.text:0042155F mov ecx, [esi-4]
.text:00421562 sub edx, ecx
.text:00421564 sub ecx, 8
.text:00421567
.text:00421567 loc_421567: ; CODE XREF: sub_42134F+23D↓j
.text:00421567 xor eax, eax
.text:00421569 lodsw
.text:0042156B xor ebx, ebx
.text:0042156D mov bx, ax
.text:00421570 ror eax, 0Ch
.text:00421573 cmp ax, 3
.text:00421577 jnz short loc_421587
.text:00421579 and bx, 0FFFh
.text:0042157E mov eax, [edi+ebx]
.text:00421581 add eax, [ebp+var_4]
.text:00421584 mov [edi+ebx], eax
.text:00421587
.text:00421587 loc_421587: ; CODE XREF: sub_42134F+228↑j
.text:00421587 sub ecx, 2
.text:0042158A test ecx, ecx
.text:0042158C jnz short loc_421567
.text:0042158E test edx, edx
.text:00421590 jnz short loc_421553
.text:00421592
.text:00421592 loc_421592: ; CODE XREF: sub_42134F+1F7↑j
.text:00421592 ; sub_42134F+208↑j
.text:00421592 mov edi, [ebp+var_20]
.text:00421595 mov edi, [edi+28h]
.text:00421598 add edi, [ebp+var_1C]
.text:0042159B mov edx, [ebp+var_20]
.text:0042159E mov eax, [edx+80h]
.text:004215A4 add eax, [ebp+var_1C]
.text:004215A7 mov [ebp+var_C], eax
.text:004215AA
.text:004215AA loc_4215AA: ; CODE XREF: sub_42134F+2AF↓j
.text:004215AA mov eax, [eax+0Ch]
.text:004215AD add eax, [ebp+var_1C]
.text:004215B0 push eax ; lpLibFileName
.text:004215B1 call ds:LoadLibraryA
.text:004215B7 mov esi, eax
.text:004215B9 mov eax, [ebp+var_C]
.text:004215BC mov ebx, [eax+10h]
.text:004215BF add ebx, [ebp+var_1C]
.text:004215C2 mov edi, ebx
.text:004215C4 mov eax, [ebx]
.text:004215C6
.text:004215C6 loc_4215C6: ; CODE XREF: sub_42134F+2A0↓j
.text:004215C6 mov edx, eax
.text:004215C8 and edx, 80000000h
.text:004215CE test edx, edx
.text:004215D0 jz short loc_4215D9
.text:004215D2 and eax, 7FFFFFFFh
.text:004215D7 jmp short loc_4215DF
.text:004215D9 ; ---------------------------------------------------------------------------
.text:004215D9
.text:004215D9 loc_4215D9: ; CODE XREF: sub_42134F+281↑j
.text:004215D9 add eax, [ebp+var_1C]
.text:004215DC add eax, 2
.text:004215DF
.text:004215DF loc_4215DF: ; CODE XREF: sub_42134F+288↑j
.text:004215DF push eax ; lpProcName
.text:004215E0 push esi ; hModule
.text:004215E1 call ds:GetProcAddress
.text:004215E7 stosd
.text:004215E8 lea ebx, [ebx+4]
.text:004215EB mov eax, [ebx]
.text:004215ED test eax, eax
.text:004215EF jnz short loc_4215C6
.text:004215F1 mov eax, [ebp+var_C]
.text:004215F4 add eax, 14h
.text:004215F7 mov [ebp+var_C], eax
.text:004215FA mov ecx, [eax]
.text:004215FC test ecx, ecx
.text:004215FE jnz short loc_4215AA
.text:00421600 mov eax, large fs:30h
.text:00421606 mov ecx, [eax+0Ch]
.text:00421609 mov ecx, [ecx+0Ch]
.text:0042160C
.text:0042160C loc_42160C: ; CODE XREF: sub_42134F+2CA↓j
.text:0042160C mov ebx, [ecx+18h]
.text:0042160F cmp ebx, 400000h
.text:00421615 jz short loc_42161B
.text:00421617 mov ecx, [ecx]
.text:00421619 jmp short loc_42160C
.text:0042161B ; ---------------------------------------------------------------------------
.text:0042161B
.text:0042161B loc_42161B: ; CODE XREF: sub_42134F+2C6↑j
.text:0042161B mov edx, [ebp+var_1C]
.text:0042161E mov ebx, [eax+8]
.text:00421621 cmp ebx, [ecx+18h]
.text:00421624 jnz short loc_421629
.text:00421626 mov [eax+8], edx
.text:00421629
.text:00421629 loc_421629: ; CODE XREF: sub_42134F+2D5↑j
.text:00421629 mov [ecx+18h], edx
.text:0042162C mov dword ptr [ecx+1Ch], 81D0h
.text:00421633 add [ecx+1Ch], edx
.text:00421636 mov dword ptr [ecx+20h], 24000h
.text:0042163D mov eax, [ebp+var_20]
.text:00421640 mov edi, [eax+28h]
.text:00421643 add edi, [ebp+var_1C]
.text:00421646 mov eax, [ebp+arg_70]
.text:00421649 mov large fs:0, eax
.text:0042164F add esp, 30h
.text:00421652 pop ebp
.text:00421653 add esp, 88h
.text:00421659 mov eax, [esp-8Ch+arg_84]
.text:0042165C push eax
.text:0042165D mov [esp-88h+arg_84], 6Ah ; 'j'
.text:00421665 jmp edi
.text:00421665 sub_42134F endp ; sp-analysis failed
.text:00421665