Function at 0x59a130
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x38
mov eax, dword [0x6d7160]
xor eax, esp
mov dword [esp + 0x34], eax
xor eax, eax
push ebx
push ebp
push esi
mov esi, ecx
mov dword [esi + 0x9caf0], eax
mov dword [esi + 0x9caf4], eax
mov dword [esi + 0x9caf8], eax
mov dword [esi + 0x9cafc], eax
mov dword [esi + 0x9cb00], eax
mov dword [esi + 0x9cb04], eax
mov dword [esi + 0x9cb08], eax
mov eax, dword [esi]
cmp dword [eax + 0x14], 0
push edi
je 0x59a193
cmp dword [eax + 0x18], 0xffffffff
mov ebx, dword [esp + 0x4c]
je 0x59a1aa
mov ecx, dword [eax + 0x1c]
cmp ecx, ebx
mov dword [eax + 0x18], ebx
jbe 0x59a18e
mov ecx, ebx
mov dword [eax + 0x18], ecx
jmp 0x59a1aa
mov ecx, dword [esp + 0x4c]
mov edx, dword [eax + 4]
push 0
push ecx
push edx
call fcn.006081d8
mov ebx, dword [esp + 0x58]
add esp, 0xc
call fcn.0057e000
mov word [esi + 4], ax
call fcn.0057e000
and eax, 0xffffff00
cmp eax, 0x52617700
jne 0x59a5ec
call fcn.0057e000
mov ecx, dword [esi]
add eax, ebx
cmp dword [ecx + 0x14], 0
je 0x59a1ee
cmp dword [ecx + 0x18], 0xffffffff
je 0x59a1fd
mov edx, dword [ecx + 0x1c]
cmp edx, eax
mov dword [ecx + 0x18], eax
ja 0x59a1e9
mov eax, edx
mov dword [ecx + 0x18], eax
jmp 0x59a1fd
push 0
push eax
mov eax, dword [ecx + 4]
push eax
call fcn.006081d8
add esp, 0xc
call fcn.0057e000
mov edi, eax
mov dword [esp + 0x1c], edi
call fcn.0057e000
test edi, edi
je 0x59a4b1
jmp 0x59a224
mov ebx, dword [esp + 0x4c]
sub dword [esp + 0x1c], 1
call fcn.0057e000
mov ebp, eax
call fcn.0057e000
call fcn.0057e000
mov dword [esp + 0x14], eax
call fcn.0057e000
mov edi, eax
mov eax, dword [esi]
cmp dword [eax + 0x14], 0
je 0x59a256
mov ecx, dword [eax + 0x18]
mov dword [esp + 0x18], ecx
jmp 0x59a266
mov edx, dword [eax + 4]
push edx
call fcn.00609413
add esp, 4
mov dword [esp + 0x18], eax
mov eax, dword [esi]
add ebx, edi
cmp dword [eax + 0x14], 0
je 0x59a287
cmp dword [eax + 0x18], 0xffffffff
je 0x59a296
mov ecx, dword [eax + 0x1c]
cmp ecx, ebx
mov dword [eax + 0x18], ebx
jbe 0x59a282
mov ecx, ebx
mov dword [eax + 0x18], ecx
jmp 0x59a296
mov eax, dword [eax + 4]
push 0
push ebx
push eax
call fcn.006081d8
add esp, 0xc
cmp ebp, 0x210
ja 0x59a3d5
je 0x59a3c2
lea eax, [ebp - 0x100]
cmp eax, 0x12
ja case.0x59a3ed.539
jmp dword [eax*4 + 0x59a604]
and edi, 3
movsx ecx, byte [edi + str.0653]
sub ecx, 0x30
mov dword [esi + 0x474], ecx
jmp case.0x59a3ed.539
lea edi, [esp + 0x20]
mov ebp, 3
mov ebx, 3
call fcn.0057e000
mov dword [esp + 0x14], eax
fld dword [esp + 0x14]
add edi, 4
sub ebx, 1
fstp dword [edi - 4]
jne 0x59a2e4
sub ebp, 1
jne 0x59a2df
lea eax, [esp + 0x20]
mov ecx, esi
call fcn.00595110
jmp case.0x59a3ed.539
lea edi, [esi + 0x205c8]
mov ebx, 3
lea esp, [esp]
call fcn.0057e000
mov dword [esp + 0x14], eax
fld dword [esp + 0x14]
add edi, 4
sub ebx, 1
fstp dword [edi - 4]
jne 0x59a320
jmp case.0x59a3ed.539
mov word [esi + 0x45e], di
jmp case.0x59a3ed.539
mov word [esi + 0x45c], di
jmp case.0x59a3ed.539
mov word [esi + 0x466], di
jmp case.0x59a3ed.539
mov word [esi + 0x464], di
jmp case.0x59a3ed.539
mov word [esi + 0x462], di
jmp case.0x59a3ed.539
mov word [esi + 0x460], di
jmp case.0x59a3ed.539
mov dword [esi + 0x9caf0], edi
jmp case.0x59a3ed.539
mov dword [esi + 0x348], ebx
jmp case.0x59a3ed.539
mov edx, dword [esp + 0x14]
mov dword [esi + 0x350], ebx
mov dword [esi + 0x35c], edx
jmp case.0x59a3ed.539
mov eax, dword [esp + 0x18]
add eax, 0xfffffffc
mov dword [esi + 0x9caf4], eax
jmp case.0x59a3ed.539
mov dword [esp + 0x14], edi
fld dword [esp + 0x14]
fstp dword [esi + 0x9cb08]
jmp case.0x59a3ed.539
lea eax, [ebp - 0x21a]
cmp eax, 0xe7
ja case.0x59a3ed.539
movzx ecx, byte [eax + 0x59a66c]
jmp dword [ecx*4 + 0x59a650]
mov dword [esi + 0x9cb04], edi
jmp case.0x59a3ed.539
mov dword [esi + 0x344], ebx
jmp case.0x59a3ed.539
mov dword [esi + 0x9caf8], edi
jmp case.0x59a3ed.539
movzx edx, word [esi + 0x466]
sub edi, edx
mov dword [esi + 0x9cb00], edi
jmp case.0x59a3ed.539
mov dword [esi + 0x9cafc], ebx
jmp case.0x59a3ed.539
mov edi, dword [esi]
mov byte [esi + 0x294], 0
cmp dword [edi + 0x14], 0
lea ebx, [esi + 0x255]
je 0x59a446
mov eax, 0x3f
call fcn.00410220
jmp 0x59a45b
mov edi, dword [edi + 4]
test edi, edi
je 0x59a45b
push edi
push 0x3f
push 1
push ebx
call fcn.0060860a
add esp, 0x10
push str._camera
push ebx
call fcn.00607cb0
add esp, 8
test eax, eax
je case.0x59a3ed.539
mov byte [eax], 0
mov eax, dword [esi]
cmp dword [eax + 0x14], 0
je 0x59a493
cmp dword [eax + 0x18], 0xffffffff
je 0x59a4a6
mov edx, dword [esp + 0x18]
mov ecx, dword [eax + 0x1c]
cmp ecx, edx
mov dword [eax + 0x18], edx
jbe 0x59a48e
mov ecx, edx
mov dword [eax + 0x18], ecx
jmp 0x59a4a6
mov ecx, dword [esp + 0x18]
mov edx, dword [eax + 4]
push 0
push ecx
push edx
call fcn.006081d8
add esp, 0xc
cmp dword [esp + 0x1c], 0
jne 0x59a220
cmp dword [esi + 0x9caf0], 3
mov eax, 0x584560
jl 0x59a4c4
mov eax, 0x584830
cmp byte [esi + 0x255], 0
mov dword [esi + 0x9692c], eax
mov dword [esi + 0x3ac], 0xffff
mov eax, dword [str.Phase_One]
mov dword [esi + 0x215], eax
mov ecx, dword [0x6b6338]
mov dword [esi + 0x219], ecx
mov dx, word [0x6b633c]
mov word [esi + 0x21d], dx
jne 0x59a5ec
movzx eax, word [esi + 0x45c]
cmp eax, 0x1020
jg 0x59a5ce
je 0x59a5a2
cmp eax, 0x80c
je 0x59a55c
cmp eax, 0xa7a
jne 0x59a5ec
mov eax, dword [str.H_10]
mov dword [esi + 0x255], eax
mov cl, byte [0x6b6350]
mov byte [esi + 0x259], cl
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x34]
xor ecx, esp
call fcn.00607d6d
add esp, 0x38
ret 4
mov edx, dword [str.LightPhase]
mov dword [esi + 0x255], edx
mov eax, dword [0x6b6344]
mov dword [esi + 0x259], eax
mov cx, word [0x6b6348]
mov word [esi + 0x25d], cx
mov dl, byte [0x6b634a]
mov byte [esi + 0x25f], dl
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x34]
xor ecx, esp
call fcn.00607d6d
add esp, 0x38
ret 4
mov eax, dword [str.H_20]
mov dword [esi + 0x255], eax
mov cl, byte [0x6b6358]
mov byte [esi + 0x259], cl
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x34]
xor ecx, esp
call fcn.00607d6d
add esp, 0x38
ret 4
cmp eax, 0x1570
jne 0x59a5ec
mov edx, dword [str.H_25]
mov dword [esi + 0x255], edx
mov al, byte [0x6b6360]
mov byte [esi + 0x259], al
mov ecx, dword [esp + 0x44]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00607d6d
add esp, 0x38
ret 4