Function at 0x408c10
Capabilities:
Create directory
Move file

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x26c
mov eax, dword [0x43300c]
mov edi, dword [ebp + 8]
mov esi, edx
mov ebx, ecx
xor eax, ebp
mov dword [ebp - 0x10], eax
mov eax, dword [edi + 4]
test eax, eax
jne 0x408c46
mov eax, dword [ebx]
test eax, eax
mov byte [ebp - 0x25d], 1
jne 0x408c6c
mov eax, dword [edi + 4]
jmp 0x408c51
mov ecx, dword [ebx + 4]
test ecx, ecx
jne 0x408d98
mov ecx, dword [ebx]
movzx eax, word [eax + ecx*2]
cmp ax, 0x5c
setne cl
test ax, ax
setne al
and al, cl
mov byte [ebp - 0x25d], al
mov eax, dword [esi + 4]
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x270], ebx
mov dword [ebp - 0x26c], esi
cmp eax, 0xffffffff
je 0x408d0c
mov ecx, eax
and ecx, 0x10
je 0x408d0c
test eax, 0x400
jne 0x408d0c
mov eax, dword [esi]
dec eax
cmp eax, 1
jbe 0x408d0c
mov ecx, esi
mov edx, ebx
push edi
call fcn.004097e0
add esp, 4
test eax, eax
je 0x408db9
cmp dword [ebp + 0x10], 1
jne 0x408cc1
cmp eax, 2
je 0x408db9
xor ecx, ecx
cmp eax, 1
mov esi, 0x80004005
cmove esi, ecx
mov edx, dword [ebp - 0x26c]
cmp dword [edx + 8], 0xffffffff
je 0x408d03
mov eax, dword [edx + 4]
cmp eax, 0xffffffff
setne cl
test al, 0x10
je 0x408d03
cmp eax, 0xffffffff
je 0x408d03
mov edx, dword [edx]
cmp edx, 2
je 0x408d03
cmp edx, 1
je 0x408d03
shr eax, 0xa
and al, cl
je 0x408f71
test esi, esi
mov eax, 0x80004005
jmp 0x408d7e
mov ecx, esi
mov edx, edi
call fcn.00409b70
mov ecx, dword [esi + 4]
mov edi, eax
cmp ecx, 0xffffffff
setne dl
cmp ecx, 0xffffffff
je 0x408d3f
mov eax, dword [esi]
cmp eax, 2
je 0x408d3f
cmp eax, 1
je 0x408d3f
shr ecx, 0xa
xor eax, eax
and cl, dl
mov ecx, 0
je 0x408d4d
mov ecx, ebx
mov edx, esi
call fcn.00409a70
test eax, eax
setns cl
test cl, cl
mov esi, edi
cmovne esi, eax
test edi, edi
cmovns esi, eax
test eax, eax
cmovs esi, eax
or byte [ebp - 0x25d], cl
jne 0x408d81
mov ecx, dword [ebp - 0x270]
mov edx, dword [ebp - 0x26c]
push 0
call fcn.004088a0
add esp, 4
test esi, esi
cmovns esi, eax
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0040e0d1
mov eax, esi
add esp, 0x26c
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, dword [ebx]
mov byte [ebp - 0x25d], 1
cmp edx, dword [edi]
ja 0x408c6c
push edx
push ecx
push eax
call fcn.00416f31
add esp, 0xc
jmp 0x408c36
lea ecx, [ebp - 0x228]
mov edx, ebx
mov dword [ebp - 0x228], 0
mov dword [ebp - 0x230], 0
mov dword [ebp - 0x224], 0
mov dword [ebp - 0x22c], 0
call fcn.00408b10
test eax, eax
js 0x408e47
mov edi, dword [ebp - 0x228]
test edi, edi
je 0x408e47
mov ecx, dword [ebp - 0x228]
mov ebx, dword [ebp - 0x224]
lea eax, [edi - 1]
jmp 0x408e11
dec eax
movzx edx, word [ebx + eax*2]
cmp dx, 0x5c
je 0x408e25
cmp dx, 0x2f
jne 0x408f2a
cmp edi, eax
jb 0x408e10
test eax, eax
mov ecx, eax
mov edi, eax
mov word [ebx + eax*2], 0
jne 0x408e10
mov esi, 0x80004005
mov dword [ebp - 0x228], eax
jmp 0x408f62
xor ebx, ebx
test eax, eax
js 0x409146
mov esi, dword [ebp - 0x224]
push 0x20a
call fcn.0040d9ae
add esp, 4
mov edi, eax
add eax, 2
push 0x208
push 0
push eax
call fcn.0040fff0
add esp, 0xc
mov dword [ebp - 0x234], edi
mov dword [ebp - 0x238], 0
mov word [edi], 0
push edi
push ebx
push esi
call fcn.0040c420
add esp, 0xc
mov esi, 0x80004005
test eax, eax
je 0x408f12
push edi
call fcn.00416af2
add esp, 4
test eax, eax
mov dword [ebp - 0x238], eax
je 0x408f12
mov ebx, dword [ebp - 0x26c]
mov eax, dword [ebx + 8]
lea ecx, [eax + 1]
cmp ecx, 2
jb 0x408ecd
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebx + 8], 0xffffffff
mov dword [ebp - 0x264], edi
push edi
mov edi, dword [ebp - 0x270]
push dword [edi + 4]
call dword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
je 0x40921e
mov eax, dword [ebp + 0xc]
add eax, 0x80
push eax
push dword [edi + 4]
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x4092b7
mov edi, dword [ebp - 0x264]
mov dword [ebp - 0x268], 0
push edi
call fcn.0040d9b7
add esp, 4
jmp 0x409155
mov dword [ebp - 0x228], ecx
push 0x2f
push ebx
call fcn.00410211
add esp, 8
mov ecx, ebx
mov ebx, eax
push 0x5c
mov dword [ebp - 0x264], ecx
push ecx
call fcn.00410211
add esp, 8
cmp ebx, eax
mov esi, 0x80004005
cmova eax, ebx
test eax, eax
jne 0x409247
mov dword [ebp - 0x268], 0
jmp 0x409155
mov eax, dword [ebp - 0x270]
lea edi, [ebp - 0x220]
mov ecx, edi
push dword [eax + 4]
call fcn.0040c230
call fcn.004141ec
mov dword [eax], 0
push edi
call fcn.0040c290
add esp, 4
test eax, eax
je 0x4091ec
mov edi, eax
push 0x42e014
push edi
call fcn.00416a90
add esp, 8
test eax, eax
je 0x408fe5
push 0x42e012
push edi
call fcn.00416a90
add esp, 8
test eax, eax
je 0x408fe5
mov eax, dword [ebp - 0x26c]
cmp dword [eax + 0xc], 0
je 0x409003
push dword [eax + 0x10]
push edi
call fcn.00416a90
add esp, 8
test eax, eax
jne 0x409003
mov ebx, esi
lea eax, [ebp - 0x220]
push eax
call fcn.0040c290
add esp, 4
mov edi, eax
test eax, eax
mov esi, ebx
jne 0x408fa5
jmp 0x4091ee
push 0x20a
call fcn.0040d9ae
add esp, 4
mov ebx, eax
add eax, 2
push 0x208
push 0
push eax
call fcn.0040fff0
add esp, 0xc
mov dword [ebp - 0x224], ebx
mov dword [ebp - 0x228], 0
mov word [ebx], 0
push edi
mov eax, dword [ebp - 0x270]
push dword [eax + 4]
push 0x42db74
push 0x105
lea eax, [ebp - 0x228]
push eax
call fcn.00409a30
add esp, 0x14
cmp dword [ebp - 0x228], 0
jne 0x409098
test esi, esi
mov eax, 0x8007006f
cmovns esi, eax
mov ebx, esi
mov eax, dword [ebp - 0x224]
mov dword [ebp - 0x224], 0
test eax, eax
je 0x408fe7
push eax
call fcn.0040d9b7
add esp, 4
jmp 0x408fe7
lea ebx, [ebp - 0x24c]
lea edi, [ebp - 0x228]
mov dword [ebp - 0x24c], 2
mov dword [ebp - 0x248], 0xffffffff
mov dword [ebp - 0x244], 0xffffffff
mov dword [ebp - 0x240], 0
mov dword [ebp - 0x23c], 0
mov ecx, ebx
mov edx, edi
push 0
call fcn.004096a0
add esp, 4
mov ecx, edi
mov edx, ebx
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00408c10
add esp, 0xc
mov ebx, eax
test esi, esi
cmovs ebx, esi
call fcn.004141ec
mov dword [eax], 0
mov eax, dword [ebp - 0x23c]
mov dword [ebp - 0x23c], 0
test eax, eax
je 0x409128
push eax
call fcn.0040d9b7
add esp, 4
mov eax, dword [ebp - 0x244]
lea ecx, [eax + 1]
cmp ecx, 2
jb 0x409072
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x409072
mov dword [ebp - 0x268], 0
mov esi, 0x80004005
mov eax, dword [ebp - 0x22c]
mov dword [ebp - 0x22c], 0
test eax, eax
je 0x409172
push eax
call fcn.0040d9b7
add esp, 4
mov eax, dword [ebp - 0x224]
mov dword [ebp - 0x224], 0
test eax, eax
je 0x40918f
push eax
call fcn.0040d9b7
add esp, 4
cmp byte [ebp - 0x268], 0
setne al
or byte [ebp - 0x25d], al
jne 0x4091c1
mov edi, dword [ebp - 0x270]
mov edx, dword [ebp - 0x26c]
mov ecx, edi
push edi
call fcn.004088a0
add esp, 4
cmp dword [edi], 0
je 0x408d81
mov eax, dword [ebp - 0x26c]
cmp dword [eax + 8], 0xffffffff
jne 0x408cce
mov ecx, dword [ebp - 0x26c]
mov edx, dword [ebp - 0x270]
push 0
call fcn.004096a0
add esp, 4
jmp 0x408cce
mov ebx, esi
call fcn.004141ec
cmp dword [eax], 0
mov eax, dword [ebp - 0x220]
mov esi, 0x80004005
cmove esi, ebx
test ebx, ebx
cmovs esi, ebx
cmp eax, 0xffffffff
je 0x408d81
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
jmp 0x408d81
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, dword [ebp - 0x264]
movzx esi, ax
mov dword [ebp - 0x268], 0
or esi, 0x80070000
test eax, eax
cmovle esi, eax
jmp 0x408f1c
add eax, 2
lea ecx, [ebp - 0x230]
mov edx, eax
call fcn.00407d10
test eax, eax
mov dword [ebp - 0x268], 0
js 0x409155
mov eax, dword [ebp - 0x230]
test eax, eax
je 0x409155
lea ecx, [eax + 1]
cmp edi, ecx
jb 0x409155
not eax
add eax, edi
cmp edi, eax
jb 0x40929e
mov ecx, dword [ebp - 0x264]
mov edi, eax
mov dword [ebp - 0x228], eax
mov word [ecx + eax*2], 0
test edi, edi
je 0x408f62
mov ebx, dword [ebp - 0x22c]
mov esi, dword [ebp - 0x264]
jmp 0x408e57
mov edi, dword [ebp - 0x26c]
mov edx, dword [ebp - 0x270]
mov ecx, edi
push 0
call fcn.004096a0
add esp, 4
mov eax, dword [edi + 8]
cmp eax, 0xffffffff
je 0x409336
mov ecx, dword [ebp - 0x26c]
mov ecx, dword [ecx + 4]
cmp ecx, 0xffffffff
setne dl
test cl, 0x10
je 0x40933b
cmp ecx, 0xffffffff
je 0x40933b
mov edi, dword [ebp - 0x26c]
mov edi, dword [edi]
cmp edi, 2
je 0x40933b
cmp edi, 1
je 0x40933b
mov edi, dword [ebp - 0x264]
shr ecx, 0xa
and cl, dl
jne 0x409341
mov ecx, dword [ebp - 0x26c]
mov edx, dword [ebp - 0x270]
push dword [ebp + 0xc]
call fcn.004097e0
add esp, 4
cmp eax, 1
je 0x409362
mov eax, dword [ebp - 0x26c]
mov eax, dword [eax + 8]
jmp 0x40933b
mov eax, 0xffffffff
mov edi, dword [ebp - 0x264]
lea ecx, [eax + 1]
cmp ecx, 2
jb 0x409350
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x26c]
mov dword [eax + 8], 0xffffffff
jmp 0x408f12
mov dword [ebp - 0x24c], 2
mov dword [ebp - 0x248], 0xffffffff
mov dword [ebp - 0x244], 0xffffffff
mov dword [ebp - 0x240], 0
mov dword [ebp - 0x23c], 0
lea ecx, [ebp - 0x24c]
lea edx, [ebp - 0x238]
push 0
call fcn.004096a0
add esp, 4
cmp dword [ebp - 0x244], 0xffffffff
mov esi, 0x80004005
je 0x40964e
mov eax, dword [ebp - 0x248]
cmp eax, 0xffffffff
setne cl
test al, 0x10
je 0x40964e
cmp eax, 0xffffffff
je 0x40964e
mov edx, dword [ebp - 0x24c]
cmp edx, 2
je 0x40964e
cmp edx, 1
je 0x40964e
shr eax, 0xa
and al, cl
jne 0x40964e
push 0x20a
call fcn.0040d9ae
add esp, 4
mov edi, eax
add eax, 2
push 0x208
push 0
push eax
call fcn.0040fff0
add esp, 0xc
mov dword [ebp - 0x250], edi
mov dword [ebp - 0x254], 0
mov word [edi], 0
push 0x20a
call fcn.0040d9ae
add esp, 4
mov edi, eax
add eax, 2
push 0x208
push 0
push eax
call fcn.0040fff0
add esp, 0xc
lea ebx, [ebp - 0x220]
mov dword [ebp - 0x258], edi
mov dword [ebp - 0x25c], 0
mov word [edi], 0
mov ecx, ebx
push dword [ebp - 0x264]
call fcn.0040c230
call fcn.004141ec
mov dword [eax], 0
push ebx
call fcn.0040c290
add esp, 4
test eax, eax
je 0x4095c5
mov edx, dword [ebp - 0x240]
mov ecx, dword [ebp - 0x23c]
mov edi, eax
mov dword [ebp - 0x274], 0
mov dword [ebp - 0x268], edx
mov dword [ebp - 0x278], ecx
jmp 0x409511
push edi
push dword [ebp - 0x264]
push 0x42db74
push 0x105
lea eax, [ebp - 0x254]
push eax
call fcn.00409a30
add esp, 0x14
cmp dword [ebp - 0x254], 0
jne 0x409556
mov eax, dword [ebp - 0x274]
mov ecx, 0x8007006f
test eax, eax
cmovns eax, ecx
mov dword [ebp - 0x274], eax
push ebx
call fcn.0040c290
add esp, 4
mov edi, eax
test eax, eax
je 0x4095cf
push 0x42e014
push edi
call fcn.00416a90
add esp, 8
test eax, eax
je 0x4094fe
push 0x42e012
push edi
call fcn.00416a90
add esp, 8
test eax, eax
je 0x4094fe
cmp dword [ebp - 0x268], 0
je 0x4094bf
push dword [ebp - 0x278]
push edi
call fcn.00416a90
add esp, 8
test eax, eax
je 0x4094fe
jmp 0x4094bf
push edi
mov eax, dword [ebp - 0x270]
push dword [eax + 4]
push 0x42db74
push 0x105
lea eax, [ebp - 0x25c]
push eax
call fcn.00409a30
add esp, 0x14
cmp dword [ebp - 0x25c], 0
je 0x4094e8
lea ecx, [ebp - 0x254]
lea edx, [ebp - 0x25c]
push dword [ebp + 0xc]
call fcn.00409bc0
add esp, 4
mov edx, dword [ebp - 0x274]
mov ecx, eax
test edx, edx
cmovs ecx, edx
test eax, eax
cmovs edx, ecx
mov dword [ebp - 0x274], edx
call fcn.004141ec
mov dword [eax], 0
jmp 0x4094fe
mov dword [ebp - 0x274], 0
call fcn.004141ec
cmp dword [eax], 0
mov eax, dword [ebp - 0x274]
mov edi, 0x80004005
lea ecx, [ebp - 0x238]
lea edx, [ebp - 0x24c]
cmove edi, eax
test eax, eax
cmovs edi, eax
call fcn.00409a70
mov esi, eax
mov eax, dword [ebp - 0x220]
test edi, edi
cmovs esi, edi
cmp eax, 0xffffffff
je 0x409614
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [ebp - 0x258]
mov dword [ebp - 0x258], 0
test eax, eax
je 0x409631
push eax
call fcn.0040d9b7
add esp, 4
mov eax, dword [ebp - 0x250]
mov dword [ebp - 0x250], 0
test eax, eax
je 0x40964e
push eax
call fcn.0040d9b7
add esp, 4
mov eax, dword [ebp - 0x23c]
mov dword [ebp - 0x23c], 0
test eax, eax
je 0x40966b
push eax
call fcn.0040d9b7
add esp, 4
mov eax, dword [ebp - 0x244]
lea ecx, [eax + 1]
cmp ecx, 2
jb 0x409680
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edi, dword [ebp - 0x264]
mov al, 1
mov dword [ebp - 0x268], eax
jmp 0x408f1c