Function at 0x556c00
Capabilities:
Set current directory

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x57dbd1
mov eax, dword fs:[0]
push eax
sub esp, 0x800
mov eax, dword [0x5b107c]
xor eax, esp
mov dword [esp + 0x7f8], eax
push ebx
push esi
push edi
mov eax, dword [0x5b107c]
xor eax, esp
push eax
lea eax, [esp + 0x810]
mov dword fs:[0], eax
mov esi, vtable.CMHFile.0
lea eax, [esp + 0x150]
mov dword [esp + 0x1c], esi
call fcn.004061b0
xor eax, eax
xor ebx, ebx
push 0x104
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov word [esp + 0x44], ax
lea eax, [esp + 0x50]
push ebx
push eax
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x54], ebx
call sub.MSVCR100.dll_memset
add esp, 0xc
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
push ebx
push str.._Resource_Client_IllusionMaterial.bin
mov ecx, 0x587394
lea edi, [esp + 0x24]
mov dword [esp + 0x820], ebx
call fcn.00528720
mov eax, dword [esp + 0x24]
sub eax, ebx
je 0x556d1f
dec eax
je 0x556d17
dec eax
jne 0x556cd2
push str.MHFile.cpp
xor ecx, ecx
mov edx, 0x268
call fcn.0052cb10
add esp, 4
mov esi, 0xa
cmp dword [0x6573f0], esi
je 0x556cf2
mov ecx, dword [0x6573d0]
push ecx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov dword [0x6573f0], esi
mov edi, dword [sym.imp.MSVCR100.dll_atoi]
mov eax, dword [esp + 0x24]
sub eax, ebx
je 0x556d40
dec eax
jne 0x556f4b
mov edx, dword [esp + 0x3c]
cmp edx, dword [esp + 0x30]
je 0x556f62
jmp 0x556d5a
xor eax, eax
cmp dword [esp + 0x48], ebx
jmp 0x556d25
xor eax, eax
cmp dword [esp + 0x20], ebx
setne al
cmp eax, ebx
jne 0x556cd2
mov dword [esp + 0x1c], esi
mov dword [esp + 0x818], 1
jmp 0x556f90
mov eax, dword [esp + 0x20]
push eax
call dword [sym.imp.MSVCR100.dll_feof]
add esp, 4
neg eax
sbb eax, eax
neg eax
jne 0x556f62
push 0x69d3c8
lea esi, [esp + 0x20]
call fcn.00528970
push 0x69d3c8
call edi
add esp, 4
push 0x1a0
movzx ecx, ax
lea edx, [esp + 0x568]
push ebx
push edx
mov dword [esp + 0x24], ecx
call sub.MSVCR100.dll_memset
add esp, 0xc
lea eax, [esp + 0x580]
push eax
call fcn.00528970
push 0x69d3c8
call fcn.00528970
push 0x69d3c8
call edi
add esp, 4
push 0x69d3c8
mov bl, al
call fcn.00528970
push 0x69d3c8
call edi
add esp, 4
push 0x69d3c8
mov byte [esp + 0x1a], al
call fcn.00528970
push 0x69d3c8
call edi
add esp, 4
push 0x69d3c8
mov byte [esp + 0x1b], al
call fcn.00528970
push 0x69d3c8
call edi
movzx edx, byte [esp + 0x1a]
movzx eax, al
shl eax, 8
movzx ecx, bl
or eax, ecx
movzx ecx, byte [esp + 0x1b]
shl eax, 8
or eax, edx
shl eax, 8
add esp, 4
or eax, ecx
lea edx, [esp + 0x704]
push edx
mov dword [esp + 0x56c], eax
mov dword [esp + 0x570], eax
call fcn.00528970
mov ecx, str.FILTER
lea eax, [esp + 0x704]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x556e60
test dl, dl
je 0x556e5c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x556e60
add eax, 2
add ecx, 2
test dl, dl
jne 0x556e40
xor eax, eax
jmp 0x556e65
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x556e79
mov dword [esp + 0x700], 1
jmp 0x556f0f
mov ecx, str.SUBTRACTIVE
lea eax, [esp + 0x704]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x556ea5
test dl, dl
je 0x556ea1
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x556ea5
add eax, 2
add ecx, 2
test dl, dl
jne 0x556e85
xor eax, eax
jmp 0x556eaa
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x556ebb
mov dword [esp + 0x700], 2
jmp 0x556f0f
mov ecx, str.ADDITIVE
lea eax, [esp + 0x704]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x556ee7
test dl, dl
je 0x556ee3
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x556ee7
add eax, 2
add ecx, 2
test dl, dl
jne 0x556ec7
xor eax, eax
jmp 0x556eec
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x556efd
mov dword [esp + 0x700], 4
jmp 0x556f0f
xor ecx, ecx
push str.EffectEffectManager.cpp
lea edx, [ecx + 0x69]
call fcn.0052cb10
add esp, 4
mov eax, dword [0x65fadc]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x10]
push eax
call edx
mov ecx, dword [eax]
push 0
push 0
push 0
lea edx, [esp + 0x570]
push edx
push eax
mov eax, dword [ecx + 0xf4]
call eax
push eax
mov eax, dword [esp + 0x1c]
mov esi, 0x69b4b4
call fcn.004eca80
xor ebx, ebx
jmp 0x556cf8
dec eax
jne 0x556f62
push str.MHFile.cpp
xor ecx, ecx
mov edx, 0x258
call fcn.0052cb10
add esp, 4
cmp dword [0x6573f0], ebx
je 0x556f7d
mov ecx, dword [0x6573a8]
push ecx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov dword [0x6573f0], ebx
mov dword [esp + 0x1c], vtable.CMHFile.0
mov dword [esp + 0x818], 2
lea esi, [esp + 0x1c]
call fcn.00528910
mov ecx, dword [esp + 0x810]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x7f8]
xor ecx, esp
call fcn.005762ee
mov esp, ebp
pop ebp
ret