Function at 0x45c69c
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffc68
push ebx
push esi
push edi
mov esi, ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov byte [ebp - 9], 1
mov eax, dword [ebp - 4]
push esi
lea esi, [eax + 0x144]
lea edi, [ebp - 0x50]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop esi
mov byte [ebp - 0x3c], 0
mov byte [ebp - 0x3d], 0
mov eax, dword [ebp - 4]
mov edx, dword [ebp + 0x2c]
mov dword [eax + 0x144], edx
mov edx, dword [ebp + 0x30]
mov dword [eax + 0x148], edx
mov eax, dword [ebp - 8]
inc dword [eax]
mov dword [ebp - 0x34], 0xffffffff
mov ebx, dword [0x4be784]
mov ebx, dword [ebx + 0x19d8]
mov dword [ebp - 0x28], ebx
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
mov eax, dword [0x4be784]
mov dword [ebp - 0x394], ebx
xor eax, eax
mov dword [ebp - 0x390], eax
fild qword [ebp - 0x394]
fild qword [ebp + 0x2c]
faddp st(1)
fsub dword [0x45d25c]
add esp, 0xfffffff8
fistp qword [esp]
wait
call fcn.004aa590
mov eax, dword [ebp - 4]
fistp qword [eax + 0x14c]
wait
mov eax, dword [0x4bec38]
mov edx, dword [ebp + 0x20]
cmp byte [eax + edx - 1], 0
jne 0x45c8ca
push 0x45d260
imul ebx, dword [ebp + 0x20], 0xb
mov eax, dword [0x4be77c]
lea eax, [eax + ebx*2 - 0x16]
push eax
call sub.kernel32.dll_lstrcmpiA
test eax, eax
je 0x45c871
push 0x45d268
mov eax, dword [0x4be77c]
lea eax, [eax + ebx*2 - 0x16]
push eax
call sub.kernel32.dll_lstrcmpiA
test eax, eax
je 0x45c871
push 0x45d26c
mov eax, dword [0x4be77c]
lea eax, [eax + ebx*2 - 0x16]
push eax
call sub.kernel32.dll_lstrcmpiA
test eax, eax
je 0x45c871
push 0x45d270
imul eax, dword [ebp + 0x20], 0x17
mov edx, dword [0x4beb14]
lea eax, [edx + eax*2 - 0x2e]
push eax
call sub.kernel32.dll_lstrcmpiA
test eax, eax
je 0x45c871
push 0x45d274
mov eax, dword [0x4be77c]
lea eax, [eax + ebx*2 - 0x16]
push eax
call sub.kernel32.dll_lstrcmpiA
test eax, eax
je 0x45c871
push 0x45d27c
mov eax, dword [0x4be77c]
lea eax, [eax + ebx*2 - 0x16]
push eax
call sub.kernel32.dll_lstrcmpiA
test eax, eax
je 0x45c871
push 0x45d280
imul eax, dword [ebp + 0x20], 0x17
mov edx, dword [0x4beb14]
lea eax, [edx + eax*2 - 0x2e]
push eax
call sub.kernel32.dll_lstrcmpiA
test eax, eax
je 0x45c871
push 0x45d284
imul eax, dword [ebp + 0x20], 0x17
mov edx, dword [0x4beb14]
lea eax, [edx + eax*2 - 0x2e]
push eax
call sub.kernel32.dll_lstrcmpiA
test eax, eax
je 0x45c871
push 0x45d288
imul eax, dword [ebp + 0x20], 0x17
mov edx, dword [0x4beb14]
lea eax, [edx + eax*2 - 0x2e]
push eax
call sub.kernel32.dll_lstrcmpiA
test eax, eax
je 0x45c871
push 0x45d28c
mov eax, dword [0x4be77c]
lea eax, [eax + ebx*2 - 0x16]
push eax
call sub.kernel32.dll_lstrcmpiA
test eax, eax
jne 0x45cae3
push dword [ebp + 0x30]
push dword [ebp + 0x2c]
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x3d]
push eax
lea ecx, [ebp - 0x34]
lea edx, [ebp - 0x28]
mov eax, dword [ebp - 4]
call fcn.0045c4e4
test al, al
je 0x45c8bb
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
fild dword [ebp - 0x28]
fild qword [ebp + 0x2c]
faddp st(1)
fsub dword [0x45d25c]
add esp, 0xfffffff8
fistp qword [esp]
wait
call fcn.004aa590
mov eax, dword [ebp - 4]
fistp qword [eax + 0x14c]
wait
cmp dword [ebp - 0x34], 0xffffffff
je 0x45d24f
jmp 0x45cae3
mov eax, dword [0x4be784]
mov al, byte [eax + 0x18c1]
mov byte [ebp - 0x39], al
mov eax, dword [0x4be784]
mov al, byte [eax + 0x1934]
mov byte [ebp - 0x3a], al
mov ebx, dword [0x4be784]
mov bl, byte [ebx + 0x18c8]
mov eax, dword [0x4be784]
mov al, byte [eax + 0x18b7]
mov byte [ebp - 0x3b], al
mov eax, dword [0x4be784]
mov byte [eax + 0x18c8], 0
mov eax, dword [0x4be784]
mov byte [eax + 0x18b7], 0
mov eax, dword [0x4be784]
mov byte [eax + 0x18c1], 1
mov eax, dword [0x4be784]
mov byte [eax + 0x1934], 0
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
mov eax, dword [0x4be784]
mov eax, dword [eax + 0x19d8]
mov dword [ebp - 0x394], eax
xor eax, eax
mov dword [ebp - 0x390], eax
fild qword [ebp - 0x394]
fild qword [ebp + 0x2c]
faddp st(1)
add esp, 0xfffffff8
fistp qword [esp]
wait
call fcn.004aa590
mov eax, dword [ebp - 4]
fistp qword [eax + 0x14c]
wait
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x12c], edx
mov dword [eax + 0x130], edx
mov eax, dword [0x4be750]
mov eax, dword [eax]
push esi
mov esi, eax
lea edi, [ebp - 0x38a]
mov ecx, 0x4e
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop esi
mov eax, dword [0x4bec38]
mov edx, dword [ebp + 0x20]
mov al, byte [eax + edx - 1]
mov edx, dword [0x4be750]
mov edx, dword [edx]
mov byte [edx + 0x136], al
mov eax, dword [ebp + 0x20]
lea eax, [eax + eax*8]
mov edx, dword [0x4be668]
lea edx, [edx + eax - 9]
mov eax, dword [0x4be750]
mov eax, dword [eax]
add eax, 0x104
mov ecx, 0x10
call fcn.004066dc
mov eax, dword [0x4be750]
mov eax, dword [eax]
xor edx, edx
mov dword [eax + 0x100], edx
mov eax, dword [0x4bea04]
mov byte [eax], 2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
call fcn.0041e660
mov edx, dword [0x4be750]
mov edx, dword [edx]
push esi
mov edi, edx
lea esi, [ebp - 0x38a]
mov ecx, 0x4e
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop esi
mov edx, dword [0x4be784]
mov cl, byte [ebp - 0x39]
mov byte [edx + 0x18c1], cl
mov edx, dword [0x4be784]
mov byte [edx + 0x18c8], bl
mov edx, dword [0x4be784]
mov cl, byte [ebp - 0x3b]
mov byte [edx + 0x18b7], cl
mov edx, dword [0x4be784]
mov cl, byte [ebp - 0x3a]
mov byte [edx + 0x1934], cl
cmp al, 1
je 0x45caa0
cmp al, 1
jbe 0x45ca62
mov byte [ebp - 9], 0
jmp 0x45d24f
mov byte [ebp - 0x3d], 1
mov eax, dword [0x4be784]
mov eax, dword [eax + 0x19d8]
mov dword [ebp - 0x394], eax
xor eax, eax
mov dword [ebp - 0x390], eax
fild qword [ebp - 0x394]
mov eax, dword [ebp - 4]
fild qword [eax + 0x144]
faddp st(1)
fsub dword [0x45d25c]
mov eax, dword [ebp - 4]
fistp qword [eax + 0x12c]
wait
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x12c]
mov dword [ebp - 0x18], edx
mov edx, dword [eax + 0x130]
mov dword [ebp - 0x14], edx
mov eax, dword [0x4bec38]
mov edx, dword [ebp + 0x20]
movzx eax, byte [eax + edx - 1]
mov dword [ebp - 0x398], eax
fild dword [ebp - 0x398]
fild qword [ebp - 0x18]
faddp st(1)
fsub dword [0x45d25c]
mov eax, dword [ebp - 4]
fistp qword [eax + 0x14c]
wait
mov edx, dword [0x4be784]
add edx, 0x194b
mov eax, dword [0x4beb38]
call fcn.004b81b0
mov eax, dword [0x4beb38]
mov dl, 0x7e
call fcn.004b83b0
mov ebx, eax
fild dword [esi]
add esp, 0xfffffff8
fistp qword [esp]
wait
call fcn.004b849c
call fcn.004b8144
xor edx, edx
mov dl, bl
and eax, 0xff
sub edx, eax
test edx, edx
jle 0x45cb4f
mov ebx, edx
mov eax, dword [0x4beb38]
mov dl, 0x7e
call fcn.004b8284
test eax, eax
je 0x45cb3e
mov byte [eax], 0x30
dec ebx
jne 0x45cb2b
jmp 0x45cb4f
mov eax, dword [0x4beb38]
mov dl, 0x7e
call fcn.004b83d8
mov eax, dword [0x4beb38]
mov dl, 0x7e
call fcn.004b83b0
dec eax
jg 0x45cb43
fild dword [esi]
add esp, 0xfffffff8
fistp qword [esp]
wait
mov eax, dword [0x4beb38]
call fcn.004ae0e4
mov edx, dword [0x4bedb0]
mov eax, dword [0x4beb38]
call fcn.004b81b0
mov edx, dword [0x4be784]
add edx, 0x400
mov eax, dword [0x4bedb0]
call fcn.004b81b0
mov eax, dword [0x4bedb0]
call fcn.004aedb4
cmp byte [ebp + 0xc], 0
jne 0x45cc19
mov eax, dword [0x4be784]
cmp byte [eax + 0x1980], 0
je 0x45cc19
imul eax, dword [ebp + 0x20], 0x17
mov edx, dword [0x4beb14]
lea eax, [edx + eax*2 - 0x2e]
push eax
mov eax, dword [0x4bedb0]
push eax
call sub.kernel32.dll_lstrcatA
mov eax, dword [0x4bedb0]
mov dl, 0x3b
call fcn.004b8284
test eax, eax
je 0x45cbe2
mov byte [eax], 0
mov ebx, dword [ebp + 0x20]
dec ebx
mov edx, ebx
mov eax, dword [0x4be398]
call fcn.004aa450
test al, al
jne 0x45cc0f
push 0
mov eax, dword [0x4bedb0]
push eax
call sub.kernel32.dll_CreateDirectoryA
mov edx, ebx
mov eax, dword [0x4be398]
call fcn.004aa478
mov eax, dword [0x4bedb0]
call fcn.004aedb4
cmp byte [ebp - 0x3c], 0
jne 0x45cc25
cmp byte [ebp - 0x3d], 0
je 0x45cc3b
cmp byte [ebp + 0xc], 0
jne 0x45cc3b
push 0x45d294
mov eax, dword [0x4bedb0]
push eax
call sub.kernel32.dll_lstrcatA
mov eax, dword [0x4beb38]
push eax
mov eax, dword [0x4bedb0]
push eax
call sub.kernel32.dll_lstrcatA
push 0x45d298
mov eax, dword [0x4bedb0]
push eax
call sub.kernel32.dll_lstrcatA
imul eax, dword [ebp + 0x20], 0x17
mov edx, dword [0x4beb14]
lea eax, [edx + eax*2 - 0x2e]
push eax
mov eax, dword [0x4bedb0]
push eax
call sub.kernel32.dll_lstrcatA
mov eax, dword [0x4bedb0]
mov dl, 0x3b
call fcn.004b8284
test eax, eax
je 0x45cc89
mov byte [eax], 0
mov edx, dword [0x4bedb0]
lea eax, [ebp - 0x250]
call fcn.004b81b0
inc dword [esi]
mov eax, dword [ebp + 0x28]
mov eax, dword [eax]
mov dword [ebp - 0x30], eax
cmp byte [ebp + 0xc], 0
jbe 0x45ccf8
mov eax, dword [ebp - 4]
movsx eax, byte [eax + 0x442]
mov edx, dword [0x4becf0]
movzx eax, word [edx + eax*2 + 0x54]
mov dword [ebp - 0x398], eax
fild dword [ebp - 0x398]
mov eax, dword [ebp - 4]
fild qword [eax + 0x144]
fdivrp st(1)
add esp, 0xfffffff4
fstp xword [esp]
wait
call fcn.004aefd0
mov edx, dword [ebp - 4]
add edx, 0x15c
call fcn.004a2578
mov edx, dword [0x4be7b0]
mov dword [edx], eax
cmp byte [ebp + 0xc], 1
jne 0x45cd84
mov eax, dword [ebp + 0x28]
inc dword [eax]
mov eax, dword [ebp - 4]
fild qword [eax + 0x14c]
mov eax, dword [ebp - 4]
fild qword [eax + 0x144]
fsubp st(1)
fadd dword [0x45d25c]
add esp, 0xfffffff8
fistp qword [esp]
wait
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
mov eax, dword [0x4be7b0]
mov eax, dword [eax]
push eax
mov eax, dword [ebp - 4]
fild qword [eax + 0x144]
fchs
add esp, 0xfffffff8
fistp qword [esp]
wait
push 0
lea eax, [ebp - 0x250]
call fcn.004aed10
mov edx, eax
mov ecx, dword [ebp - 4]
mov cl, byte [ecx + 0x442]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.00453100
test al, al
jne 0x45cd84
mov byte [ebp - 9], 0
jmp 0x45d24f
cmp byte [ebp + 0xc], 2
jne 0x45cfed
mov eax, dword [ebp + 0x28]
inc dword [eax]
mov byte [ebp - 0x3e], 0xff
cmp dword [ebp - 0x34], 0
je 0x45cdcb
cmp dword [ebp - 0x34], 2
je 0x45cdcb
cmp dword [ebp - 0x34], 3
je 0x45cdcb
cmp dword [ebp - 0x34], 4
je 0x45cdcb
cmp dword [ebp - 0x34], 5
je 0x45cdcb
cmp dword [ebp - 0x34], 7
je 0x45cdcb
cmp dword [ebp - 0x34], 6
je 0x45cdcb
cmp dword [ebp - 0x34], 1
jne 0x45cf65
mov eax, dword [0x4be784]
cmp byte [eax + 0x1987], 0
je 0x45cf65
cmp dword [ebp - 0x28], 0x64
jge 0x45cdec
mov byte [ebp - 0x3e], 0
jmp 0x45cf65
mov byte [ebp - 0x3e], 0xfe
cmp dword [ebp - 0x28], 0x17d7840
jge 0x45cf65
push 4
push 0x1000
fild dword [ebp - 0x28]
add esp, 0xfffffff8
fistp qword [esp]
wait
call fcn.004af008
push eax
push 0
call sub.kernel32.dll_VirtualAlloc_1
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x144]
mov dword [ebp - 0x20], edx
mov edx, dword [eax + 0x148]
mov dword [ebp - 0x1c], edx
fild dword [ebp - 0x28]
add esp, 0xfffffff8
fistp qword [esp]
wait
call fcn.004af008
push eax
lea edx, [ebp - 0x20]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
mov ecx, dword [ebp - 0x38]
mov ebx, dword [eax + 0x1a0]
call dword [ebx + 0x18]
cmp dword [ebp - 0x38], 0
je 0x45cf65
mov edx, 0x45d29c
mov eax, dword [0x4beef0]
call fcn.004b81b0
mov eax, dword [ebp - 4]
push dword [eax + 0x148]
push dword [eax + 0x144]
call fcn.004b849c
push eax
mov eax, dword [0x4beef0]
push eax
call sub.kernel32.dll_lstrcatA
push 0x45d2c4
mov eax, dword [0x4beef0]
push eax
call sub.kernel32.dll_lstrcatA
xor eax, eax
push ebp
push 0x45cedc
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x64
fild dword [ebp - 0x28]
add esp, 0xfffffff8
fistp qword [esp]
wait
call fcn.004af008
mov edx, eax
mov ecx, 0x96
mov eax, dword [ebp - 0x38]
call fcn.004b4a4c
mov byte [ebp - 0x3e], al
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45cf47
push 0x4000
fild dword [ebp - 0x28]
add esp, 0xfffffff8
fistp qword [esp]
wait
call fcn.004af008
push eax
mov eax, dword [ebp - 0x38]
push eax
call sub.kernel32.dll_VirtualFree_1
push 0
push 0
push 0
push 0
mov eax, dword [0x4be7b0]
mov eax, dword [eax]
push eax
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
mov eax, dword [ebp - 4]
fild qword [eax + 0x14c]
mov eax, dword [ebp - 4]
fild qword [eax + 0x144]
fsubp st(1)
fadd dword [0x45d25c]
add esp, 0xfffffff8
fistp qword [esp]
wait
mov eax, dword [ebp - 4]
fild qword [eax + 0x144]
fchs
add esp, 0xfffffff8
fistp qword [esp]
wait
push 0
push 0
push 0
push 0
push 0
mov al, byte [ebp - 0x3e]
push eax
push 0
lea eax, [ebp - 0x250]
call fcn.004aed10
mov ecx, eax
mov eax, dword [ebp - 4]
mov edx, dword [ebp + 8]
call fcn.0045e5d0
test al, al
jne 0x45cfed
mov byte [ebp - 9], 0
jmp 0x45d24f
cmp byte [ebp + 0xc], 0
jne 0x45d15d
mov eax, dword [ebp - 4]
mov dl, byte [ebp + 0x14]
call fcn.0045c468
lea eax, [ebp - 0x250]
call fcn.004aed10
push eax
mov eax, dword [0x4bedb0]
push eax
call sub.kernel32.dll_lstrcatA
mov edx, dword [0x4bedb0]
mov eax, 0x4c1a08
call fcn.004035b8
call fcn.00402ca8
mov eax, dword [ebp + 0x10]
cmp byte [eax], 0
jne 0x45d09a
lea eax, [ebp - 0x250]
call fcn.004b1914
test al, al
je 0x45d09a
mov edx, dword [0x4be784]
add edx, 0x400
mov eax, dword [0x4beb38]
call fcn.004b81b0
mov eax, dword [0x4beb38]
call fcn.004aedb4
mov eax, dword [0x4be784]
add eax, 0x194b
push eax
mov eax, dword [0x4beb38]
push eax
call sub.kernel32.dll_lstrcatA
mov eax, dword [0x4beb38]
xor edx, edx
call fcn.004b0584
test al, al
jne 0x45d094
mov byte [ebp - 9], 0
jmp 0x45d24f
mov eax, dword [ebp + 0x10]
mov byte [eax], 1
push 1
lea edx, [ebp - 0x250]
mov eax, dword [ebp - 4]
xor ecx, ecx
call fcn.00456534
test al, al
jne 0x45d0f2
mov edx, 0x45d2d0
mov eax, 0x4c1a08
call fcn.00404e58
call fcn.00403624
mov eax, dword [0x4bed48]
cmp byte [eax], 0
jne 0x45d15d
mov ax, 0xf7
call fcn.004aa600
mov edx, 2
call fcn.004b12a8
test al, al
jne 0x45d15d
mov byte [ebp - 9], 0
jmp 0x45d24f
mov eax, dword [ebp + 0x28]
inc dword [eax]
cmp byte [ebp - 0x3c], 0
je 0x45d116
mov edx, 0x45d2e0
mov eax, 0x4c1a08
call fcn.00404e58
call fcn.00402ca8
mov eax, dword [ebp + 0x24]
inc dword [eax]
cmp byte [ebp - 0x3d], 0
je 0x45d153
mov edx, 0x45d2f4
mov eax, 0x4c1a08
call fcn.00404e58
call fcn.00402ca8
mov eax, dword [0x4bec38]
mov edx, dword [ebp + 0x20]
cmp byte [eax + edx - 1], 0
jbe 0x45d153
mov edx, 0x45d320
mov eax, 0x4c1a08
call fcn.00404e58
call fcn.00402ca8
mov eax, 0x4c1a08
call fcn.00403624
mov eax, dword [ebp + 0x28]
mov eax, dword [eax]
cmp eax, dword [ebp - 0x30]
jle 0x45d23f
cmp byte [ebp + 0xc], 0
jne 0x45d1a0
xor edx, edx
mov eax, 0x6f
call fcn.004862ec
mov eax, dword [0x4be3f4]
push eax
mov eax, dword [0x4bedb0]
push eax
call sub.kernel32.dll_lstrcatA
mov edx, dword [0x4bedb0]
mov eax, dword [0x4bec98]
call fcn.004b81b0
jmp 0x45d1b5
mov ax, 0x311
call fcn.004aa600
mov edx, eax
mov eax, dword [0x4bec98]
call fcn.004b81b0
push 0x45d334
mov eax, dword [0x4bec98]
push eax
call sub.kernel32.dll_lstrcatA
cmp byte [ebp + 0xc], 2
jae 0x45d1ea
mov eax, dword [ebp + 0x28]
fild dword [eax]
add esp, 0xfffffff8
fistp qword [esp]
wait
call fcn.004b849c
push eax
mov eax, dword [0x4bec98]
push eax
call sub.kernel32.dll_lstrcatA
jmp 0x45d207
mov eax, dword [ebp + 8]
fild dword [eax]
add esp, 0xfffffff8
fistp qword [esp]
wait
call fcn.004b849c
push eax
mov eax, dword [0x4bec98]
push eax
call sub.kernel32.dll_lstrcatA
push 0x45d334
mov eax, dword [0x4bec98]
push eax
call sub.kernel32.dll_lstrcatA
mov ax, 0x2fc
call fcn.004aa600
push eax
mov eax, dword [0x4bec98]
push eax
call sub.kernel32.dll_lstrcatA
mov eax, dword [0x4bec98]
push eax
mov eax, dword [0x4bee9c]
mov eax, dword [eax]
push eax
call sub.user32.dll_SetWindowTextA
mov eax, dword [ebp - 4]
lea edi, [eax + 0x144]
lea esi, [ebp - 0x50]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov al, byte [ebp - 9]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x2c