Function at 0x4122d0
Capabilities:
Check if file exists
Copy file
Create directory
Encode data using xor
Get common file path
Get file attributes

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x51e853
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ebx
sub esp, 0x220
push esi
push edi
mov dword [ebp - 0xa8], ecx
push 0x104
lea eax, [ebp - 0x230]
mov dword [ebp - 4], 1
push 0
push eax
call fcn.004f9bf0
add esp, 0xc
lea eax, [ebp - 0x230]
push eax
push 0
push 0
push 0x1a
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
xorps xmm0, xmm0
mov byte [ebp - 0x22], 0xb7
movq qword [ebp - 0x21], xmm0
xor ecx, ecx
mov byte [ebp - 0x19], 0
nop
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0x22], al
inc ecx
cmp ecx, 1
jb 0x412350
mov dword [0x5585d0], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x22]
mov byte [ebp - 0x21], 0
movups xmmword [ebp - 0x5c], xmm0
mov dword [ebp - 0x4c], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x48], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x412383
sub ecx, edx
lea eax, [ebp - 0x22]
push ecx
push eax
lea ecx, [ebp - 0x5c]
call fcn.00402b20
mov byte [ebp - 4], 2
lea edx, [ebp - 0x5c]
cmp dword [ebp - 0x48], 0x10
xorps xmm0, xmm0
movups xmmword [ebp - 0xf4], xmm0
cmovae edx, dword [ebp - 0x5c]
mov ecx, edx
mov dword [ebp - 0xe4], 0
mov dword [ebp - 0xe0], 0
lea esi, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4123d0
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0xf4]
call fcn.00402b20
lea eax, [ebp - 0xf4]
mov byte [ebp - 4], 3
push eax
lea edx, [ebp - 0x230]
lea ecx, [ebp - 0x124]
call fcn.004839c0
add esp, 4
lea ecx, [ebx + 8]
mov byte [ebp - 4], 4
push ecx
mov ecx, eax
call fcn.0047f840
mov dword [ebp - 0x7c], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x8c], xmm0
mov dword [ebp - 0x78], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x8c], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x7c], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x110]
cmp ecx, 0x10
jb 0x41248f
mov edx, dword [ebp - 0x124]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x412485
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413500
push ecx
push edx
call fcn.004f7c11
add esp, 8
mov dword [ebp - 0x114], 0
mov dword [ebp - 0x110], 0xf
mov byte [ebp - 0x124], 0
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0xe0]
cmp ecx, 0x10
jb 0x4124e8
mov edx, dword [ebp - 0xf4]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4124de
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413500
push ecx
push edx
call fcn.004f7c11
add esp, 8
mov dword [ebp - 0xe4], 0
mov dword [ebp - 0xe0], 0xf
mov byte [ebp - 0xf4], 0
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x48]
cmp ecx, 0x10
jb 0x41253b
mov edx, dword [ebp - 0x5c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x412531
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413500
push ecx
push edx
call fcn.004f7c11
add esp, 8
mov edx, dword [ebp - 0x78]
lea esi, [ebp - 0x8c]
cmp edx, 0x10
jb 0x412557
mov esi, dword [ebp - 0x8c]
test esi, esi
je 0x41342e
mov ecx, esi
lea edi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x412560
sub ecx, edi
je 0x41342e
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x412599
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x412599
cmp eax, 0x20
je 0x412599
cmp eax, 0x45
je 0x412599
cmp eax, 0x24
jne 0x41342b
movaps xmm0, xmmword [0x543230]
xor ecx, ecx
mov dword [ebp - 0x2c], 0x828c9bb7
movups xmmword [ebp - 0x28], xmm0
nop dword [eax]
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0x2c], al
inc ecx
cmp ecx, 0xb
jb 0x4125b0
mov dword [0x5584e0], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x2c]
mov byte [ebp - 0x21], 0
movups xmmword [ebp - 0x5c], xmm0
mov dword [ebp - 0x4c], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x48], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4125e3
sub ecx, edx
lea eax, [ebp - 0x2c]
push ecx
push eax
lea ecx, [ebp - 0x5c]
call fcn.00402b20
mov byte [ebp - 4], 9
lea esi, [ebp - 0x5c]
cmp dword [ebp - 0x48], 0x10
cmovae esi, dword [ebp - 0x5c]
sub esp, 0x18
mov ecx, esi
mov edi, esp
mov dword [ebp - 0x18], edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x412615
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebp - 0x7c]
sub eax, edx
cmp eax, ecx
jb 0x413505
cmp dword [ebp - 0x78], 0x10
lea eax, [ebp - 0x8c]
push ecx
cmovae eax, dword [ebp - 0x8c]
push esi
push edx
push eax
push ecx
push dword [ebp - 0x18]
mov ecx, edi
call fcn.00487550
call fcn.0040c4c0
mov byte [ebp - 4], 8
add esp, 0x18
mov ecx, dword [ebp - 0x48]
mov byte [ebp - 0x11], al
cmp ecx, 0x10
jb 0x412696
mov edx, dword [ebp - 0x5c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x412689
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413555
push ecx
push edx
call fcn.004f7c11
mov al, byte [ebp - 0x11]
add esp, 8
test al, al
je 0x412cc9
xorps xmm0, xmm0
mov byte [ebp - 0x22], 0xb7
movq qword [ebp - 0x21], xmm0
xor ecx, ecx
mov byte [ebp - 0x19], 0
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0x22], al
inc ecx
cmp ecx, 1
jb 0x4126b0
mov dword [0x5585d0], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x22]
mov byte [ebp - 0x21], 0
movups xmmword [ebp - 0xc4], xmm0
mov dword [ebp - 0xb4], 0
lea edx, [ecx + 1]
mov dword [ebp - 0xb0], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4126f0
sub ecx, edx
lea eax, [ebp - 0x22]
push ecx
push eax
lea ecx, [ebp - 0xc4]
call fcn.00402b20
mov byte [ebp - 4], 0xa
lea esi, [ebp - 0xc4]
cmp dword [ebp - 0xb0], 0x10
cmovae esi, dword [ebp - 0xc4]
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x412726
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebx + 0x30]
sub eax, edx
cmp eax, ecx
jb 0x41350a
cmp dword [ebx + 0x34], 0x10
lea eax, [ebx + 0x20]
push ecx
cmovae eax, dword [ebx + 0x20]
push esi
push edx
push eax
push ecx
push dword [ebp - 0x18]
lea ecx, [ebp - 0x5c]
call fcn.00487550
mov byte [ebp - 4], 0xb
lea ecx, [ebx + 8]
cmp dword [ebx + 0x1c], 0x10
mov edx, dword [ebp - 0x4c]
cmovae ecx, dword [ebx + 8]
mov eax, dword [ebp - 0x48]
mov edi, dword [ebx + 0x18]
sub eax, edx
mov dword [ebp - 0x18], edx
push edi
push ecx
cmp edi, eax
ja 0x4127ab
cmp dword [ebp - 0x48], 0x10
lea esi, [ebp - 0x5c]
lea eax, [edx + edi]
cmovae esi, dword [ebp - 0x5c]
mov dword [ebp - 0x4c], eax
lea eax, [esi + edx]
push eax
call fcn.004f9670
mov ecx, dword [ebp - 0x18]
lea eax, [edi + esi]
add esp, 0xc
mov byte [eax + ecx], 0
lea eax, [ebp - 0x5c]
jmp 0x4127bb
mov byte [ebp - 0x18], 0
lea ecx, [ebp - 0x5c]
push dword [ebp - 0x18]
push edi
call fcn.004859b0
mov dword [ebp - 0x94], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0xa4], xmm0
mov dword [ebp - 0x90], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0xa4], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x94], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0x48]
cmp ecx, 0x10
jb 0x412839
mov edx, dword [ebp - 0x5c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x41282f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41350f
push ecx
push edx
call fcn.004f7c11
add esp, 8
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0xf
mov byte [ebp - 0x5c], 0
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0xb0]
cmp ecx, 0x10
jb 0x412889
mov edx, dword [ebp - 0xc4]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x41287f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41350f
push ecx
push edx
call fcn.004f7c11
add esp, 8
mov esi, dword [ebp - 0x90]
lea edx, [ebp - 0xa4]
mov edi, dword [ebp - 0xa4]
cmp esi, 0x10
jb 0x4128a6
mov edx, edi
test edx, edx
je 0x4128ee
mov ecx, edx
lea eax, [ecx + 1]
mov dword [ebp - 0x18], eax
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4128b0
sub ecx, dword [ebp - 0x18]
je 0x4128ee
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x41290b
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x41290b
cmp eax, 0x20
je 0x41290b
cmp eax, 0x45
je 0x41290b
cmp eax, 0x24
je 0x41290b
mov esi, dword [ebp - 0x90]
mov edi, dword [ebp - 0xa4]
cmp esi, 0x10
lea eax, [ebp - 0xa4]
push 0
cmovae eax, edi
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x412c8b
movaps xmm0, xmmword [0x543230]
xor ecx, ecx
mov dword [ebp - 0x2c], 0x828c9bb7
movups xmmword [ebp - 0x28], xmm0
nop
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0x2c], al
inc ecx
cmp ecx, 0xb
jb 0x412920
mov dword [0x5584e0], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x2c]
mov byte [ebp - 0x21], 0
movups xmmword [ebp - 0x44], xmm0
mov dword [ebp - 0x34], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x30], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x412953
sub ecx, edx
lea eax, [ebp - 0x2c]
push ecx
push eax
lea ecx, [ebp - 0x44]
call fcn.00402b20
mov byte [ebp - 4], 0xf
lea esi, [ebp - 0x44]
cmp dword [ebp - 0x30], 0x10
cmovae esi, dword [ebp - 0x44]
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x412980
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebp - 0x94]
sub eax, edx
cmp eax, ecx
jb 0x413514
cmp dword [ebp - 0x90], 0x10
lea eax, [ebp - 0xa4]
push ecx
cmovae eax, dword [ebp - 0xa4]
push esi
push edx
push eax
push ecx
push dword [ebp - 0x18]
lea ecx, [ebp - 0xdc]
call fcn.00487550
mov byte [ebp - 4], 0x10
lea edi, [ebp - 0xdc]
cmp dword [ebp - 0xc8], 0x10
movaps xmm0, xmmword [0x543230]
cmovae edi, dword [ebp - 0xdc]
xor ecx, ecx
mov dword [ebp - 0x2c], 0x828c9bb7
movups xmmword [ebp - 0x28], xmm0
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0x2c], al
inc ecx
cmp ecx, 0xb
jb 0x4129f1
mov dword [0x5584e0], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x2c]
mov byte [ebp - 0x21], 0
movups xmmword [ebp - 0x10c], xmm0
mov dword [ebp - 0xfc], 0
lea edx, [ecx + 1]
mov dword [ebp - 0xf8], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x412a30
sub ecx, edx
lea eax, [ebp - 0x2c]
push ecx
push eax
lea ecx, [ebp - 0x10c]
call fcn.00402b20
mov byte [ebp - 4], 0x11
lea esi, [ebp - 0x10c]
cmp dword [ebp - 0xf8], 0x10
cmovae esi, dword [ebp - 0x10c]
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x412a66
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebp - 0x7c]
sub eax, edx
cmp eax, ecx
jb 0x413519
cmp dword [ebp - 0x78], 0x10
lea eax, [ebp - 0x8c]
push ecx
cmovae eax, dword [ebp - 0x8c]
push esi
push edx
push eax
push ecx
push dword [ebp - 0x18]
lea ecx, [ebp - 0xc4]
call fcn.00487550
cmp dword [ebp - 0xb0], 0x10
lea eax, [ebp - 0xc4]
push 0
cmovae eax, dword [ebp - 0xc4]
push edi
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
mov ecx, dword [ebp - 0xb0]
mov esi, eax
cmp ecx, 0x10
jb 0x412aff
mov edx, dword [ebp - 0xc4]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x412af5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41351e
push ecx
push edx
call fcn.004f7c11
add esp, 8
mov byte [ebp - 4], 0x10
mov ecx, dword [ebp - 0xf8]
mov dword [ebp - 0xb4], 0
mov dword [ebp - 0xb0], 0xf
mov byte [ebp - 0xc4], 0
cmp ecx, 0x10
jb 0x412b58
mov edx, dword [ebp - 0x10c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x412b4e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41351e
push ecx
push edx
call fcn.004f7c11
add esp, 8
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp - 0xc8]
cmp ecx, 0x10
jb 0x412b96
mov edx, dword [ebp - 0xdc]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x412b8c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41351e
push ecx
push edx
call fcn.004f7c11
add esp, 8
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0xcc], 0
mov dword [ebp - 0xc8], 0xf
mov byte [ebp - 0xdc], 0
cmp ecx, 0x10
jb 0x412be9
mov edx, dword [ebp - 0x44]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x412bdf
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41351e
push ecx
push edx
call fcn.004f7c11
add esp, 8
test esi, esi
je 0x412bfb
mov eax, dword [ebp - 0xa8]
mov byte [eax], 1
jmp 0x412c8b
cmp dword [ebp - 0x90], 0x10
lea edx, [ebp - 0xa4]
xorps xmm0, xmm0
mov dword [ebp - 0x34], 0
cmovae edx, dword [ebp - 0xa4]
mov ecx, edx
mov dword [ebp - 0x30], 0
movups xmmword [ebp - 0x44], xmm0
lea esi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x412c30
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x44]
call fcn.00402b20
push ecx
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0x12
call fcn.0040c680
mov byte [ebp - 4], 0xe
add esp, 4
mov ecx, dword [ebp - 0x30]
cmp ecx, 0x10
jb 0x412c8b
mov edx, dword [ebp - 0x44]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x412c81
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413523
push ecx
push edx
call fcn.004f7c11
add esp, 8
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x90]
cmp ecx, 0x10
jb 0x412cc9
mov edx, dword [ebp - 0xa4]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x412cbf
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413528
push ecx
push edx
call fcn.004f7c11
add esp, 8
movaps xmm0, xmmword [0x543160]
xor ecx, ecx
mov byte [ebp - 0x29], 0xb7
movups xmmword [ebp - 0x28], xmm0
nop word [eax + eax]
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0x29], al
inc ecx
cmp ecx, 8
jb 0x412ce0
mov dword [0x5585d4], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x29]
mov byte [ebp - 0x21], 0
movups xmmword [ebp - 0xdc], xmm0
mov dword [ebp - 0xcc], 0
lea edx, [ecx + 1]
mov dword [ebp - 0xc8], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x412d20
sub ecx, edx
lea eax, [ebp - 0x29]
push ecx
push eax
lea ecx, [ebp - 0xdc]
call fcn.00402b20
mov byte [ebp - 4], 0x13
lea esi, [ebp - 0xdc]
cmp dword [ebp - 0xc8], 0x10
cmovae esi, dword [ebp - 0xdc]
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x412d56
mov edi, closesocket
sub ecx, edx
mov edx, dword [ebp - 0x7c]
mov eax, edi
sub eax, edx
cmp eax, ecx
jb 0x41352d
cmp dword [ebp - 0x78], 0x10
lea eax, [ebp - 0x8c]
push ecx
cmovae eax, dword [ebp - 0x8c]
push esi
push edx
push eax
push ecx
push dword [ebp - 0x18]
lea ecx, [ebp - 0x44]
call fcn.00487550
cmp dword [ebp - 0x30], 0x10
lea edx, [ebp - 0x44]
jb 0x412da4
mov edx, dword [ebp - 0x44]
test edx, edx
je 0x412de7
mov ecx, edx
lea esi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x412db0
sub ecx, esi
je 0x412de7
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x412de1
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x412de1
cmp eax, 0x20
je 0x412de1
cmp eax, 0x45
je 0x412de1
cmp eax, 0x24
jne 0x412de7
mov byte [ebp - 0x11], 1
jmp 0x412deb
mov byte [ebp - 0x11], 0
mov ecx, dword [ebp - 0x30]
cmp ecx, 0x10
jb 0x412e1f
mov edx, dword [ebp - 0x44]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x412e15
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413532
push ecx
push edx
call fcn.004f7c11
add esp, 8
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0xc8]
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0xf
mov byte [ebp - 0x44], 0
cmp ecx, 0x10
jb 0x412e6f
mov edx, dword [ebp - 0xdc]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x412e65
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413532
push ecx
push edx
call fcn.004f7c11
add esp, 8
cmp byte [ebp - 0x11], 0
je 0x41342b
xorps xmm0, xmm0
mov byte [ebp - 0x22], 0xb7
movq qword [ebp - 0x21], xmm0
xor ecx, ecx
mov byte [ebp - 0x19], 0
nop dword [eax + eax]
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0x22], al
inc ecx
cmp ecx, 1
jb 0x412e90
mov dword [0x5585d0], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x22]
mov byte [ebp - 0x21], 0
movups xmmword [ebp - 0x44], xmm0
mov dword [ebp - 0x34], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x30], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x412ec3
sub ecx, edx
lea eax, [ebp - 0x22]
push ecx
push eax
lea ecx, [ebp - 0x44]
call fcn.00402b20
mov byte [ebp - 4], 0x14
lea esi, [ebp - 0x44]
cmp dword [ebp - 0x30], 0x10
cmovae esi, dword [ebp - 0x44]
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x412ef0
sub ecx, edx
mov eax, edi
mov edx, dword [ebx + 0x30]
sub eax, edx
cmp eax, ecx
jb 0x413537
cmp dword [ebx + 0x34], 0x10
lea eax, [ebx + 0x20]
push ecx
cmovae eax, dword [ebx + 0x20]
push esi
push edx
push eax
push ecx
push dword [ebp - 0x18]
lea ecx, [ebp - 0x5c]
call fcn.00487550
mov byte [ebp - 4], 0x15
lea ecx, [ebx + 8]
cmp dword [ebx + 0x1c], 0x10
mov esi, dword [ebp - 0x48]
mov eax, esi
cmovae ecx, dword [ebx + 8]
mov edi, dword [ebx + 0x18]
mov edx, dword [ebp - 0x4c]
sub eax, edx
push edi
push ecx
cmp edi, eax
ja 0x412f6a
lea eax, [edi + edx]
cmp esi, 0x10
mov dword [ebp - 0x4c], eax
lea eax, [ebp - 0x5c]
cmovae eax, dword [ebp - 0x5c]
lea esi, [eax + edx]
push esi
call fcn.004f9670
add esp, 0xc
mov byte [edi + esi], 0
lea eax, [ebp - 0x5c]
jmp 0x412f7a
mov byte [ebp - 0x18], 0
lea ecx, [ebp - 0x5c]
push dword [ebp - 0x18]
push edi
call fcn.004859b0
mov dword [ebp - 0x64], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x74], xmm0
mov dword [ebp - 0x60], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x74], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x64], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov byte [ebp - 4], 0x17
mov ecx, dword [ebp - 0x48]
cmp ecx, 0x10
jb 0x412fe9
mov edx, dword [ebp - 0x5c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x412fdf
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41353c
push ecx
push edx
call fcn.004f7c11
add esp, 8
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0xf
mov byte [ebp - 0x5c], 0
mov byte [ebp - 4], 0x18
mov ecx, dword [ebp - 0x30]
cmp ecx, 0x10
jb 0x413033
mov edx, dword [ebp - 0x44]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x413029
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41353c
push ecx
push edx
call fcn.004f7c11
add esp, 8
mov esi, dword [ebp - 0x60]
lea edx, [ebp - 0x74]
mov edi, dword [ebp - 0x74]
cmp esi, 0x10
jb 0x413047
mov edx, edi
test edx, edx
je 0x413088
mov ecx, edx
lea eax, [ecx + 1]
mov dword [ebp - 0x18], eax
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413050
sub ecx, dword [ebp - 0x18]
je 0x413088
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x4130a2
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x4130a2
cmp eax, 0x20
je 0x4130a2
cmp eax, 0x45
je 0x4130a2
cmp eax, 0x24
je 0x4130a2
mov esi, dword [ebp - 0x60]
mov edi, dword [ebp - 0x74]
cmp esi, 0x10
lea eax, [ebp - 0x74]
push 0
cmovae eax, edi
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x4133f7
movaps xmm0, xmmword [0x543160]
xor ecx, ecx
mov byte [ebp - 0x29], 0xb7
movups xmmword [ebp - 0x28], xmm0
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0x29], al
inc ecx
cmp ecx, 8
jb 0x4130b3
mov dword [0x5585d4], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x29]
mov byte [ebp - 0x21], 0
movups xmmword [ebp - 0x44], xmm0
mov dword [ebp - 0x34], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x30], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4130e6
sub ecx, edx
lea eax, [ebp - 0x29]
push ecx
push eax
lea ecx, [ebp - 0x44]
call fcn.00402b20
mov byte [ebp - 4], 0x19
lea esi, [ebp - 0x44]
cmp dword [ebp - 0x30], 0x10
cmovae esi, dword [ebp - 0x44]
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413110
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebp - 0x64]
sub eax, edx
cmp eax, ecx
jb 0x413541
cmp dword [ebp - 0x60], 0x10
lea eax, [ebp - 0x74]
push ecx
cmovae eax, dword [ebp - 0x74]
push esi
push edx
push eax
push ecx
push dword [ebp - 0x18]
lea ecx, [ebp - 0x124]
call fcn.00487550
mov ecx, dword [ebp - 0x60]
cmp ecx, 0x10
jb 0x41317d
mov edx, dword [ebp - 0x74]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x413173
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413550
push ecx
push edx
call fcn.004f7c11
add esp, 8
movups xmm0, xmmword [ebp - 0x124]
movups xmmword [ebp - 0x74], xmm0
movq xmm0, qword [ebp - 0x114]
mov byte [ebp - 4], 0x18
mov ecx, dword [ebp - 0x30]
movq qword [ebp - 0x64], xmm0
cmp ecx, 0x10
jb 0x4131cd
mov edx, dword [ebp - 0x44]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4131c3
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413550
push ecx
push edx
call fcn.004f7c11
add esp, 8
mov esi, dword [ebp - 0x60]
lea edx, [ebp - 0x74]
mov edi, dword [ebp - 0x74]
cmp esi, 0x10
jb 0x4131e1
mov edx, edi
test edx, edx
je 0x413228
mov ecx, edx
lea eax, [ecx + 1]
mov dword [ebp - 0x18], eax
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4131f0
sub ecx, dword [ebp - 0x18]
je 0x413228
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x413242
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x413242
cmp eax, 0x20
je 0x413242
cmp eax, 0x45
je 0x413242
cmp eax, 0x24
je 0x413242
mov esi, dword [ebp - 0x60]
mov edi, dword [ebp - 0x74]
cmp esi, 0x10
lea eax, [ebp - 0x74]
push 0
cmovae eax, edi
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x4133f7
movaps xmm0, xmmword [0x543160]
lea eax, [ebp - 0x74]
sub esp, 0x18
mov byte [ebp - 0x29], 0xb7
mov ecx, esp
mov dword [ebp - 0x18], esp
movups xmmword [ebp - 0x28], xmm0
mov byte [ebp - 0x11], 0
push eax
call fcn.0047faa0
mov byte [ebp - 4], 0x1a
xor ecx, ecx
nop dword [eax]
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0x29], al
inc ecx
cmp ecx, 8
jb 0x413270
mov dword [0x5585d4], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x29]
mov byte [ebp - 0x21], 0
movups xmmword [ebp - 0x44], xmm0
mov dword [ebp - 0x34], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x30], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4132a3
sub ecx, edx
lea eax, [ebp - 0x29]
push ecx
push eax
lea ecx, [ebp - 0x44]
call fcn.00402b20
mov byte [ebp - 4], 0x1b
lea esi, [ebp - 0x44]
cmp dword [ebp - 0x30], 0x10
cmovae esi, dword [ebp - 0x44]
sub esp, 0x18
mov ecx, esi
mov edi, esp
mov dword [ebp - 0xac], edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4132d8
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebp - 0x7c]
sub eax, edx
cmp eax, ecx
jb 0x413546
cmp dword [ebp - 0x78], 0x10
lea eax, [ebp - 0x8c]
push ecx
cmovae eax, dword [ebp - 0x8c]
push esi
push edx
push eax
push ecx
push dword [ebp - 0xac]
mov ecx, edi
call fcn.00487550
mov cl, byte [ebp - 0x11]
mov byte [ebp - 4], 0x1c
call fcn.004108f0
add esp, 0x30
mov byte [ebp - 4], 0x18
mov ecx, dword [ebp - 0x30]
test eax, eax
sete al
mov byte [ebp - 0x11], al
cmp ecx, 0x10
jb 0x413368
mov edx, dword [ebp - 0x44]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x41335b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413550
push ecx
push edx
call fcn.004f7c11
mov al, byte [ebp - 0x11]
add esp, 8
test al, al
je 0x41337a
mov eax, dword [ebp - 0xa8]
mov byte [eax], 1
jmp 0x4133f7
cmp dword [ebp - 0x60], 0x10
lea edx, [ebp - 0x74]
xorps xmm0, xmm0
mov dword [ebp - 0x34], 0
cmovae edx, dword [ebp - 0x74]
mov ecx, edx
mov dword [ebp - 0x30], 0
movups xmmword [ebp - 0x44], xmm0
lea esi, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4133a0
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x44]
call fcn.00402b20
push ecx
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0x1d
call fcn.0040c680
mov ecx, dword [ebp - 0x30]
add esp, 4
cmp ecx, 0x10
jb 0x4133f7
mov edx, dword [ebp - 0x44]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4133ed
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41354b
push ecx
push edx
call fcn.004f7c11
add esp, 8
mov ecx, dword [ebp - 0x60]
cmp ecx, 0x10
jb 0x41342b
mov edx, dword [ebp - 0x74]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x413421
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413550
push ecx
push edx
call fcn.004f7c11
add esp, 8
mov edx, dword [ebp - 0x78]
cmp edx, 0x10
jb 0x413462
mov ecx, dword [ebp - 0x8c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x413458
mov ecx, dword [eax - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413555
push edx
push ecx
call fcn.004f7c11
add esp, 8
mov ecx, dword [ebx + 0x1c]
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x78], 0xf
mov byte [ebp - 0x8c], 0
cmp ecx, 0x10
jb 0x4134ab
mov edx, dword [ebx + 8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4134a1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413555
push ecx
push edx
call fcn.004f7c11
add esp, 8
mov ecx, dword [ebx + 0x34]
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x1c], 0xf
mov byte [ebx + 8], 0
cmp ecx, 0x10
jb 0x4134ed
mov edx, dword [ebx + 0x20]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4134e3
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413555
push ecx
push edx
call fcn.004f7c11
add esp, 8
mov ecx, dword [ebp - 0xc]
pop edi
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.004fceb0
call fcn.00402390
call fcn.00402390
call fcn.004fceb0
call fcn.00402390
call fcn.00402390
call fcn.004fceb0
call fcn.004fceb0
call fcn.004fceb0
call fcn.00402390
call fcn.004fceb0
call fcn.00402390
call fcn.004fceb0
call fcn.00402390
call fcn.00402390
call fcn.004fceb0
call fcn.004fceb0
call fcn.004fceb0
int3