Function at 0x40f190
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 0x50304b
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.004de6d0
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], 0x1c122739
xor ecx, ecx
mov dword [ebp - 0x20], 0x284b1301
mov dword [ebp - 0x1c], 0x4041d08
mov dword [ebp - 0x18], 0x100021e
lea eax, [ecx + 0x65]
xor byte [ebp + ecx - 0x24], al
inc ecx
cmp ecx, 0xe
jb 0x40f217
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 0x40f243
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.00469420
add esp, 4
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x40]
cmp ecx, 0x10
jb 0x40f2aa
mov edx, dword [ebp - 0x54]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40f2a0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40ffc5
push ecx
push edx
call fcn.004dc6f1
add esp, 8
cmp dword [ebp - 0x58], 0x10
lea esi, [ebp - 0x6c]
push 0x536230
cmovae esi, dword [ebp - 0x6c]
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0xf
mov byte [ebp - 0x54], 0
call fcn.004db9f2
add esp, 4
test eax, eax
jne 0x40ffca
test esi, esi
je 0x40ff2b
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f2f0
sub ecx, edx
je 0x40ff2b
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x40f329
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x40f329
cmp eax, 0x20
je 0x40f329
cmp eax, 0x45
je 0x40f329
cmp eax, 0x24
jne 0x40ff2b
push 0x536230
call fcn.004dba03
add esp, 4
mov dword [ebp - 0x34], 0x1c122739
mov dword [ebp - 0x30], 0x1001301
xor ecx, ecx
lea eax, [ecx + 0x65]
xor byte [ebp + ecx - 0x34], al
inc ecx
cmp ecx, 6
jb 0x40f346
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 0x40f360
mov edi, closesocket
sub ecx, edx
mov edx, dword [ebx + 0x18]
mov eax, edi
sub eax, edx
cmp eax, ecx
jb 0x40ffd0
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.0046cf70
mov byte [ebp - 4], 4
lea esi, [ebp - 0x88]
cmp dword [ebp - 0x74], 0x10
push 0x536230
cmovae esi, dword [ebp - 0x88]
call fcn.004db9f2
add esp, 4
test eax, eax
jne 0x40ffd5
test esi, esi
je 0x40f411
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f3d1
sub ecx, edx
je 0x40f411
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x40f402
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x40f402
cmp eax, 0x20
je 0x40f402
cmp eax, 0x45
je 0x40f402
cmp eax, 0x24
jne 0x40f411
push 0x536230
call fcn.004dba03
add esp, 4
jmp 0x40f440
push 0x536230
call fcn.004dba03
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 0x40fef2
mov dword [ebp - 0x38], 0xc092f39
xor ecx, ecx
mov dword [ebp - 0x34], 0x80e120c
mov dword [ebp - 0x30], 0x1002c29
lea eax, [ecx + 0x65]
xor byte [ebp + ecx - 0x38], al
inc ecx
cmp ecx, 0xa
jb 0x40f457
lea ecx, [ebp - 0x38]
mov byte [ebp - 0x2d], 0
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f470
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x5c]
sub eax, edx
cmp eax, ecx
jb 0x40ffdb
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.0046cf70
mov byte [ebp - 4], 5
lea esi, [ebp - 0x54]
cmp dword [ebp - 0x40], 0x10
push 0x536230
cmovae esi, dword [ebp - 0x54]
call fcn.004db9f2
add esp, 4
test eax, eax
jne 0x40ffe0
test esi, esi
je 0x40f514
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f4d3
sub ecx, edx
je 0x40f514
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x40f504
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x40f504
cmp eax, 0x20
je 0x40f504
cmp eax, 0x45
je 0x40f504
cmp eax, 0x24
jne 0x40f514
push 0x536230
call fcn.004dba03
mov byte [ebp - 0x11], 1
jmp 0x40f522
push 0x536230
call fcn.004dba03
mov byte [ebp - 0x11], 0
mov byte [ebp - 4], 4
add esp, 4
mov ecx, dword [ebp - 0x40]
cmp ecx, 0x10
jb 0x40f55d
mov edx, dword [ebp - 0x54]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40f553
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40ffe6
push ecx
push edx
call fcn.004dc6f1
add esp, 8
cmp byte [ebp - 0x11], 0
je 0x40f7cb
mov dword [ebp - 0x38], 0xc092f39
xor ecx, ecx
mov dword [ebp - 0x34], 0x80e120c
mov dword [ebp - 0x30], 0x1002c29
nop
lea eax, [ecx + 0x65]
xor byte [ebp + ecx - 0x38], al
inc ecx
cmp ecx, 0xa
jb 0x40f580
lea ecx, [ebp - 0x38]
mov byte [ebp - 0x2d], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f597
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x78]
sub eax, edx
cmp eax, ecx
jb 0x40ffeb
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.0046cf70
mov byte [ebp - 4], 6
lea esi, [ebp - 0x54]
cmp dword [ebp - 0x40], 0x10
push 0x536230
cmovae esi, dword [ebp - 0x54]
call fcn.004db9f2
add esp, 4
test eax, eax
jne 0x40fff0
test esi, esi
je 0x40f640
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f600
sub ecx, edx
je 0x40f640
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x40f631
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x40f631
cmp eax, 0x20
je 0x40f631
cmp eax, 0x45
je 0x40f631
cmp eax, 0x24
jne 0x40f640
push 0x536230
call fcn.004dba03
add esp, 4
jmp 0x40f669
push 0x536230
call fcn.004dba03
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 0x40f793
sub esp, 0x18
mov byte [ebp - 0x11], 0
lea eax, [ebp - 0x54]
mov dword [ebp - 0x3c], esp
mov ecx, esp
push eax
call fcn.004655b0
mov byte [ebp - 4], 7
xor ecx, ecx
mov dword [ebp - 0x20], 0xc092f39
mov dword [ebp - 0x1c], 0x80e120c
mov dword [ebp - 0x18], 0x1002c29
nop dword [eax]
lea eax, [ecx + 0x65]
xor byte [ebp + ecx - 0x20], al
inc ecx
cmp ecx, 0xa
jb 0x40f6a0
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 0x40f6c0
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x5c]
sub eax, edx
cmp eax, ecx
jb 0x40fff6
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.0046cf70
mov cl, byte [ebp - 0x11]
mov byte [ebp - 4], 6
call fcn.0040eb70
add esp, 0x30
test eax, eax
jne 0x40f713
mov eax, dword [ebp - 0x70]
mov byte [eax], 1
jmp 0x40f793
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 0x40f738
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.0040bb70
mov byte [ebp - 4], 6
add esp, 4
mov ecx, dword [ebp - 0x18]
cmp ecx, 0x10
jb 0x40f793
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40f789
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40fffb
push ecx
push edx
call fcn.004dc6f1
add esp, 8
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x40]
cmp ecx, 0x10
jb 0x40f7cb
mov edx, dword [ebp - 0x54]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40f7c1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x410000
push ecx
push edx
call fcn.004dc6f1
add esp, 8
mov dword [ebp - 0x24], 0xb082a39
xor ecx, ecx
mov dword [ebp - 0x20], 0x3f4b0608
mov dword [ebp - 0x1c], 0x111d0119
mov dword [ebp - 0x18], 0x1001716
nop dword [eax]
lea eax, [ecx + 0x65]
xor byte [ebp + ecx - 0x24], al
inc ecx
cmp ecx, 0xe
jb 0x40f7f0
lea ecx, [ebp - 0x24]
mov byte [ebp - 0x15], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f807
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x5c]
sub eax, edx
cmp eax, ecx
jb 0x410005
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.0046cf70
mov byte [ebp - 4], 9
lea esi, [ebp - 0x54]
cmp dword [ebp - 0x40], 0x10
push 0x536230
cmovae esi, dword [ebp - 0x54]
call fcn.004db9f2
add esp, 4
test eax, eax
jne 0x41000a
test esi, esi
je 0x40f8b1
mov ecx, esi
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f870
sub ecx, edx
je 0x40f8b1
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x40f8a1
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x40f8a1
cmp eax, 0x20
je 0x40f8a1
cmp eax, 0x45
je 0x40f8a1
cmp eax, 0x24
jne 0x40f8b1
push 0x536230
call fcn.004dba03
mov byte [ebp - 0x11], 1
jmp 0x40f8bf
push 0x536230
call fcn.004dba03
mov byte [ebp - 0x11], 0
mov byte [ebp - 4], 4
add esp, 4
mov ecx, dword [ebp - 0x40]
cmp ecx, 0x10
jb 0x40f8fa
mov edx, dword [ebp - 0x54]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40f8f0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x410010
push ecx
push edx
call fcn.004dc6f1
add esp, 8
cmp byte [ebp - 0x11], 0
je 0x40fb7b
mov dword [ebp - 0x24], 0xb082a39
xor ecx, ecx
mov dword [ebp - 0x20], 0x3f4b0608
mov dword [ebp - 0x1c], 0x111d0119
mov dword [ebp - 0x18], 0x1001716
lea eax, [ecx + 0x65]
xor byte [ebp + ecx - 0x24], al
inc ecx
cmp ecx, 0xe
jb 0x40f922
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 0x40f940
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x78]
sub eax, edx
cmp eax, ecx
jb 0x410015
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.0046cf70
mov byte [ebp - 4], 0xa
lea esi, [ebp - 0x54]
cmp dword [ebp - 0x40], 0x10
push 0x536230
cmovae esi, dword [ebp - 0x54]
call fcn.004db9f2
add esp, 4
test eax, eax
jne 0x41001a
test esi, esi
je 0x40f9f0
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f9b0
sub ecx, edx
je 0x40f9f0
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x40f9e1
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x40f9e1
cmp eax, 0x20
je 0x40f9e1
cmp eax, 0x45
je 0x40f9e1
cmp eax, 0x24
jne 0x40f9f0
push 0x536230
call fcn.004dba03
add esp, 4
jmp 0x40fa19
push 0x536230
call fcn.004dba03
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 0x40fb43
sub esp, 0x18
mov byte [ebp - 0x11], 0
lea eax, [ebp - 0x54]
mov dword [ebp - 0x30], esp
mov ecx, esp
push eax
call fcn.004655b0
mov byte [ebp - 4], 0xb
xor ecx, ecx
mov dword [ebp - 0x24], 0xb082a39
mov dword [ebp - 0x20], 0x3f4b0608
mov dword [ebp - 0x1c], 0x111d0119
mov dword [ebp - 0x18], 0x1001716
lea eax, [ecx + 0x65]
xor byte [ebp + ecx - 0x24], al
inc ecx
cmp ecx, 0xe
jb 0x40fa50
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 0x40fa70
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x5c]
sub eax, edx
cmp eax, ecx
jb 0x410020
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.0046cf70
mov cl, byte [ebp - 0x11]
mov byte [ebp - 4], 0xa
call fcn.0040eb70
add esp, 0x30
test eax, eax
jne 0x40fac3
mov eax, dword [ebp - 0x70]
mov byte [eax], 1
jmp 0x40fb43
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 0x40fae8
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.0040bb70
mov byte [ebp - 4], 0xa
add esp, 4
mov ecx, dword [ebp - 0x18]
cmp ecx, 0x10
jb 0x40fb43
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40fb39
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x410025
push ecx
push edx
call fcn.004dc6f1
add esp, 8
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x40]
cmp ecx, 0x10
jb 0x40fb7b
mov edx, dword [ebp - 0x54]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40fb71
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41002a
push ecx
push edx
call fcn.004dc6f1
add esp, 8
movaps xmm0, xmmword [0x5253e0]
xor ecx, ecx
movups xmmword [ebp - 0x26], xmm0
mov word [ebp - 0x16], 0x100
nop
lea eax, [ecx + 0x65]
xor byte [ebp + ecx - 0x26], al
inc ecx
cmp ecx, 0x10
jb 0x40fb90
lea ecx, [ebp - 0x26]
mov byte [ebp - 0x15], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40fba7
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x5c]
sub eax, edx
cmp eax, ecx
jb 0x41002f
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.0046cf70
mov byte [ebp - 4], 0xd
lea esi, [ebp - 0x54]
cmp dword [ebp - 0x40], 0x10
push 0x536230
cmovae esi, dword [ebp - 0x54]
call fcn.004db9f2
add esp, 4
test eax, eax
jne 0x410034
test esi, esi
je 0x40fc51
mov ecx, esi
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40fc10
sub ecx, edx
je 0x40fc51
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x40fc41
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x40fc41
cmp eax, 0x20
je 0x40fc41
cmp eax, 0x45
je 0x40fc41
cmp eax, 0x24
jne 0x40fc51
push 0x536230
call fcn.004dba03
mov byte [ebp - 0x11], 1
jmp 0x40fc5f
push 0x536230
call fcn.004dba03
mov byte [ebp - 0x11], 0
mov byte [ebp - 4], 4
add esp, 4
mov ecx, dword [ebp - 0x40]
cmp ecx, 0x10
jb 0x40fc9a
mov edx, dword [ebp - 0x54]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40fc90
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41003a
push ecx
push edx
call fcn.004dc6f1
add esp, 8
cmp byte [ebp - 0x11], 0
je 0x40fef2
movaps xmm0, xmmword [0x5253e0]
xor ecx, ecx
movups xmmword [ebp - 0x26], xmm0
mov word [ebp - 0x16], 0x100
lea eax, [ecx + 0x65]
xor byte [ebp + ecx - 0x26], al
inc ecx
cmp ecx, 0x10
jb 0x40fcb7
lea ecx, [ebp - 0x26]
mov byte [ebp - 0x15], 0
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40fcd0
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x78]
sub eax, edx
cmp eax, ecx
jb 0x41003f
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.0046cf70
mov byte [ebp - 4], 0xe
lea esi, [ebp - 0x54]
cmp dword [ebp - 0x40], 0x10
push 0x536230
cmovae esi, dword [ebp - 0x54]
call fcn.004db9f2
add esp, 4
test eax, eax
jne 0x410044
test esi, esi
je 0x40fd80
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40fd40
sub ecx, edx
je 0x40fd80
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x40fd71
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x40fd71
cmp eax, 0x20
je 0x40fd71
cmp eax, 0x45
je 0x40fd71
cmp eax, 0x24
jne 0x40fd80
push 0x536230
call fcn.004dba03
add esp, 4
jmp 0x40fda9
push 0x536230
call fcn.004dba03
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 0x40febe
sub esp, 0x18
mov byte [ebp - 0x11], 0
lea eax, [ebp - 0x54]
mov dword [ebp - 0x30], esp
mov ecx, esp
push eax
call fcn.004655b0
mov byte [ebp - 4], 0xf
xor ecx, ecx
movaps xmm0, xmmword [0x5253e0]
movups xmmword [ebp - 0x26], xmm0
mov word [ebp - 0x16], 0x100
lea eax, [ecx + 0x65]
xor byte [ebp + ecx - 0x26], al
inc ecx
cmp ecx, 0x10
jb 0x40fdd5
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 0x40fdf4
sub ecx, edx
mov edx, dword [ebp - 0x5c]
sub edi, edx
cmp edi, ecx
jb 0x41004a
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.0046cf70
mov cl, byte [ebp - 0x11]
mov byte [ebp - 4], 0xe
call fcn.0040eb70
add esp, 0x30
test eax, eax
jne 0x40fe42
mov eax, dword [ebp - 0x70]
mov byte [eax], 1
jmp 0x40febe
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 0x40fe67
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.0040bb70
mov ecx, dword [ebp - 0x18]
add esp, 4
cmp ecx, 0x10
jb 0x40febe
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40feb4
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41004f
push ecx
push edx
call fcn.004dc6f1
add esp, 8
mov ecx, dword [ebp - 0x40]
cmp ecx, 0x10
jb 0x40fef2
mov edx, dword [ebp - 0x54]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40fee8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x410054
push ecx
push edx
call fcn.004dc6f1
add esp, 8
mov ecx, dword [ebp - 0x74]
cmp ecx, 0x10
jb 0x40ff38
mov edx, dword [ebp - 0x88]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40ff1f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x410059
push ecx
push edx
call fcn.004dc6f1
add esp, 8
jmp 0x40ff38
push 0x536230
call fcn.004dba03
add esp, 4
mov ecx, dword [ebp - 0x58]
cmp ecx, 0x10
jb 0x40ff6c
mov edx, dword [ebp - 0x6c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40ff62
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41005e
push ecx
push edx
call fcn.004dc6f1
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 0x40ffb2
mov edx, dword [ebx + 8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40ffa8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41005e
push ecx
push edx
call fcn.004dc6f1
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.004e1990
push eax
call fcn.004db69b
call fcn.00402040
push eax
call fcn.004db69b
call fcn.00402040
push eax
call fcn.004db69b
call fcn.004e1990
call fcn.00402040
push eax
call fcn.004db69b
call fcn.00402040
call fcn.004e1990
call fcn.004e1990
call fcn.00402040
push eax
call fcn.004db69b
call fcn.004e1990
call fcn.00402040
push eax
call fcn.004db69b
call fcn.00402040
call fcn.004e1990
call fcn.004e1990
call fcn.00402040
push eax
call fcn.004db69b
call fcn.004e1990
call fcn.00402040
push eax
call fcn.004db69b
call fcn.00402040
call fcn.004e1990
call fcn.004e1990
call fcn.004e1990
call fcn.004e1990
int3