Function at 0x549300
Capabilities:
Set current directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x57dd60
mov eax, dword fs:[0]
push eax
sub esp, 0x554
mov eax, dword [0x5b107c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [0x65faf4]
xor ebx, ebx
mov edi, ecx
cmp eax, ebx
je 0x54935f
mov ecx, dword [eax - 4]
lea esi, [eax - 4]
push 0x41f4c0
push ecx
push 4
push eax
call fcn.005764e9
push esi
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete___void__]
add esp, 4
mov dword [0x65faf4], ebx
mov esi, 0xd
mov dword [0x65f94c], ebx
cmp dword [0x6573f0], esi
je 0x549385
mov edx, dword [0x6573dc]
push edx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov dword [0x6573f0], esi
mov esi, vtable.CMHFile.0
lea eax, [ebp - 0x424]
mov dword [ebp - 0x558], esi
call fcn.004061b0
xor eax, eax
push 0x104
mov dword [ebp - 0x540], eax
mov dword [ebp - 0x53c], eax
mov dword [ebp - 0x538], eax
lea eax, [ebp - 0x528]
push ebx
push eax
mov dword [ebp - 0x554], ebx
mov word [ebp - 0x534], bx
mov dword [ebp - 0x530], ebx
mov dword [ebp - 0x544], ebx
mov dword [ebp - 0x52c], ebx
call sub.MSVCR100.dll_memset
add esp, 0xc
mov dword [ebp - 0x54c], ebx
mov dword [ebp - 0x548], ebx
push 0x10
push edi
mov ecx, 0x5946b8
lea edi, [ebp - 0x558]
mov dword [ebp - 4], ebx
call fcn.00528720
cmp eax, ebx
jne 0x549447
mov dword [0x65f94c], ebx
cmp dword [0x6573f0], ebx
je 0x54942a
mov ecx, dword [0x6573a8]
push ecx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov dword [0x6573f0], ebx
mov dword [ebp - 0x558], esi
lea esi, [ebp - 0x558]
mov dword [ebp - 4], 1
call fcn.00528910
jmp 0x5495b6
push 0x69d3c8
lea esi, [ebp - 0x558]
call fcn.00528970
push 0x69d3c8
call dword [sym.imp.MSVCR100.dll_atoi]
mov dword [0x65f94c], eax
mov edi, eax
xor ecx, ecx
add esp, 4
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
xor eax, eax
add ecx, 4
setb al
neg eax
or eax, ecx
push eax
call fcn.00576240
add esp, 4
mov dword [ebp - 0x55c], eax
mov byte [ebp - 4], 2
cmp eax, ebx
je 0x5494b9
push 0x41f4c0
push 0x429a10
push edi
lea esi, [eax + 4]
push 4
push esi
mov dword [eax], edi
call fcn.00576426
jmp 0x5494bb
xor esi, esi
mov byte [ebp - 4], bl
xor edi, edi
mov dword [0x65faf4], esi
cmp dword [0x65f94c], ebx
jbe 0x549523
mov edi, edi
push 0x69d3c8
lea esi, [ebp - 0x558]
call fcn.00528970
mov ecx, dword [0x65faf4]
mov eax, 0x69d3c8
lea esi, [ecx + edi*4]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x5494f1
sub eax, edx
inc eax
push eax
call dword [sym.imp.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_]
add esp, 4
mov dword [esi], eax
mov ecx, 0x69d3c8
mov edx, eax
mov edi, edi
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
cmp al, bl
jne 0x549510
inc edi
cmp edi, dword [0x65f94c]
jb 0x5494d0
cmp dword [0x6573f0], ebx
je 0x54953e
mov edx, dword [0x6573a8]
push edx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov dword [0x6573f0], ebx
mov dword [ebp - method.CMHFile.virtual_0], vtable.CMHFile.0
mov dword [ebp - 4], 3
mov eax, dword [ebp - 0x554]
cmp eax, ebx
je 0x549569
push eax
call dword [sym.imp.MSVCR100.dll_fclose]
add esp, 4
mov dword [ebp - 0x554], ebx
mov eax, dword [ebp - 0x530]
cmp eax, ebx
je 0x549583
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete___void__]
add esp, 4
mov dword [ebp - 0x530], ebx
mov ecx, dword [ebp - 0x548]
mov dword [ebp - 0x544], ebx
mov dword [ebp - 0x52c], ebx
cmp ecx, ebx
je 0x5495b6
mov eax, dword [ebp - 0x54c]
mov edx, dword [eax]
push ecx
push eax
mov eax, dword [edx + 0x54]
call eax
mov eax, dword [ebp - 0x54c]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005762ee
mov esp, ebp
pop ebp
ret