Function at 0x412720
Capabilities:
Check if file exists
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 0x521db3
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ebx
sub esp, 0x198
push esi
push edi
mov dword [ebp - 0x9c], ecx
push 0x104
lea eax, [ebp - 0x1a8]
mov dword [ebp - 4], 0
push 0
push eax
call fcn.004fd0d0
add esp, 0xc
lea eax, [ebp - 0x1a8]
push eax
push 0
push 0
push 0x1a
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
movaps xmm0, xmmword [0x547890]
xor ecx, ecx
mov dword [ebp - 0x80], 0xfefcc9db
mov dword [ebp - 0x7c], 0xcaadf5e3
movups xmmword [ebp - 0x78], xmm0
lea eax, [ecx - 0x79]
xor byte [ebp + ecx - 0x80], al
inc ecx
cmp ecx, 0xe
jb 0x4127a7
mov dword [0x55d524], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x80]
mov byte [ebp - 0x72], 0
movups xmmword [ebp - 0x48], xmm0
mov dword [ebp - 0x38], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x34], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4127e0
sub ecx, edx
lea eax, [ebp - 0x80]
push ecx
push eax
lea ecx, [ebp - 0x48]
call fcn.00402b80
mov byte [ebp - 4], 1
lea edx, [ebp - 0x48]
cmp dword [ebp - 0x34], 0x10
xorps xmm0, xmm0
movups xmmword [ebp - 0x68], xmm0
cmovae edx, dword [ebp - 0x48]
mov ecx, edx
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0
lea esi, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x412820
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x68]
call fcn.00402b80
lea eax, [ebp - 0x68]
mov byte [ebp - 4], 2
push eax
lea edx, [ebp - 0x1a8]
lea ecx, [ebp - 0x98]
call fcn.00486e40
add esp, 4
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x54]
cmp ecx, 0x10
jb 0x412887
mov edx, dword [ebp - 0x68]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x41287d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413b4a
push ecx
push edx
call fcn.004fb0f1
add esp, 8
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0xf
mov byte [ebp - 0x68], 0
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x34]
cmp ecx, 0x10
jb 0x4128d1
mov edx, dword [ebp - 0x48]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4128c7
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413b4a
push ecx
push edx
call fcn.004fb0f1
add esp, 8
cmp dword [ebp - 0x84], 0x10
lea esi, [ebp - 0x98]
push 0x55d1d0
cmovae esi, dword [ebp - 0x98]
call fcn.004fa3f2
add esp, 4
test eax, eax
jne 0x413b4f
test esi, esi
je 0x413aa1
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x412907
sub ecx, edx
je 0x413aa1
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x412940
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x412940
cmp eax, 0x20
je 0x412940
cmp eax, 0x45
je 0x412940
cmp eax, 0x24
jne 0x413aa1
push 0x55d1d0
call fcn.004fa403
movaps xmm0, xmmword [0x5480c0]
add esp, 4
movups xmmword [ebp - 0x3e], xmm0
xor ecx, ecx
nop word [eax + eax]
lea eax, [ecx - 0x79]
xor byte [ebp + ecx - 0x3e], al
inc ecx
cmp ecx, 6
jb 0x412960
mov dword [0x55d548], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x3e]
mov byte [ebp - 0x38], 0
movups xmmword [ebp - 0x2c], xmm0
mov dword [ebp - 0x1c], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x18], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x412992
sub ecx, edx
lea eax, [ebp - 0x3e]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.00402b80
mov byte [ebp - 4], 6
lea esi, [ebp - 0x2c]
cmp dword [ebp - 0x18], 0x10
cmovae esi, dword [ebp - 0x2c]
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4129c0
mov edi, closesocket
sub ecx, edx
mov edx, dword [ebx + 0x18]
mov eax, edi
sub eax, edx
cmp eax, ecx
jb 0x413b55
cmp dword [ebx + 0x1c], 0x10
lea eax, [ebx + 8]
push ecx
cmovae eax, dword [ebx + 8]
push esi
push edx
push eax
push ecx
push dword [ebp - 0x50]
lea ecx, [ebp - 0x80]
call fcn.0048aa20
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x18]
cmp ecx, 0x10
jb 0x412a30
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x412a26
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413bde
push ecx
push edx
call fcn.004fb0f1
add esp, 8
cmp dword [ebp - 0x6c], 0x10
lea esi, [ebp - 0x80]
push 0x55d1d0
cmovae esi, dword [ebp - 0x80]
call fcn.004fa3f2
add esp, 4
test eax, eax
jne 0x413b5a
test esi, esi
je 0x412aa0
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x412a60
sub ecx, edx
je 0x412aa0
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x412a91
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x412a91
cmp eax, 0x20
je 0x412a91
cmp eax, 0x45
je 0x412a91
cmp eax, 0x24
jne 0x412aa0
push 0x55d1d0
call fcn.004fa403
add esp, 4
jmp 0x412ac9
push 0x55d1d0
call fcn.004fa403
add esp, 4
lea eax, [ebp - 0x80]
cmp dword [ebp - 0x6c], 0x10
cmovae eax, dword [ebp - 0x80]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x413a6b
movaps xmm0, xmmword [0x547170]
xor ecx, ecx
mov dword [ebp - 0x42], 0xeee7c1db
movups xmmword [ebp - 0x3e], xmm0
nop dword [eax]
lea eax, [ecx - 0x79]
xor byte [ebp + ecx - 0x42], al
inc ecx
cmp ecx, 0xa
jb 0x412ae0
mov dword [0x55d5e0], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x42]
mov byte [ebp - 0x38], 0
movups xmmword [ebp - 0x68], xmm0
mov dword [ebp - 0x58], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x54], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x412b12
sub ecx, edx
lea eax, [ebp - 0x42]
push ecx
push eax
lea ecx, [ebp - 0x68]
call fcn.00402b80
mov byte [ebp - 4], 9
lea esi, [ebp - 0x68]
cmp dword [ebp - 0x54], 0x10
cmovae esi, dword [ebp - 0x68]
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x412b40
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x88]
sub eax, edx
cmp eax, ecx
jb 0x413b60
cmp dword [ebp - 0x84], 0x10
lea eax, [ebp - 0x98]
push ecx
cmovae eax, dword [ebp - 0x98]
push esi
push edx
push eax
push ecx
push dword [ebp - 0x50]
lea ecx, [ebp - 0x2c]
call fcn.0048aa20
mov byte [ebp - 4], 0xa
lea esi, [ebp - 0x2c]
cmp dword [ebp - 0x18], 0x10
push 0x55d1d0
cmovae esi, dword [ebp - 0x2c]
call fcn.004fa3f2
add esp, 4
test eax, eax
jne 0x413b65
test esi, esi
je 0x412bf1
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x412bb0
sub ecx, edx
je 0x412bf1
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x412be1
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x412be1
cmp eax, 0x20
je 0x412be1
cmp eax, 0x45
je 0x412be1
cmp eax, 0x24
jne 0x412bf1
push 0x55d1d0
call fcn.004fa403
mov byte [ebp - 0x11], 1
jmp 0x412bff
push 0x55d1d0
call fcn.004fa403
mov byte [ebp - 0x11], 0
mov byte [ebp - 4], 9
add esp, 4
mov ecx, dword [ebp - 0x18]
cmp ecx, 0x10
jb 0x412c3a
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x412c30
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413b6b
push ecx
push edx
call fcn.004fb0f1
add esp, 8
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x54]
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0xf
mov byte [ebp - 0x2c], 0
cmp ecx, 0x10
jb 0x412c84
mov edx, dword [ebp - 0x68]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x412c7a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413b6b
push ecx
push edx
call fcn.004fb0f1
add esp, 8
cmp byte [ebp - 0x11], 0
je 0x412ff8
movaps xmm0, xmmword [0x547170]
xor ecx, ecx
mov dword [ebp - 0x42], 0xeee7c1db
movups xmmword [ebp - 0x3e], xmm0
lea eax, [ecx - 0x79]
xor byte [ebp + ecx - 0x42], al
inc ecx
cmp ecx, 0xa
jb 0x412ca2
mov dword [0x55d5e0], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x42]
mov byte [ebp - 0x38], 0
movups xmmword [ebp - 0x2c], xmm0
mov dword [ebp - 0x1c], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x18], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x412cd4
sub ecx, edx
lea eax, [ebp - 0x42]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.00402b80
mov byte [ebp - 4], 0xb
lea esi, [ebp - 0x2c]
cmp dword [ebp - 0x18], 0x10
cmovae esi, dword [ebp - 0x2c]
mov ecx, esi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x412d00
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x70]
sub eax, edx
cmp eax, ecx
jb 0x413b70
cmp dword [ebp - 0x6c], 0x10
lea eax, [ebp - 0x80]
push ecx
cmovae eax, dword [ebp - 0x80]
push esi
push edx
push eax
push ecx
push dword [ebp - 0x50]
lea ecx, [ebp - 0x68]
call fcn.0048aa20
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0x18]
cmp ecx, 0x10
jb 0x412d6b
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x412d61
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413b85
push ecx
push edx
call fcn.004fb0f1
add esp, 8
cmp dword [ebp - 0x54], 0x10
lea esi, [ebp - 0x68]
push 0x55d1d0
cmovae esi, dword [ebp - 0x68]
call fcn.004fa3f2
add esp, 4
test eax, eax
jne 0x413b75
test esi, esi
je 0x412dd4
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x412d94
sub ecx, edx
je 0x412dd4
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x412dc5
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x412dc5
cmp eax, 0x20
je 0x412dc5
cmp eax, 0x45
je 0x412dc5
cmp eax, 0x24
jne 0x412dd4
push 0x55d1d0
call fcn.004fa403
add esp, 4
jmp 0x412dfd
push 0x55d1d0
call fcn.004fa403
add esp, 4
lea eax, [ebp - 0x68]
cmp dword [ebp - 0x54], 0x10
cmovae eax, dword [ebp - 0x68]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x412fc0
movaps xmm0, xmmword [0x547170]
lea eax, [ebp - 0x68]
sub esp, 0x18
mov dword [ebp - 0x42], 0xeee7c1db
mov ecx, esp
mov dword [ebp - 0x50], esp
movups xmmword [ebp - 0x3e], xmm0
mov byte [ebp - 0x11], 0
push eax
call fcn.00483010
mov byte [ebp - 4], 0xe
xor ecx, ecx
nop word [eax + eax]
lea eax, [ecx - 0x79]
xor byte [ebp + ecx - 0x42], al
inc ecx
cmp ecx, 0xa
jb 0x412e30
mov dword [0x55d5e0], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x42]
mov byte [ebp - 0x38], 0
movups xmmword [ebp - 0x2c], xmm0
mov dword [ebp - 0x1c], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x18], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x412e62
sub ecx, edx
lea eax, [ebp - 0x42]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.00402b80
mov byte [ebp - 4], 0xf
lea esi, [ebp - 0x2c]
cmp dword [ebp - 0x18], 0x10
cmovae esi, dword [ebp - 0x2c]
sub esp, 0x18
mov ecx, esi
mov edi, esp
mov dword [ebp - 0x4c], edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x412e94
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebp - 0x88]
sub eax, edx
cmp eax, ecx
jb 0x413b7b
cmp dword [ebp - 0x84], 0x10
lea eax, [ebp - 0x98]
push ecx
cmovae eax, dword [ebp - 0x98]
push esi
push edx
push eax
push ecx
push dword [ebp - 0x4c]
mov ecx, edi
call fcn.0048aa20
mov cl, byte [ebp - 0x11]
mov byte [ebp - 4], 0x10
call fcn.00412090
add esp, 0x30
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0x18]
test eax, eax
sete al
mov byte [ebp - 0x11], al
cmp ecx, 0x10
jb 0x412f27
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x412f1a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413b85
push ecx
push edx
call fcn.004fb0f1
mov al, byte [ebp - 0x11]
add esp, 8
test al, al
je 0x412f39
mov eax, dword [ebp - 0x9c]
mov byte [eax], 1
jmp 0x412fbb
cmp dword [ebp - 0x54], 0x10
lea edx, [ebp - 0x68]
xorps xmm0, xmm0
mov dword [ebp - 0x1c], 0
cmovae edx, dword [ebp - 0x68]
mov ecx, edx
mov dword [ebp - 0x18], 0
movups xmmword [ebp - 0x2c], xmm0
lea esi, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x412f60
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x2c]
call fcn.00402b80
push ecx
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x11
call fcn.0040dc90
mov byte [ebp - 4], 0xd
add esp, 4
mov ecx, dword [ebp - 0x18]
cmp ecx, 0x10
jb 0x412fbb
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x412fb1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413b80
push ecx
push edx
call fcn.004fb0f1
add esp, 8
mov edi, closesocket
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x54]
cmp ecx, 0x10
jb 0x412ff8
mov edx, dword [ebp - 0x68]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x412fee
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413b85
push ecx
push edx
call fcn.004fb0f1
add esp, 8
movaps xmm0, xmmword [0x547f20]
xor ecx, ecx
mov dword [ebp - 0x46], 0xe9e6c4db
mov dword [ebp - 0x42], 0xddade0ea
movups xmmword [ebp - 0x3e], xmm0
lea eax, [ecx - 0x79]
xor byte [ebp + ecx - 0x46], al
inc ecx
cmp ecx, 0xe
jb 0x413013
mov dword [0x55d524], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x46]
mov byte [ebp - 0x38], 0
movups xmmword [ebp - 0x68], xmm0
mov dword [ebp - 0x58], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x54], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413045
sub ecx, edx
lea eax, [ebp - 0x46]
push ecx
push eax
lea ecx, [ebp - 0x68]
call fcn.00402b80
mov byte [ebp - 4], 0x12
lea esi, [ebp - 0x68]
cmp dword [ebp - 0x54], 0x10
cmovae esi, dword [ebp - 0x68]
mov ecx, esi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413070
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x88]
sub eax, edx
cmp eax, ecx
jb 0x413b8a
cmp dword [ebp - 0x84], 0x10
lea eax, [ebp - 0x98]
push ecx
cmovae eax, dword [ebp - 0x98]
push esi
push edx
push eax
push ecx
push dword [ebp - 0x4c]
lea ecx, [ebp - 0x2c]
call fcn.0048aa20
mov byte [ebp - 4], 0x13
lea esi, [ebp - 0x2c]
cmp dword [ebp - 0x18], 0x10
push 0x55d1d0
cmovae esi, dword [ebp - 0x2c]
call fcn.004fa3f2
add esp, 4
test eax, eax
jne 0x413b8f
test esi, esi
je 0x413121
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4130e0
sub ecx, edx
je 0x413121
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x413111
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x413111
cmp eax, 0x20
je 0x413111
cmp eax, 0x45
je 0x413111
cmp eax, 0x24
jne 0x413121
push 0x55d1d0
call fcn.004fa403
mov byte [ebp - 0x11], 1
jmp 0x41312f
push 0x55d1d0
call fcn.004fa403
mov byte [ebp - 0x11], 0
mov byte [ebp - 4], 0x12
add esp, 4
mov ecx, dword [ebp - 0x18]
cmp ecx, 0x10
jb 0x41316a
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x413160
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413b95
push ecx
push edx
call fcn.004fb0f1
add esp, 8
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x54]
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0xf
mov byte [ebp - 0x2c], 0
cmp ecx, 0x10
jb 0x4131b4
mov edx, dword [ebp - 0x68]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4131aa
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413b95
push ecx
push edx
call fcn.004fb0f1
add esp, 8
cmp byte [ebp - 0x11], 0
je 0x413538
movaps xmm0, xmmword [0x547f20]
xor ecx, ecx
mov dword [ebp - 0x46], 0xe9e6c4db
mov dword [ebp - 0x42], 0xddade0ea
movups xmmword [ebp - 0x3e], xmm0
nop dword [eax]
lea eax, [ecx - 0x79]
xor byte [ebp + ecx - 0x46], al
inc ecx
cmp ecx, 0xe
jb 0x4131e0
mov dword [0x55d524], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x46]
mov byte [ebp - 0x38], 0
movups xmmword [ebp - 0x2c], xmm0
mov dword [ebp - 0x1c], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x18], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413212
sub ecx, edx
lea eax, [ebp - 0x46]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.00402b80
mov byte [ebp - 4], 0x14
lea esi, [ebp - 0x2c]
cmp dword [ebp - 0x18], 0x10
cmovae esi, dword [ebp - 0x2c]
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413240
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x70]
sub eax, edx
cmp eax, ecx
jb 0x413b9a
cmp dword [ebp - 0x6c], 0x10
lea eax, [ebp - 0x80]
push ecx
cmovae eax, dword [ebp - 0x80]
push esi
push edx
push eax
push ecx
push dword [ebp - 0x4c]
lea ecx, [ebp - 0x68]
call fcn.0048aa20
mov byte [ebp - 4], 0x16
mov ecx, dword [ebp - 0x18]
cmp ecx, 0x10
jb 0x4132ab
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4132a1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413baf
push ecx
push edx
call fcn.004fb0f1
add esp, 8
cmp dword [ebp - 0x54], 0x10
lea esi, [ebp - 0x68]
push 0x55d1d0
cmovae esi, dword [ebp - 0x68]
call fcn.004fa3f2
add esp, 4
test eax, eax
jne 0x413b9f
test esi, esi
je 0x413314
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4132d4
sub ecx, edx
je 0x413314
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x413305
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x413305
cmp eax, 0x20
je 0x413305
cmp eax, 0x45
je 0x413305
cmp eax, 0x24
jne 0x413314
push 0x55d1d0
call fcn.004fa403
add esp, 4
jmp 0x41333d
push 0x55d1d0
call fcn.004fa403
add esp, 4
lea eax, [ebp - 0x68]
cmp dword [ebp - 0x54], 0x10
cmovae eax, dword [ebp - 0x68]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x413500
movaps xmm0, xmmword [0x547f20]
lea eax, [ebp - 0x68]
sub esp, 0x18
mov dword [ebp - 0x46], 0xe9e6c4db
mov ecx, esp
mov dword [ebp - 0x4c], esp
mov dword [ebp - 0x42], 0xddade0ea
movups xmmword [ebp - 0x3e], xmm0
push eax
mov byte [ebp - 0x11], 0
call fcn.00483010
mov byte [ebp - 4], 0x17
xor ecx, ecx
lea eax, [ecx - 0x79]
xor byte [ebp + ecx - 0x46], al
inc ecx
cmp ecx, 0xe
jb 0x413371
mov dword [0x55d524], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x46]
mov byte [ebp - 0x38], 0
movups xmmword [ebp - 0x2c], xmm0
mov dword [ebp - 0x1c], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x18], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4133a3
sub ecx, edx
lea eax, [ebp - 0x46]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.00402b80
mov byte [ebp - 4], 0x18
lea esi, [ebp - 0x2c]
cmp dword [ebp - 0x18], 0x10
cmovae esi, dword [ebp - 0x2c]
sub esp, 0x18
mov ecx, esi
mov edi, esp
mov dword [ebp - 0x50], edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4133d5
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebp - 0x88]
sub eax, edx
cmp eax, ecx
jb 0x413ba5
cmp dword [ebp - 0x84], 0x10
lea eax, [ebp - 0x98]
push ecx
cmovae eax, dword [ebp - 0x98]
push esi
push edx
push eax
push ecx
push dword [ebp - 0x4c]
mov ecx, edi
call fcn.0048aa20
mov cl, byte [ebp - 0x11]
mov byte [ebp - 4], 0x19
call fcn.00412090
add esp, 0x30
mov byte [ebp - 4], 0x16
mov ecx, dword [ebp - 0x18]
test eax, eax
sete al
mov byte [ebp - 0x11], al
cmp ecx, 0x10
jb 0x413468
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x41345b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413baf
push ecx
push edx
call fcn.004fb0f1
mov al, byte [ebp - 0x11]
add esp, 8
test al, al
je 0x41347a
mov eax, dword [ebp - 0x9c]
mov byte [eax], 1
jmp 0x4134fb
cmp dword [ebp - 0x54], 0x10
lea edx, [ebp - 0x68]
xorps xmm0, xmm0
mov dword [ebp - 0x1c], 0
cmovae edx, dword [ebp - 0x68]
mov ecx, edx
mov dword [ebp - 0x18], 0
movups xmmword [ebp - 0x2c], xmm0
lea esi, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4134a0
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x2c]
call fcn.00402b80
push ecx
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x1a
call fcn.0040dc90
mov byte [ebp - 4], 0x16
add esp, 4
mov ecx, dword [ebp - 0x18]
cmp ecx, 0x10
jb 0x4134fb
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4134f1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413baa
push ecx
push edx
call fcn.004fb0f1
add esp, 8
mov edi, closesocket
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x54]
cmp ecx, 0x10
jb 0x413538
mov edx, dword [ebp - 0x68]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x41352e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413baf
push ecx
push edx
call fcn.004fb0f1
add esp, 8
movaps xmm0, xmmword [0x5499f0]
xor ecx, ecx
movups xmmword [ebp - 0x48], xmm0
mov word [ebp - 0x30], 0
xorps xmm0, xmm0
movq qword [ebp - 0x38], xmm0
lea eax, [ecx - 0x79]
xor byte [ebp + ecx - 0x48], al
inc ecx
cmp ecx, 0x10
jb 0x413553
mov dword [0x55d628], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x48]
mov byte [ebp - 0x38], 0
movups xmmword [ebp - 0x68], xmm0
mov dword [ebp - 0x58], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x54], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413585
sub ecx, edx
lea eax, [ebp - 0x48]
push ecx
push eax
lea ecx, [ebp - 0x68]
call fcn.00402b80
mov byte [ebp - 4], 0x1b
lea esi, [ebp - 0x68]
cmp dword [ebp - 0x54], 0x10
cmovae esi, dword [ebp - 0x68]
mov ecx, esi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4135b0
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x88]
sub eax, edx
cmp eax, ecx
jb 0x413bb4
cmp dword [ebp - 0x84], 0x10
lea eax, [ebp - 0x98]
push ecx
cmovae eax, dword [ebp - 0x98]
push esi
push edx
push eax
push ecx
push dword [ebp - 0x4c]
lea ecx, [ebp - 0x2c]
call fcn.0048aa20
mov byte [ebp - 4], 0x1c
lea esi, [ebp - 0x2c]
cmp dword [ebp - 0x18], 0x10
push 0x55d1d0
cmovae esi, dword [ebp - 0x2c]
call fcn.004fa3f2
add esp, 4
test eax, eax
jne 0x413bb9
test esi, esi
je 0x413661
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413620
sub ecx, edx
je 0x413661
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x413651
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x413651
cmp eax, 0x20
je 0x413651
cmp eax, 0x45
je 0x413651
cmp eax, 0x24
jne 0x413661
push 0x55d1d0
call fcn.004fa403
mov byte [ebp - 0x11], 1
jmp 0x41366f
push 0x55d1d0
call fcn.004fa403
mov byte [ebp - 0x11], 0
mov byte [ebp - 4], 0x1b
add esp, 4
mov ecx, dword [ebp - 0x18]
cmp ecx, 0x10
jb 0x4136aa
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4136a0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413bbf
push ecx
push edx
call fcn.004fb0f1
add esp, 8
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x54]
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0xf
mov byte [ebp - 0x2c], 0
cmp ecx, 0x10
jb 0x4136f4
mov edx, dword [ebp - 0x68]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4136ea
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413bbf
push ecx
push edx
call fcn.004fb0f1
add esp, 8
cmp byte [ebp - 0x11], 0
je 0x413a6b
movaps xmm0, xmmword [0x5499f0]
xor ecx, ecx
movups xmmword [ebp - 0x48], xmm0
mov word [ebp - 0x30], 0
xorps xmm0, xmm0
movq qword [ebp - 0x38], xmm0
nop dword [eax]
lea eax, [ecx - 0x79]
xor byte [ebp + ecx - 0x48], al
inc ecx
cmp ecx, 0x10
jb 0x413720
mov dword [0x55d628], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x48]
mov byte [ebp - 0x38], 0
movups xmmword [ebp - 0x2c], xmm0
mov dword [ebp - 0x1c], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x18], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413752
sub ecx, edx
lea eax, [ebp - 0x48]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.00402b80
mov byte [ebp - 4], 0x1d
lea esi, [ebp - 0x2c]
cmp dword [ebp - 0x18], 0x10
cmovae esi, dword [ebp - 0x2c]
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413780
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x70]
sub eax, edx
cmp eax, ecx
jb 0x413bc4
cmp dword [ebp - 0x6c], 0x10
lea eax, [ebp - 0x80]
push ecx
cmovae eax, dword [ebp - 0x80]
push esi
push edx
push eax
push ecx
push dword [ebp - 0x4c]
lea ecx, [ebp - 0x68]
call fcn.0048aa20
mov byte [ebp - 4], 0x1f
mov ecx, dword [ebp - 0x18]
cmp ecx, 0x10
jb 0x4137eb
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4137e1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413bd9
push ecx
push edx
call fcn.004fb0f1
add esp, 8
cmp dword [ebp - 0x54], 0x10
lea esi, [ebp - 0x68]
push 0x55d1d0
cmovae esi, dword [ebp - 0x68]
call fcn.004fa3f2
add esp, 4
test eax, eax
jne 0x413bc9
test esi, esi
je 0x413854
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413814
sub ecx, edx
je 0x413854
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x413845
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x413845
cmp eax, 0x20
je 0x413845
cmp eax, 0x45
je 0x413845
cmp eax, 0x24
jne 0x413854
push 0x55d1d0
call fcn.004fa403
add esp, 4
jmp 0x41387d
push 0x55d1d0
call fcn.004fa403
add esp, 4
lea eax, [ebp - 0x68]
cmp dword [ebp - 0x54], 0x10
cmovae eax, dword [ebp - 0x68]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x413a37
movaps xmm0, xmmword [0x5499f0]
lea eax, [ebp - 0x68]
sub esp, 0x18
mov word [ebp - 0x30], 0
movups xmmword [ebp - 0x48], xmm0
mov dword [ebp - 0x4c], esp
mov ecx, esp
xorps xmm0, xmm0
mov byte [ebp - 0x11], 0
push eax
movq qword [ebp - 0x38], xmm0
call fcn.00483010
mov byte [ebp - 4], 0x20
xor ecx, ecx
lea eax, [ecx - 0x79]
xor byte [ebp + ecx - 0x48], al
inc ecx
cmp ecx, 0x10
jb 0x4138b1
mov dword [0x55d628], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x48]
mov byte [ebp - 0x38], 0
movups xmmword [ebp - 0x2c], xmm0
mov dword [ebp - 0x1c], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x18], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4138e3
sub ecx, edx
lea eax, [ebp - 0x48]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.00402b80
mov byte [ebp - 4], 0x21
lea esi, [ebp - 0x2c]
cmp dword [ebp - 0x18], 0x10
cmovae esi, dword [ebp - 0x2c]
sub esp, 0x18
mov ecx, esi
mov edi, esp
mov dword [ebp - 0x50], edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413915
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebp - 0x88]
sub eax, edx
cmp eax, ecx
jb 0x413bcf
cmp dword [ebp - 0x84], 0x10
lea eax, [ebp - 0x98]
push ecx
cmovae eax, dword [ebp - 0x98]
push esi
push edx
push eax
push ecx
push dword [ebp - 0x4c]
mov ecx, edi
call fcn.0048aa20
mov cl, byte [ebp - 0x11]
mov byte [ebp - 4], 0x22
call fcn.00412090
add esp, 0x30
mov byte [ebp - 4], 0x1f
mov ecx, dword [ebp - 0x18]
test eax, eax
sete al
mov byte [ebp - 0x11], al
cmp ecx, 0x10
jb 0x4139a8
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x41399b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413bd9
push ecx
push edx
call fcn.004fb0f1
mov al, byte [ebp - 0x11]
add esp, 8
test al, al
je 0x4139ba
mov eax, dword [ebp - 0x9c]
mov byte [eax], 1
jmp 0x413a37
cmp dword [ebp - 0x54], 0x10
lea edx, [ebp - 0x68]
xorps xmm0, xmm0
mov dword [ebp - 0x1c], 0
cmovae edx, dword [ebp - 0x68]
mov ecx, edx
mov dword [ebp - 0x18], 0
movups xmmword [ebp - 0x2c], xmm0
lea esi, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4139e0
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x2c]
call fcn.00402b80
push ecx
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x23
call fcn.0040dc90
mov ecx, dword [ebp - 0x18]
add esp, 4
cmp ecx, 0x10
jb 0x413a37
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x413a2d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413bd4
push ecx
push edx
call fcn.004fb0f1
add esp, 8
mov ecx, dword [ebp - 0x54]
cmp ecx, 0x10
jb 0x413a6b
mov edx, dword [ebp - 0x68]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x413a61
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413bd9
push ecx
push edx
call fcn.004fb0f1
add esp, 8
mov ecx, dword [ebp - 0x6c]
cmp ecx, 0x10
jb 0x413aae
mov edx, dword [ebp - 0x80]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x413a95
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413bde
push ecx
push edx
call fcn.004fb0f1
add esp, 8
jmp 0x413aae
push 0x55d1d0
call fcn.004fa403
add esp, 4
mov ecx, dword [ebp - 0x84]
cmp ecx, 0x10
jb 0x413ae8
mov edx, dword [ebp - 0x98]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x413ade
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413be3
push ecx
push edx
call fcn.004fb0f1
add esp, 8
mov ecx, dword [ebx + 0x1c]
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x84], 0xf
mov byte [ebp - 0x98], 0
cmp ecx, 0x10
jb 0x413b37
mov edx, dword [ebx + 8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x413b2d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413be3
push ecx
push edx
call fcn.004fb0f1
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.00500390
push eax
call fcn.004fa09b
call fcn.004023f0
push eax
call fcn.004fa09b
call fcn.004023f0
push eax
call fcn.004fa09b
call fcn.00500390
call fcn.004023f0
push eax
call fcn.004fa09b
call fcn.004023f0
call fcn.00500390
call fcn.00500390
call fcn.004023f0
push eax
call fcn.004fa09b
call fcn.00500390
call fcn.004023f0
push eax
call fcn.004fa09b
call fcn.004023f0
call fcn.00500390
call fcn.00500390
call fcn.004023f0
push eax
call fcn.004fa09b
call fcn.00500390
call fcn.004023f0
push eax
call fcn.004fa09b
call fcn.004023f0
call fcn.00500390
call fcn.00500390
call fcn.00500390
call fcn.00500390
int3