Function at 0x410f70
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 0x51e76e
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.004f9bf0
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 [0x5435b0]
xor ecx, ecx
mov dword [ebp - 0x2f], 0x9a98adb7
mov word [ebp - 0x2b], 0x8987
mov byte [ebp - 0x29], 0xd1
movups xmmword [ebp - 0x28], xmm0
nop word [eax + eax]
lea eax, [ecx - 0x15]
xor byte [ebp + ecx - 0x2f], al
inc ecx
cmp ecx, 0xe
jb 0x411000
mov dword [0x5584d4], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x2f]
mov byte [ebp - 0x21], 0
movups xmmword [ebp - 0x98], xmm0
mov dword [ebp - 0x88], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x84], 0
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x411040
sub ecx, edx
lea eax, [ebp - 0x2f]
push ecx
push eax
lea ecx, [ebp - 0x98]
call fcn.00402b20
mov byte [ebp - 4], 1
lea edx, [ebp - 0x98]
cmp dword [ebp - 0x84], 0x10
xorps xmm0, xmm0
movups xmmword [ebp - 0x68], xmm0
cmovae edx, dword [ebp - 0x98]
mov ecx, edx
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0
lea esi, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x411090
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x68]
call fcn.00402b20
lea eax, [ebp - 0x68]
mov byte [ebp - 4], 2
push eax
lea edx, [ebp - 0x1a8]
lea ecx, [ebp - 0x80]
call fcn.004839c0
add esp, 4
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x54]
cmp ecx, 0x10
jb 0x4110f4
mov edx, dword [ebp - 0x68]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4110ea
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x412252
push ecx
push edx
call fcn.004f7c11
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 - 0x84]
cmp ecx, 0x10
jb 0x411144
mov edx, dword [ebp - 0x98]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x41113a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x412252
push ecx
push edx
call fcn.004f7c11
add esp, 8
mov edx, dword [ebp - 0x6c]
lea esi, [ebp - 0x80]
cmp edx, 0x10
jb 0x41115a
mov esi, dword [ebp - 0x80]
test esi, esi
je 0x4121c8
mov ecx, esi
lea edi, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x411160
sub ecx, edi
je 0x4121c8
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x411199
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x411199
cmp eax, 0x20
je 0x411199
cmp eax, 0x45
je 0x411199
cmp eax, 0x24
jne 0x4121c5
xorps xmm0, xmm0
mov dword [ebp - 0x27], 0x9a98adb7
mov word [ebp - 0x23], 0x8987
xor ecx, ecx
movq qword [ebp - 0x21], xmm0
mov byte [ebp - 0x19], 0
lea eax, [ecx - 0x15]
xor byte [ebp + ecx - 0x27], al
inc ecx
cmp ecx, 6
jb 0x4111b4
mov dword [0x5584f8], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x27]
mov byte [ebp - 0x21], 0
movups xmmword [ebp - 0x4c], xmm0
mov dword [ebp - 0x3c], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x38], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4111e6
sub ecx, edx
lea eax, [ebp - 0x27]
push ecx
push eax
lea ecx, [ebp - 0x4c]
call fcn.00402b20
mov byte [ebp - 4], 6
lea esi, [ebp - 0x4c]
cmp dword [ebp - 0x38], 0x10
cmovae esi, dword [ebp - 0x4c]
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x411210
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebx + 0x18]
sub eax, edx
cmp eax, ecx
jb 0x412257
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 - 0x18]
lea ecx, [ebp - 0x98]
call fcn.00487550
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x38]
cmp ecx, 0x10
jb 0x411281
mov edx, dword [ebp - 0x4c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x411277
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4122b6
push ecx
push edx
call fcn.004f7c11
add esp, 8
mov esi, dword [ebp - 0x84]
lea edx, [ebp - 0x98]
mov edi, dword [ebp - 0x98]
cmp esi, 0x10
jb 0x41129e
mov edx, edi
test edx, edx
je 0x4112e4
mov ecx, edx
lea eax, [ecx + 1]
mov dword [ebp - 0x18], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4112a6
sub ecx, dword [ebp - 0x18]
je 0x4112e4
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x411301
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x411301
cmp eax, 0x20
je 0x411301
cmp eax, 0x45
je 0x411301
cmp eax, 0x24
je 0x411301
mov esi, dword [ebp - 0x84]
mov edi, dword [ebp - 0x98]
cmp esi, 0x10
lea eax, [ebp - 0x98]
push 0
cmovae eax, edi
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x41218b
movaps xmm0, xmmword [0x5440d0]
xor ecx, ecx
mov word [ebp - 0x2b], 0xa5b7
mov byte [ebp - 0x29], 0x83
movups xmmword [ebp - 0x28], xmm0
lea eax, [ecx - 0x15]
xor byte [ebp + ecx - 0x2b], al
inc ecx
cmp ecx, 0xa
jb 0x411318
mov dword [0x558590], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x2b]
mov byte [ebp - 0x21], 0
movups xmmword [ebp - 0x68], xmm0
mov dword [ebp - 0x58], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x54], 0
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x411350
sub ecx, edx
lea eax, [ebp - 0x2b]
push ecx
push eax
lea ecx, [ebp - 0x68]
call fcn.00402b20
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 word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x411380
mov edi, closesocket
sub ecx, edx
mov edx, dword [ebp - 0x70]
mov eax, edi
sub eax, edx
cmp eax, ecx
jb 0x41225c
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 - 0x18]
lea ecx, [ebp - 0x4c]
call fcn.00487550
cmp dword [ebp - 0x38], 0x10
lea edx, [ebp - 0x4c]
jb 0x4113c8
mov edx, dword [ebp - 0x4c]
test edx, edx
je 0x411407
mov ecx, edx
lea esi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4113d0
sub ecx, esi
je 0x411407
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x411401
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x411401
cmp eax, 0x20
je 0x411401
cmp eax, 0x45
je 0x411401
cmp eax, 0x24
jne 0x411407
mov byte [ebp - 0x11], 1
jmp 0x41140b
mov byte [ebp - 0x11], 0
mov ecx, dword [ebp - 0x38]
cmp ecx, 0x10
jb 0x41143f
mov edx, dword [ebp - 0x4c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x411435
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x412261
push ecx
push edx
call fcn.004f7c11
add esp, 8
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x54]
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0xf
mov byte [ebp - 0x4c], 0
cmp ecx, 0x10
jb 0x411489
mov edx, dword [ebp - 0x68]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x41147f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x412261
push ecx
push edx
call fcn.004f7c11
add esp, 8
cmp byte [ebp - 0x11], 0
je 0x4117e8
movaps xmm0, xmmword [0x5440d0]
xor ecx, ecx
mov word [ebp - 0x2b], 0xa5b7
mov byte [ebp - 0x29], 0x83
movups xmmword [ebp - 0x28], xmm0
nop word [eax + eax]
lea eax, [ecx - 0x15]
xor byte [ebp + ecx - 0x2b], al
inc ecx
cmp ecx, 0xa
jb 0x4114b0
mov dword [0x558590], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x2b]
mov byte [ebp - 0x21], 0
movups xmmword [ebp - 0x4c], xmm0
mov dword [ebp - 0x3c], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x38], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4114e2
sub ecx, edx
lea eax, [ebp - 0x2b]
push ecx
push eax
lea ecx, [ebp - 0x4c]
call fcn.00402b20
mov byte [ebp - 4], 0xa
lea esi, [ebp - 0x4c]
cmp dword [ebp - 0x38], 0x10
cmovae esi, dword [ebp - 0x4c]
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x411510
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x88]
sub eax, edx
cmp eax, ecx
jb 0x412266
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 - 0x18]
lea ecx, [ebp - 0x68]
call fcn.00487550
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0x38]
cmp ecx, 0x10
jb 0x411587
mov edx, dword [ebp - 0x4c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x41157d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x412275
push ecx
push edx
call fcn.004f7c11
add esp, 8
mov esi, dword [ebp - 0x54]
lea edx, [ebp - 0x68]
mov edi, dword [ebp - 0x68]
cmp esi, 0x10
jb 0x41159b
mov edx, edi
test edx, edx
je 0x4115db
mov ecx, edx
lea eax, [ecx + 1]
mov dword [ebp - 0x18], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4115a3
sub ecx, dword [ebp - 0x18]
je 0x4115db
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x4115f5
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x4115f5
cmp eax, 0x20
je 0x4115f5
cmp eax, 0x45
je 0x4115f5
cmp eax, 0x24
je 0x4115f5
mov esi, dword [ebp - 0x54]
mov edi, dword [ebp - 0x68]
cmp esi, 0x10
lea eax, [ebp - 0x68]
push 0
cmovae eax, edi
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x4117ab
movaps xmm0, xmmword [0x5440d0]
lea eax, [ebp - 0x68]
sub esp, 0x18
mov word [ebp - 0x2b], 0xa5b7
mov ecx, esp
mov dword [ebp - 0x18], esp
mov byte [ebp - 0x29], 0x83
movups xmmword [ebp - 0x28], xmm0
push eax
mov byte [ebp - 0x11], 0
call fcn.0047faa0
mov byte [ebp - 4], 0xd
xor ecx, ecx
lea eax, [ecx - 0x15]
xor byte [ebp + ecx - 0x2b], al
inc ecx
cmp ecx, 0xa
jb 0x411625
mov dword [0x558590], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x2b]
mov byte [ebp - 0x21], 0
movups xmmword [ebp - 0x4c], xmm0
mov dword [ebp - 0x3c], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x38], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x411657
sub ecx, edx
lea eax, [ebp - 0x2b]
push ecx
push eax
lea ecx, [ebp - 0x4c]
call fcn.00402b20
mov byte [ebp - 4], 0xe
lea esi, [ebp - 0x4c]
cmp dword [ebp - 0x38], 0x10
cmovae esi, dword [ebp - 0x4c]
sub esp, 0x18
mov ecx, esi
mov edi, esp
mov dword [ebp - 0x50], edi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x411690
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebp - 0x70]
sub eax, edx
cmp eax, ecx
jb 0x41226b
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]
mov ecx, edi
call fcn.00487550
mov cl, byte [ebp - 0x11]
mov byte [ebp - 4], 0xf
call fcn.004108f0
add esp, 0x30
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0x38]
test eax, eax
sete al
mov byte [ebp - 0x11], al
cmp ecx, 0x10
jb 0x411717
mov edx, dword [ebp - 0x4c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x41170a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x412275
push ecx
push edx
call fcn.004f7c11
mov al, byte [ebp - 0x11]
add esp, 8
test al, al
je 0x411729
mov eax, dword [ebp - 0x9c]
mov byte [eax], 1
jmp 0x4117ab
cmp dword [ebp - 0x54], 0x10
lea edx, [ebp - 0x68]
xorps xmm0, xmm0
mov dword [ebp - 0x3c], 0
cmovae edx, dword [ebp - 0x68]
mov ecx, edx
mov dword [ebp - 0x38], 0
movups xmmword [ebp - 0x4c], xmm0
lea esi, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x411750
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x4c]
call fcn.00402b20
push ecx
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0x10
call fcn.0040c680
mov byte [ebp - 4], 0xc
add esp, 4
mov ecx, dword [ebp - 0x38]
cmp ecx, 0x10
jb 0x4117ab
mov edx, dword [ebp - 0x4c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4117a1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x412270
push ecx
push edx
call fcn.004f7c11
add esp, 8
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x54]
cmp ecx, 0x10
jb 0x4117e3
mov edx, dword [ebp - 0x68]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4117d9
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x412275
push ecx
push edx
call fcn.004f7c11
add esp, 8
mov edi, closesocket
movaps xmm0, xmmword [0x543e50]
xor ecx, ecx
mov dword [ebp - 0x2f], 0x8d82a0b7
mov word [ebp - 0x2b], 0x9c8e
mov byte [ebp - 0x29], 0xd1
movups xmmword [ebp - 0x28], xmm0
lea eax, [ecx - 0x15]
xor byte [ebp + ecx - 0x2f], al
inc ecx
cmp ecx, 0xe
jb 0x411806
mov dword [0x5584d4], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x2f]
mov byte [ebp - 0x21], 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 0x411838
sub ecx, edx
lea eax, [ebp - 0x2f]
push ecx
push eax
lea ecx, [ebp - 0x68]
call fcn.00402b20
mov byte [ebp - 4], 0x11
lea esi, [ebp - 0x68]
cmp dword [ebp - 0x54], 0x10
cmovae esi, dword [ebp - 0x68]
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x411862
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x70]
sub eax, edx
cmp eax, ecx
jb 0x41227a
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 - 0x4c]
call fcn.00487550
cmp dword [ebp - 0x38], 0x10
lea edx, [ebp - 0x4c]
jb 0x4118a5
mov edx, dword [ebp - 0x4c]
test edx, edx
je 0x4118e7
mov ecx, edx
lea esi, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4118b0
sub ecx, esi
je 0x4118e7
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x4118e1
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x4118e1
cmp eax, 0x20
je 0x4118e1
cmp eax, 0x45
je 0x4118e1
cmp eax, 0x24
jne 0x4118e7
mov byte [ebp - 0x11], 1
jmp 0x4118eb
mov byte [ebp - 0x11], 0
mov ecx, dword [ebp - 0x38]
cmp ecx, 0x10
jb 0x41191f
mov edx, dword [ebp - 0x4c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x411915
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41227f
push ecx
push edx
call fcn.004f7c11
add esp, 8
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x54]
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0xf
mov byte [ebp - 0x4c], 0
cmp ecx, 0x10
jb 0x411969
mov edx, dword [ebp - 0x68]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x41195f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41227f
push ecx
push edx
call fcn.004f7c11
add esp, 8
cmp byte [ebp - 0x11], 0
je 0x411cca
movaps xmm0, xmmword [0x543e50]
xor ecx, ecx
mov dword [ebp - 0x2f], 0x8d82a0b7
mov word [ebp - 0x2b], 0x9c8e
mov byte [ebp - 0x29], 0xd1
movups xmmword [ebp - 0x28], xmm0
lea eax, [ecx - 0x15]
xor byte [ebp + ecx - 0x2f], al
inc ecx
cmp ecx, 0xe
jb 0x411991
mov dword [0x5584d4], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x2f]
mov byte [ebp - 0x21], 0
movups xmmword [ebp - 0x4c], xmm0
mov dword [ebp - 0x3c], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x38], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4119c3
sub ecx, edx
lea eax, [ebp - 0x2f]
push ecx
push eax
lea ecx, [ebp - 0x4c]
call fcn.00402b20
mov byte [ebp - 4], 0x12
lea esi, [ebp - 0x4c]
cmp dword [ebp - 0x38], 0x10
cmovae esi, dword [ebp - 0x4c]
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4119f0
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x88]
sub eax, edx
cmp eax, ecx
jb 0x412284
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 - 0x68]
call fcn.00487550
mov byte [ebp - 4], 0x14
mov ecx, dword [ebp - 0x38]
cmp ecx, 0x10
jb 0x411a67
mov edx, dword [ebp - 0x4c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x411a5d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x412293
push ecx
push edx
call fcn.004f7c11
add esp, 8
mov esi, dword [ebp - 0x54]
lea edx, [ebp - 0x68]
mov edi, dword [ebp - 0x68]
cmp esi, 0x10
jb 0x411a7b
mov edx, edi
test edx, edx
je 0x411abb
mov ecx, edx
lea eax, [ecx + 1]
mov dword [ebp - 0x18], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x411a83
sub ecx, dword [ebp - 0x18]
je 0x411abb
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x411ad5
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x411ad5
cmp eax, 0x20
je 0x411ad5
cmp eax, 0x45
je 0x411ad5
cmp eax, 0x24
je 0x411ad5
mov esi, dword [ebp - 0x54]
mov edi, dword [ebp - 0x68]
cmp esi, 0x10
lea eax, [ebp - 0x68]
push 0
cmovae eax, edi
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x411c8d
movaps xmm0, xmmword [0x543e50]
lea eax, [ebp - 0x68]
sub esp, 0x18
mov dword [ebp - 0x2f], 0x8d82a0b7
mov ecx, esp
mov dword [ebp - 0x50], esp
mov word [ebp - 0x2b], 0x9c8e
mov byte [ebp - 0x29], 0xd1
push eax
movups xmmword [ebp - 0x28], xmm0
mov byte [ebp - 0x11], 0
call fcn.0047faa0
mov byte [ebp - 4], 0x15
xor ecx, ecx
nop dword [eax]
lea eax, [ecx - 0x15]
xor byte [ebp + ecx - 0x2f], al
inc ecx
cmp ecx, 0xe
jb 0x411b10
mov dword [0x5584d4], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x2f]
mov byte [ebp - 0x21], 0
movups xmmword [ebp - 0x4c], xmm0
mov dword [ebp - 0x3c], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x38], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x411b42
sub ecx, edx
lea eax, [ebp - 0x2f]
push ecx
push eax
lea ecx, [ebp - 0x4c]
call fcn.00402b20
mov byte [ebp - 4], 0x16
lea esi, [ebp - 0x4c]
cmp dword [ebp - 0x38], 0x10
cmovae esi, dword [ebp - 0x4c]
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 0x411b74
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebp - 0x70]
sub eax, edx
cmp eax, ecx
jb 0x412289
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]
mov ecx, edi
call fcn.00487550
mov cl, byte [ebp - 0x11]
mov byte [ebp - 4], 0x17
call fcn.004108f0
add esp, 0x30
mov byte [ebp - 4], 0x14
mov ecx, dword [ebp - 0x38]
test eax, eax
sete al
mov byte [ebp - 0x11], al
cmp ecx, 0x10
jb 0x411bfb
mov edx, dword [ebp - 0x4c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x411bee
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x412293
push ecx
push edx
call fcn.004f7c11
mov al, byte [ebp - 0x11]
add esp, 8
test al, al
je 0x411c0d
mov eax, dword [ebp - 0x9c]
mov byte [eax], 1
jmp 0x411c8d
cmp dword [ebp - 0x54], 0x10
lea edx, [ebp - 0x68]
xorps xmm0, xmm0
mov dword [ebp - 0x3c], 0
cmovae edx, dword [ebp - 0x68]
mov ecx, edx
mov dword [ebp - 0x38], 0
movups xmmword [ebp - 0x4c], xmm0
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x411c32
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x4c]
call fcn.00402b20
push ecx
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0x18
call fcn.0040c680
mov byte [ebp - 4], 0x14
add esp, 4
mov ecx, dword [ebp - 0x38]
cmp ecx, 0x10
jb 0x411c8d
mov edx, dword [ebp - 0x4c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x411c83
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41228e
push ecx
push edx
call fcn.004f7c11
add esp, 8
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x54]
cmp ecx, 0x10
jb 0x411cc5
mov edx, dword [ebp - 0x68]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x411cbb
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x412293
push ecx
push edx
call fcn.004f7c11
add esp, 8
mov edi, closesocket
movaps xmm0, xmmword [0x545c40]
xor ecx, ecx
movups xmmword [ebp - 0x31], xmm0
mov byte [ebp - 0x19], 0
xorps xmm0, xmm0
movq qword [ebp - 0x21], xmm0
lea eax, [ecx - 0x15]
xor byte [ebp + ecx - 0x31], al
inc ecx
cmp ecx, 0x10
jb 0x411ce3
mov dword [0x5585d8], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x31]
mov byte [ebp - 0x21], 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 0x411d15
sub ecx, edx
lea eax, [ebp - 0x31]
push ecx
push eax
lea ecx, [ebp - 0x68]
call fcn.00402b20
mov byte [ebp - 4], 0x19
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 0x411d40
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x70]
sub eax, edx
cmp eax, ecx
jb 0x412298
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 - 0x4c]
call fcn.00487550
cmp dword [ebp - 0x38], 0x10
lea edx, [ebp - 0x4c]
jb 0x411d83
mov edx, dword [ebp - 0x4c]
test edx, edx
je 0x411dbf
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x411d88
sub ecx, esi
je 0x411dbf
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x411db9
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x411db9
cmp eax, 0x20
je 0x411db9
cmp eax, 0x45
je 0x411db9
cmp eax, 0x24
jne 0x411dbf
mov byte [ebp - 0x11], 1
jmp 0x411dc3
mov byte [ebp - 0x11], 0
mov ecx, dword [ebp - 0x38]
cmp ecx, 0x10
jb 0x411df7
mov edx, dword [ebp - 0x4c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x411ded
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41229d
push ecx
push edx
call fcn.004f7c11
add esp, 8
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x54]
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0xf
mov byte [ebp - 0x4c], 0
cmp ecx, 0x10
jb 0x411e41
mov edx, dword [ebp - 0x68]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x411e37
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41229d
push ecx
push edx
call fcn.004f7c11
add esp, 8
cmp byte [ebp - 0x11], 0
je 0x41218b
movaps xmm0, xmmword [0x545c40]
xor ecx, ecx
movups xmmword [ebp - 0x31], xmm0
mov byte [ebp - 0x19], 0
xorps xmm0, xmm0
movq qword [ebp - 0x21], xmm0
lea eax, [ecx - 0x15]
xor byte [ebp + ecx - 0x31], al
inc ecx
cmp ecx, 0x10
jb 0x411e64
mov dword [0x5585d8], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x31]
mov byte [ebp - 0x21], 0
movups xmmword [ebp - 0x4c], xmm0
mov dword [ebp - 0x3c], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x38], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x411e96
sub ecx, edx
lea eax, [ebp - 0x31]
push ecx
push eax
lea ecx, [ebp - 0x4c]
call fcn.00402b20
mov byte [ebp - 4], 0x1a
lea esi, [ebp - 0x4c]
cmp dword [ebp - 0x38], 0x10
cmovae esi, dword [ebp - 0x4c]
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x411ec0
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x88]
sub eax, edx
cmp eax, ecx
jb 0x4122a2
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 - 0x68]
call fcn.00487550
mov byte [ebp - 4], 0x1c
mov ecx, dword [ebp - 0x38]
cmp ecx, 0x10
jb 0x411f37
mov edx, dword [ebp - 0x4c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x411f2d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4122b1
push ecx
push edx
call fcn.004f7c11
add esp, 8
mov esi, dword [ebp - 0x54]
lea edx, [ebp - 0x68]
mov edi, dword [ebp - 0x68]
cmp esi, 0x10
jb 0x411f4b
mov edx, edi
test edx, edx
je 0x411f8b
mov ecx, edx
lea eax, [ecx + 1]
mov dword [ebp - 0x18], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x411f53
sub ecx, dword [ebp - 0x18]
je 0x411f8b
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x411fa5
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x411fa5
cmp eax, 0x20
je 0x411fa5
cmp eax, 0x45
je 0x411fa5
cmp eax, 0x24
je 0x411fa5
mov esi, dword [ebp - 0x54]
mov edi, dword [ebp - 0x68]
cmp esi, 0x10
lea eax, [ebp - 0x68]
push 0
cmovae eax, edi
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x412157
movaps xmm0, xmmword [0x545c40]
lea eax, [ebp - 0x68]
sub esp, 0x18
mov byte [ebp - 0x19], 0
movups xmmword [ebp - 0x31], xmm0
mov dword [ebp - 0x50], esp
mov ecx, esp
xorps xmm0, xmm0
mov byte [ebp - 0x11], 0
push eax
movq qword [ebp - 0x21], xmm0
call fcn.0047faa0
mov byte [ebp - 4], 0x1d
xor ecx, ecx
lea eax, [ecx - 0x15]
xor byte [ebp + ecx - 0x31], al
inc ecx
cmp ecx, 0x10
jb 0x411fd7
mov dword [0x5585d8], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x31]
mov byte [ebp - 0x21], 0
movups xmmword [ebp - 0x4c], xmm0
mov dword [ebp - 0x3c], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x38], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x412010
sub ecx, edx
lea eax, [ebp - 0x31]
push ecx
push eax
lea ecx, [ebp - 0x4c]
call fcn.00402b20
mov byte [ebp - 4], 0x1e
lea esi, [ebp - 0x4c]
cmp dword [ebp - 0x38], 0x10
cmovae esi, dword [ebp - 0x4c]
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 0x412042
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebp - 0x70]
sub eax, edx
cmp eax, ecx
jb 0x4122a7
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]
mov ecx, edi
call fcn.00487550
mov cl, byte [ebp - 0x11]
mov byte [ebp - 4], 0x1f
call fcn.004108f0
add esp, 0x30
mov byte [ebp - 4], 0x1c
mov ecx, dword [ebp - 0x38]
test eax, eax
sete al
mov byte [ebp - 0x11], al
cmp ecx, 0x10
jb 0x4120c9
mov edx, dword [ebp - 0x4c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4120bc
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4122b1
push ecx
push edx
call fcn.004f7c11
mov al, byte [ebp - 0x11]
add esp, 8
test al, al
je 0x4120db
mov eax, dword [ebp - 0x9c]
mov byte [eax], 1
jmp 0x412157
cmp dword [ebp - 0x54], 0x10
lea edx, [ebp - 0x68]
xorps xmm0, xmm0
mov dword [ebp - 0x3c], 0
cmovae edx, dword [ebp - 0x68]
mov ecx, edx
mov dword [ebp - 0x38], 0
movups xmmword [ebp - 0x4c], xmm0
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x412100
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x4c]
call fcn.00402b20
push ecx
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0x20
call fcn.0040c680
mov ecx, dword [ebp - 0x38]
add esp, 4
cmp ecx, 0x10
jb 0x412157
mov edx, dword [ebp - 0x4c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x41214d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4122ac
push ecx
push edx
call fcn.004f7c11
add esp, 8
mov ecx, dword [ebp - 0x54]
cmp ecx, 0x10
jb 0x41218b
mov edx, dword [ebp - 0x68]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x412181
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4122b1
push ecx
push edx
call fcn.004f7c11
add esp, 8
mov ecx, dword [ebp - 0x84]
cmp ecx, 0x10
jb 0x4121c5
mov edx, dword [ebp - 0x98]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4121bb
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4122b6
push ecx
push edx
call fcn.004f7c11
add esp, 8
mov edx, dword [ebp - 0x6c]
cmp edx, 0x10
jb 0x4121f9
mov ecx, dword [ebp - 0x80]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4121ef
mov ecx, dword [eax - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4122bb
push edx
push ecx
call fcn.004f7c11
add esp, 8
mov ecx, dword [ebx + 0x1c]
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0xf
mov byte [ebp - 0x80], 0
cmp ecx, 0x10
jb 0x41223f
mov edx, dword [ebx + 8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x412235
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4122bb
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.00402390
call fcn.004fceb0
call fcn.00402390
call fcn.00402390
call fcn.004fceb0
call fcn.004fceb0
call fcn.00402390
call fcn.004fceb0
call fcn.00402390
call fcn.00402390
call fcn.004fceb0
call fcn.004fceb0
call fcn.004fceb0
call fcn.004fceb0
int3