Function at 0x483930
Capabilities:
Set current directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x579e30
mov eax, dword fs:[0]
push eax
sub esp, 0x10
push ebx
push esi
push edi
mov eax, dword [0x5b107c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, dword [ebp + 0x10]
mov eax, dword [edi + 4]
mov ecx, dword [eax]
xor edx, edx
mov eax, ecx
div dword [0x67d0a0]
mov eax, dword [0x67d0a4]
mov eax, dword [eax + edx*4]
test eax, eax
je 0x483981
cmp dword [eax], ecx
je 0x4839e4
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x483976
mov ecx, dword [edi + 0x14]
cmp dword [ecx + 0x30], 0
mov ebx, dword [ebp + 0xc]
je 0x4839a2
mov eax, dword [edi + 8]
movzx edx, byte [edi + 1]
mov ecx, dword [eax + 4]
mov eax, dword [ecx + edx*4]
push eax
push 0
call fcn.0054a570
xor eax, eax
mov dword [ebp - 0x10], eax
mov edx, dword [edi + 0x14]
mov ecx, dword [edx + eax*4]
test ecx, ecx
je 0x483f2c
xor edx, edx
mov eax, ecx
div dword [0x67ddb8]
mov eax, dword [0x67ddbc]
mov eax, dword [eax + edx*4]
test eax, eax
je 0x483f2c
nop
cmp dword [eax], ecx
je 0x483aa6
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x4839d0
jmp 0x483f2f
mov eax, dword [eax + 4]
test eax, eax
je 0x483981
mov eax, dword [eax + 4]
mov ebx, 1
test eax, eax
je 0x4839fb
cmp eax, ebx
jne 0x4839fd
xor ebx, ebx
mov esi, dword [edi + 0x14]
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x483a3f
xor edx, edx
mov eax, ecx
div dword [0x6980b4]
mov eax, dword [0x6980b8]
mov eax, dword [eax + edx*4]
test eax, eax
je 0x483a3f
lea ecx, [ecx]
cmp dword [eax], ecx
je 0x483a2d
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x483a20
jmp 0x483a3f
mov eax, dword [eax + 4]
test eax, eax
je 0x483a3f
cmp dword [eax + 2], 0
jne 0x483a3f
mov ebx, 1
cmp dword [esi + 0xc], 0
ja 0x483a56
cmp dword [esi + 0x30], 0
je 0x483a56
cmp dword [esi], 0
ja 0x483a56
cmp dword [esi + 0x10], 0
jbe 0x483a5b
mov ebx, 1
mov eax, dword [ebp + 8]
cmp dword [eax + 0x59a], 0
jne 0x483a75
cmp dword [eax + 0x59e], 0
jne 0x483a75
cmp ebx, 1
jne 0x483a8a
movzx ecx, byte [edi + 1]
mov edx, dword [edi + 8]
mov eax, dword [edx + 4]
mov eax, dword [eax + ecx*4]
mov ebx, dword [ebp + 0xc]
jmp 0x48399a
cmp byte [edi], 0
mov ebx, dword [ebp + 0xc]
jne 0x483a9c
push str.NULLHAIR_M.MOD
jmp 0x48399b
push str.NULLHAIR_W.MOD
jmp 0x48399b
mov eax, dword [eax + 4]
test eax, eax
je 0x483f2f
movzx edi, word [eax + 0x7e]
movzx esi, word [eax + 0x7c]
xor edx, edx
mov eax, ecx
div dword [0x6980b4]
mov eax, dword [0x6980b8]
mov dword [ebp - 0x18], edi
mov eax, dword [eax + edx*4]
test eax, eax
je 0x483add
cmp dword [eax], ecx
je 0x483b17
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x483ad2
mov dword [ebp - 0x14], 0
mov eax, dword [ebp - 0x10]
cmp eax, 5
ja 0x483d1e
test eax, eax
je 0x483af9
cmp eax, 1
jne 0x483b3b
cmp dword [ebp - 0x14], 0
je 0x483b3b
mov edx, dword [ebp - 0x14]
cmp dword [edx + 0x32], 0
mov eax, dword [ebp + 0x10]
jne 0x483b26
cmp byte [eax], 0
jne 0x483b1f
push str.NULLHAIR_M.MOD
jmp 0x483b34
mov ecx, dword [eax + 4]
mov dword [ebp - 0x14], ecx
jmp 0x483ae4
push str.NULLHAIR_W.MOD
jmp 0x483b34
movzx ecx, byte [eax + 1]
mov edx, dword [eax + 8]
mov eax, dword [edx + 4]
mov eax, dword [eax + ecx*4]
push eax
push 0
call fcn.0054a570
cmp dword [ebp - 0x10], 0
jne 0x483b4e
mov ecx, dword [ebp - 0x14]
cmp dword [ecx + 2], 0
je 0x483f2c
mov edx, dword [ebp + 8]
cmp byte [edx + 0x4fe], 0
je 0x483b7a
mov eax, dword [ebp + 0x10]
cmp byte [eax], 0
jne 0x483b6e
push str.NULLHAIR_M.MOD
push 0
jmp 0x483ef5
push str.NULLHAIR_W.MOD
push 0
jmp 0x483ef5
push 0x98
call dword [sym.imp.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_]
add esp, 4
mov dword [ebp - 0x18], eax
mov dword [ebp - 4], 0
test eax, eax
je 0x483ba0
push eax
call fcn.00549be0
mov esi, eax
jmp 0x483ba2
xor esi, esi
mov dword [ebp - 4], 0xffffffff
cmp dword [esi + 0x14], 0
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx + 0x10]
mov eax, dword [edx + 4]
mov ebx, dword [eax + edi*4]
mov dword [esi + 0x2c], 0
jne 0x483bc9
mov dword [esi + 0x24], 1
mov edx, dword [esi]
mov eax, dword [edx + 4]
mov ecx, esi
call eax
xor eax, eax
mov edi, 6
mov byte [esi + 0x28], 0
mov dword [esi + 0x18], eax
mov dword [esi + 0x10], eax
cmp dword [0x6573f0], edi
je 0x483bfe
mov ecx, dword [0x6573c0]
push ecx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov dword [0x6573f0], edi
mov eax, dword [0x65fadc]
mov edx, dword [eax]
push ebx
push eax
mov eax, dword [edx + 0x188]
call eax
push esi
xor ecx, ecx
call fcn.0054af90
mov edi, eax
mov dword [esi + 0x14], edi
test edi, edi
jne 0x483c7c
push 0x5948e0
push str.._Log_MissedObjectList.txt
call dword [sym.imp.MSVCR100.dll_fopen]
mov edi, eax
add esp, 8
test edi, edi
je 0x483c53
push ebx
push 0x596998
push edi
call dword [sym.imp.MSVCR100.dll_fprintf]
add esp, 0xc
push edi
call dword [sym.imp.MSVCR100.dll_fclose]
add esp, 4
cmp dword [0x6573f0], 0
je 0x483d06
mov ecx, dword [0x6573a8]
push ecx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov dword [0x6573f0], 0
jmp 0x483d06
call fcn.00549110
test eax, eax
jne 0x483c8e
mov edx, edi
mov edi, ebx
call fcn.00549280
mov dword [esi + 0x3c], eax
cmp dword [0x6573f0], 0
je 0x483cb1
mov edx, dword [0x6573a8]
push edx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov dword [0x6573f0], 0
cmp dword [esi + 0x24], 0xffffffff
jne 0x483cc3
push 1
mov ecx, 1
call fcn.0054a4a0
cmp dword [esi + 0x14], 0
je 0x483d06
mov ecx, dword [esi + 0x24]
mov edx, dword [esi + 0x3c]
call fcn.00548ff0
mov ecx, dword [0x65fadc]
mov dword [esi + 0x38], eax
movzx eax, word [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [esi + 0x14]
push eax
push ecx
mov ecx, dword [edx + 0x44]
call ecx
mov ecx, dword [esi + 0x38]
movzx ecx, word [ecx + 2]
mov eax, dword [0x65fadc]
mov edx, dword [eax]
mov edx, dword [edx + 0x40]
push ecx
mov ecx, dword [esi + 0x14]
push ecx
push eax
call edx
mov eax, dword [ebp + 0xc]
push eax
mov ebx, str.Bip01_Head
mov edi, esi
call fcn.0054ad60
mov ebx, dword [ebp + 0xc]
jmp 0x483efa
cmp eax, 7
jne 0x483ee2
cmp dword [0x67cd5c], 0
jne 0x484208
push 0x98
call dword [sym.imp.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_]
add esp, 4
mov dword [ebp - 0x14], eax
mov edi, 1
mov dword [ebp - 4], edi
test eax, eax
je 0x483d5b
push eax
call fcn.00549be0
mov esi, eax
jmp 0x483d5d
xor esi, esi
mov dword [ebp - 4], 0xffffffff
cmp dword [esi + 0x14], 0
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx + 0x10]
mov eax, dword [edx + 4]
mov ecx, dword [ebp - 0x18]
mov ebx, dword [eax + ecx*4]
mov dword [esi + 0x2c], 0
jne 0x483d83
mov dword [esi + 0x24], edi
mov edx, dword [esi]
mov eax, dword [edx + 4]
mov ecx, esi
call eax
xor eax, eax
mov edi, 0xa
mov byte [esi + 0x28], 0
mov dword [esi + 0x18], eax
mov dword [esi + 0x10], eax
cmp dword [0x6573f0], edi
je 0x483db8
mov ecx, dword [0x6573d0]
push ecx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov dword [0x6573f0], edi
mov eax, dword [0x65fadc]
mov edx, dword [eax]
push ebx
push eax
mov eax, dword [edx + 0x188]
call eax
push esi
mov ecx, 2
call fcn.0054af90
mov dword [esi + 0x14], eax
test eax, eax
jne 0x483e37
push 0x5948e0
push str.._Log_MissedObjectList.txt
call dword [sym.imp.MSVCR100.dll_fopen]
mov edi, eax
add esp, 8
test edi, edi
je 0x483e0e
push ebx
push 0x596998
push edi
call dword [sym.imp.MSVCR100.dll_fprintf]
add esp, 0xc
push edi
call dword [sym.imp.MSVCR100.dll_fclose]
add esp, 4
cmp dword [0x6573f0], 0
je 0x483ecd
mov ecx, dword [0x6573a8]
push ecx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov dword [0x6573f0], 0
jmp 0x483ecd
push 0
mov ecx, esi
call fcn.0054a700
mov edi, dword [esi + 0x14]
call fcn.00549110
test eax, eax
jne 0x483e55
mov edx, edi
mov edi, ebx
call fcn.00549280
mov dword [esi + 0x3c], eax
cmp dword [0x6573f0], 0
je 0x483e78
mov edx, dword [0x6573a8]
push edx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov dword [0x6573f0], 0
cmp dword [esi + 0x24], 0xffffffff
jne 0x483e8a
push 1
mov ecx, 1
call fcn.0054a4a0
cmp dword [esi + 0x14], 0
je 0x483ecd
mov ecx, dword [esi + 0x24]
mov edx, dword [esi + 0x3c]
call fcn.00548ff0
mov ecx, dword [0x65fadc]
mov dword [esi + 0x38], eax
movzx eax, word [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [esi + 0x14]
push eax
push ecx
mov ecx, dword [edx + 0x44]
call ecx
mov ecx, dword [esi + 0x38]
movzx ecx, word [ecx + 2]
mov eax, dword [0x65fadc]
mov edx, dword [eax]
mov edx, dword [edx + 0x40]
push ecx
mov ecx, dword [esi + 0x14]
push ecx
push eax
call edx
mov eax, dword [ebp + 0xc]
push eax
mov ebx, str.Bip01_Spine2
mov edi, esi
call fcn.0054ad60
mov ebx, dword [ebp + 0xc]
jmp 0x483f2c
cmp eax, 8
je 0x483efd
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx + 0x10]
mov eax, dword [edx + 4]
mov eax, dword [eax + edi*4]
push eax
push esi
call fcn.0054a570
mov eax, dword [ebp - 0x10]
cmp eax, 6
jne 0x483f2c
mov ecx, dword [ebp - 0x14]
cmp dword [ecx + 0x2e], 0
jne 0x483f17
push str.NULL.MOD
push 3
call fcn.0054a570
mov edx, dword [ebp - 0x14]
cmp dword [edx + 0x26], 0
jne 0x483f2c
push str.NULL.MOD
push 4
call fcn.0054a570
mov edi, dword [ebp + 0x10]
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
cmp eax, 0xa
jle 0x4839a7
mov eax, dword [edi + 0x14]
cmp dword [eax], 0xd918
je 0x483f57
cmp dword [eax + 0x18], 0xd919
jne 0x484208
push 0x98
call dword [sym.imp.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_]
add esp, 4
mov dword [ebp + 0x10], eax
mov dword [ebp - 4], 2
test eax, eax
je 0x483f80
push eax
call fcn.00549be0
mov esi, eax
mov dword [ebp + 0x10], esi
jmp 0x483f8a
mov dword [ebp + 0x10], 0
mov esi, dword [ebp + 0x10]
mov dword [ebp - 4], 0xffffffff
cmp dword [esi + 0x14], 0
mov dword [esi + 0x2c], 0
jne 0x483fa5
mov dword [esi + 0x24], 1
mov eax, dword [esi]
mov edx, dword [eax + 4]
mov ecx, esi
call edx
xor eax, eax
mov edi, 0xa
mov byte [esi + 0x28], 0
mov dword [esi + 0x18], eax
mov dword [esi + 0x10], eax
cmp dword [0x6573f0], edi
je 0x483fd9
mov eax, dword [0x6573d0]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov dword [0x6573f0], edi
mov eax, dword [0x65fadc]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x188]
push str.gm_mona.MOD
push eax
call edx
push esi
mov ecx, 2
mov ebx, str.gm_mona.MOD
call fcn.0054af90
mov dword [esi + 0x14], eax
test eax, eax
jne 0x484064
push 0x5948e0
push str.._Log_MissedObjectList.txt
call dword [sym.imp.MSVCR100.dll_fopen]
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x48403c
push str.gm_mona.MOD
push 0x596998
push ebx
call dword [sym.imp.MSVCR100.dll_fprintf]
add esp, 0xc
push ebx
call dword [sym.imp.MSVCR100.dll_fclose]
add esp, 4
cmp dword [0x6573f0], 0
je 0x4841d3
mov eax, dword [0x6573a8]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov dword [0x6573f0], 0
jmp 0x4841d3
push 0
mov ecx, esi
call fcn.0054a700
mov edi, dword [esi + 0x14]
mov ebx, str.gm_mona.MOD
call fcn.00549110
xor ebx, ebx
cmp eax, ebx
jne 0x4840d0
mov eax, dword [0x65fadc]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x4c]
push ebx
push edi
push eax
call edx
push 8
mov esi, eax
call dword [sym.imp.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_]
add esp, 4
mov dword [ebp + 8], eax
mov dword [ebp - 4], 3
cmp eax, ebx
je 0x4840b7
mov ecx, esi
mov esi, eax
call fcn.00548f40
mov esi, eax
jmp 0x4840b9
xor esi, esi
push esi
mov edi, str.gm_mona.MOD
mov dword [ebp - 4], 0xffffffff
call fcn.00549190
mov eax, esi
mov esi, dword [ebp + 0x10]
mov dword [esi + 0x3c], eax
cmp dword [0x6573f0], ebx
je 0x4840ed
mov eax, dword [0x6573a8]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov dword [0x6573f0], ebx
cmp dword [esi + 0x24], 0xffffffff
jne 0x484144
cmp dword [esi + 0x14], ebx
je 0x484144
mov edx, dword [esi + 0x3c]
mov edi, 1
mov ecx, edi
mov dword [esi + 0x24], edi
call fcn.00548ff0
mov ecx, dword [0x65fadc]
mov dword [esi + 0x38], eax
movzx eax, word [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [esi + 0x14]
push eax
push ecx
mov ecx, dword [edx + 0x44]
call ecx
mov ecx, dword [esi + 0x38]
movzx ecx, word [ecx + 2]
mov eax, dword [0x65fadc]
mov edx, dword [eax]
mov edx, dword [edx + 0x40]
push ecx
mov ecx, dword [esi + 0x14]
push ecx
push eax
call edx
mov byte [esi + 0x28], bl
mov dword [esi + 0x1c], edi
jmp 0x484149
mov edi, 1
cmp dword [esi + 0x14], ebx
je 0x4841d3
test byte [0x69cf4c], 1
mov eax, dword [esi + 0x24]
mov ecx, dword [esi + 0x3c]
jne 0x48417d
or dword [0x69cf4c], edi
mov edx, 0xffff
mov dword [0x69cf50], 1
mov word [0x69cf54], dx
mov edx, dword [ecx]
lea edi, [edx - 1]
test edi, edi
jne 0x48418d
mov eax, 0x69cf50
jmp 0x4841a1
cmp eax, edx
jb 0x484198
mov eax, 0x69cf50
jmp 0x4841a1
mov ecx, dword [ecx + 4]
lea eax, [eax + eax*2]
lea eax, [ecx + eax*2]
mov ecx, dword [0x65fadc]
mov dword [esi + 0x38], eax
movzx eax, word [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [esi + 0x14]
push eax
push ecx
mov ecx, dword [edx + 0x44]
call ecx
mov ecx, dword [esi + 0x38]
movzx ecx, word [ecx + 2]
mov eax, dword [0x65fadc]
mov edx, dword [eax]
mov edx, dword [edx + 0x40]
push ecx
mov ecx, dword [esi + 0x14]
push ecx
push eax
call edx
mov edx, dword [esi + 0x14]
test edx, edx
je 0x484208
mov edi, dword [ebp + 0xc]
mov ecx, dword [edi + 0x14]
test ecx, ecx
je 0x484208
mov eax, dword [0x65fadc]
mov ebx, dword [eax]
push str.Bip01_Head
push ecx
push edx
push eax
mov eax, dword [ebx + 0xcc]
call eax
test eax, eax
je 0x484208
push esi
lea ecx, [edi + 0x5c]
call fcn.005745a0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc