Function at 0x4539dc
Capabilities:
Set current directory

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffeb4
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x14c], ecx
mov dword [ebp - 0x138], ecx
mov dword [ebp - 0x13c], ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x453d00
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, 0x456a5c
call fcn.00403b08
mov byte [ebp - 5], 0x33
mov byte [ebp - 6], 0x30
mov eax, 0x456a80
xor ecx, ecx
mov edx, 0x10
call fcn.00402b98
lea eax, [ebp - 0x31]
xor ecx, ecx
mov edx, 0x20
call fcn.00402b98
mov byte [0x456a79], 0
mov eax, dword [0x456a58]
call fcn.00403f4c
push eax
call sub.kernel32.dll_SetCurrentDirectoryA
mov eax, 0x453d18
call fcn.00408158
test al, al
je 0x453cc5
push 0
mov ecx, 0x453d18
mov dl, 1
mov eax, dword [0x40c8d4]
call fcn.0040fd7c
mov dword [ebp - 0xc], eax
xor eax, eax
push ebp
push 0x453b6e
push dword fs:[eax]
mov dword fs:[eax], esp
xor edx, edx
mov eax, dword [ebp - 0xc]
call fcn.0040fb68
mov edx, 0x456aa8
mov ecx, 0xa
mov eax, dword [ebp - 0xc]
mov ebx, dword [eax]
call dword [ebx + 4]
mov edx, 0x456a94
mov ecx, 0x10
mov eax, dword [ebp - 0xc]
mov ebx, dword [eax]
call dword [ebx + 4]
lea edx, [ebp - 0x31]
mov ecx, 0x20
mov eax, dword [ebp - 0xc]
mov ebx, dword [eax]
call dword [ebx + 4]
lea eax, [ebp - 0x138]
push eax
lea eax, [ebp - 0x13c]
lea edx, [ebp - 0x31]
call fcn.00403d2c
mov edx, dword [ebp - 0x13c]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.0045469c
mov edx, dword [ebp - 0x138]
lea eax, [ebp - 0x134]
mov ecx, 0xff
call fcn.00403d64
lea edx, [ebp - 0x134]
mov eax, 0x456a80
mov cl, 0x10
call fcn.00402a74
mov eax, 0x456a80
mov edx, 0x453d24
xor ecx, ecx
mov cl, byte [eax]
inc ecx
call fcn.00402b28
jne 0x453b3d
mov esi, 0x453d2c
mov edi, 0x456a80
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
lea edx, [ebp - 5]
mov ecx, 1
mov eax, dword [ebp - 0xc]
mov ebx, dword [eax]
call dword [ebx + 4]
lea edx, [ebp - 6]
mov ecx, 1
mov eax, dword [ebp - 0xc]
mov ebx, dword [eax]
call dword [ebx + 4]
mov byte [0x456a79], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x453b9f
mov eax, dword [ebp - 0xc]
call fcn.00402e80
mov edx, 0x456aa8
mov eax, 0x453d50
call fcn.004029b0
mov ebx, eax
sub ebx, 3
lea eax, [ebp - 0x148]
push eax
mov ecx, ebx
mov edx, 3
mov eax, 0x456aa8
call fcn.004027e4
lea edx, [ebp - 0x148]
lea eax, [ebp - 0x10]
call fcn.00403d2c
lea eax, [ebp - 0x14c]
mov edx, 0x456a94
call fcn.00403d2c
mov edx, dword [ebp - 0x14c]
mov eax, dword [ebp - 0x10]
call fcn.004525c4
test al, al
je 0x453ca4
lea eax, [ebp - 0x134]
mov edx, dword [ebp - 0x10]
mov ecx, 0xff
call fcn.00403d64
lea edx, [ebp - 0x134]
mov eax, 0x456ab4
mov cl, 9
call fcn.00402a74
mov eax, 0x456a5c
mov edx, 0x456a94
call fcn.00403d2c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2ec]
mov edx, dword [0x456a5c]
call fcn.00426a90
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.004536e4
mov al, byte [0x456a80]
dec eax
sub al, 0x10
jae 0x453c74
mov eax, 0x456a64
mov edx, 0x456a80
call fcn.00403d2c
jmp 0x453c85
mov eax, 0x456a80
xor ecx, ecx
mov edx, 0x10
call fcn.00402b98
mov byte [0x456a6c], 1
cmp byte [ebp - 6], 0x4f
sete byte [0x456a7b]
cmp byte [ebp - 6], 0x49
sete byte [0x456a78]
jmp 0x453ccf
push 0
mov cx, word [0x453d38]
mov dl, 1
mov eax, 0x453d5c
call fcn.0044867c
mov eax, 0x453d18
call fcn.00408168
jmp 0x453ccf
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.00452788
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x453d07
lea eax, [ebp - 0x14c]
call fcn.00403b08
lea eax, [ebp - 0x13c]
mov edx, 2
call fcn.00403b2c
lea eax, [ebp - 0x10]
call fcn.00403b08
ret