Function at 0x578500
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x5cc650
mov eax, dword fs:[0]
push eax
sub esp, 0x38
mov eax, dword [0x70a108]
xor eax, esp
mov dword [esp + 0x34], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x70a108]
xor eax, esp
push eax
lea eax, [esp + 0x4c]
mov dword fs:[0], eax
movzx eax, byte [esp + 0x5c]
mov esi, dword [esp + 0x60]
mov ebp, ecx
cmp eax, 0x12
ja case.0x57854d.3
movzx eax, byte [eax + 0x578e04]
jmp dword [eax*4 + 0x578dd8]
lea ecx, [esi + 9]
push ecx
mov ecx, ebp
call fcn.00578230
cmp dword [esi + 0x25], 0
je 0x5785b5
mov edx, dword [esi + 0x11]
mov dword [0x748244], edx
mov eax, dword [esi + 0x11]
push eax
call fcn.0044a680
mov ecx, eax
call fcn.004c5da0
mov ecx, dword [esi + 0x11]
push ecx
mov ecx, 0x71ae70
call fcn.004aa820
test eax, eax
jne 0x57859b
push eax
push 0x3d0
jmp 0x578da8
mov ecx, dword [eax + 0x29e]
test ecx, 0x1000
jne 0x5785b5
or ecx, 0x1000
mov dword [eax + 0x29e], ecx
mov edx, dword [esi + 0x11]
push edx
mov ecx, 0x71ae70
call fcn.004b7110
jmp case.0x57854d.0
lea eax, [esi + 9]
push eax
call fcn.00578310
mov ecx, dword [esi + 0xd]
push ecx
mov ecx, 0x71ae70
call fcn.004b7110
jmp case.0x57854d.0
mov edx, dword [esi + 3]
push edx
mov ecx, 0x71a260
call fcn.0049fdc0
mov edi, eax
xor ebp, ebp
cmp edi, ebp
je case.0x57854d.0
push ebp
push 0x1f
push edi
mov ecx, 0x71c0fc
call fcn.004d0620
push ebp
push ebp
push ebp
push ebp
push ebp
push ebp
push edi
push 0xe28
mov ecx, 0x747fd8
call fcn.005622b0
lea eax, [esi + 0x3b]
push eax
mov ecx, edi
mov dword [edi + 0x404], 1
call fcn.004a7870
push edi
mov ecx, 0x71a108
call fcn.00493680
cmp dword [0x71a264], edi
jne 0x5787a3
push 0x384
call fcn.00586f10
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x54], ebp
cmp eax, ebp
je 0x578672
mov ecx, eax
call fcn.005749b0
mov ebx, eax
jmp 0x578674
xor ebx, ebx
lea ecx, [esi + 0x11]
push ecx
mov ecx, ebx
mov dword [esp + 0x58], 0xffffffff
call fcn.00574910
push ebx
mov ecx, edi
call fcn.004a6c20
mov edx, dword [esi + 0x21]
mov ecx, dword [0x70c3bc]
push edx
call fcn.00575a60
mov eax, dword [esi + 0x25]
mov ecx, dword [0x70c3bc]
push eax
call fcn.00575b10
mov ecx, dword [0x70c3bc]
mov edx, dword [ecx]
mov eax, dword [edx + 8]
push 1
call eax
push 0x60a
mov ecx, 0x71c268
call fcn.004d3c70
push eax
push 0x1d
push 0x71c268
call fcn.004d4fc0
add esp, 0xc
push ebp
push 0x400
mov ecx, 0x7474a0
call fcn.0054fff0
test eax, eax
jne 0x578702
mov ecx, dword [esi + 0xd]
mov edx, dword [0x71a264]
push ecx
push ebp
push 0xa5
push edx
jmp 0x57870f
mov eax, dword [0x71a264]
push ebp
push ebp
push 0xa6
push eax
mov ecx, 0x70dbe8
call fcn.004270d0
mov ecx, 0x71a1f0
call fcn.00496530
mov ecx, 0x71ae70
call fcn.004b6d00
mov ecx, dword [0x70c420]
call fcn.0046bb40
fld dword [0x5e9948]
mov eax, dword [0x747e00]
mov ecx, dword [0x71a264]
imul eax, eax, 0xb0
push 1
push ecx
sub esp, 0xc
mov ecx, 0x747860
fstp dword [esp + 8]
fld dword [eax + 0x747890]
fstp dword [esp + 4]
fld dword [eax + 0x747880]
fstp dword [esp]
push ebp
call fcn.0055f0d0
push 1
mov ecx, 0x7474a0
call fcn.0054f2a0
mov ecx, dword [0x70c3a8]
mov edx, dword [ecx]
mov eax, dword [edx + 8]
push ebp
call eax
cmp dword [0x71a264], edi
jne 0x5787a3
mov ecx, 0x71b410
call fcn.004cb7c0
mov eax, dword [edi + 0x142]
push eax
call fcn.004217b0
mov ecx, eax
call fcn.0056d820
cmp byte [eax + 8], 2
jne 0x57882f
push 0xfffffffffffffffe
mov ecx, edi
call fcn.0049f450
mov al, byte [edi + 0x146]
test al, al
jne 0x5787f1
push str.t_eff_bmu_A_s.beff
call fcn.0052a0a0
mov ecx, dword [0x71a264]
add esp, 4
push ecx
push 1
lea edx, [esp + 0x28]
mov word [esp + 0x28], ax
push edx
jmp 0x578814
cmp al, 1
jne 0x57882f
push str.t_eff_bmu_B_s.beff
call fcn.0052a0a0
add esp, 4
mov word [esp + 0x20], ax
mov eax, dword [0x71a264]
push eax
push 1
lea ecx, [esp + 0x28]
push ecx
fldz
push 0xfffffffffffffffe
fst dword [esp + 0x40]
mov ecx, edi
fst dword [esp + 0x3c]
mov dword [esp + 0x34], ebp
fstp dword [esp + 0x38]
call fcn.0049f380
cmp byte [edi + 0x451], 1
jne 0x57887c
push 0xfffffffffffffffb
mov ecx, edi
call fcn.0049f450
push str.t_maintain_PK_S.beff
call fcn.0052a0a0
fldz
mov edx, dword [0x71a264]
fst dword [esp + 0x34]
add esp, 4
fst dword [esp + 0x2c]
push edx
fstp dword [esp + 0x2c]
mov word [esp + 0x24], ax
push 1
lea eax, [esp + 0x28]
push eax
push 0xfffffffffffffffb
mov ecx, edi
mov dword [esp + 0x34], ebp
call fcn.0049f380
mov ecx, edi
call fcn.004a5640
mov ecx, edi
call fcn.0049ddd0
test al, al
jne case.0x57854d.0
push ebp
push ebp
push edi
mov ecx, 0x71c0fc
call fcn.004d0620
jmp case.0x57854d.0
mov ecx, dword [esi + 9]
push ecx
mov ecx, 0x71a260
call fcn.0049fdc0
mov edi, eax
xor ebx, ebx
cmp edi, ebx
jne 0x5788c5
push ebx
push 0x448
jmp 0x578da8
mov ecx, dword [esi + 0xd]
cmp dword [esi + 0x11], ebx
ja 0x57890b
jb 0x5788d4
cmp ecx, 4
ja 0x57890b
jmp dword [ecx*4 + 0x578e18]
push ebx
push 0x45c
push str.TitanManager.cpp
call fcn.00529940
add esp, 0xc
push edi
mov ecx, 0x71a108
mov dword [edi + 0x404], ebx
call fcn.00493680
cmp dword [0x71a264], edi
jne 0x578b26
mov edx, dword [esi + 0xd]
mov ebx, dword [edi + 0x5f8]
push 0
push edx
mov ecx, ebp
call fcn.00576ff0
test ebx, ebx
je 0x57895f
mov eax, dword [ebx]
mov edx, dword [eax + 4]
push 1
mov ecx, ebx
call edx
xor ebx, ebx
push ebx
mov ecx, edi
call fcn.004a6c20
push 0
push 0x400
mov ecx, 0x7474a0
call fcn.0054fff0
push 0
test eax, eax
jne 0x57898b
mov eax, dword [0x71a264]
push 0xa5
push eax
jmp 0x578997
mov ecx, dword [0x71a264]
push 0xa6
push ecx
mov ecx, 0x70dbe8
call fcn.004271d0
lea edx, [esp + 0x1c]
push edx
mov ecx, ebp
call fcn.00577190
mov ecx, dword [eax]
mov eax, ecx
mov edx, ecx
and edx, 0xf000000
and eax, 0xf0000000
or eax, edx
mov edx, ecx
and edx, 0xfc0000
or eax, edx
mov edx, ecx
and edx, 0x3f000
or eax, edx
mov edx, ecx
and edx, 0xfc0
or eax, edx
and ecx, 0x3f
or eax, ecx
mov ecx, eax
and ecx, 0x3f
push ecx
mov edx, eax
mov ecx, eax
shr edx, 6
and edx, 0x3f
shr ecx, 0xc
push edx
and ecx, 0x3f
shr eax, 0x12
push ecx
and eax, 0x3f
push eax
call fcn.005292e0
mov edx, dword [ebp + 0x14]
add esp, 0x10
push edx
mov ecx, 0x71ae70
mov ebx, eax
call fcn.004aa820
test eax, eax
je 0x578a41
mov edx, dword [eax]
mov ebp, dword [0x71a264]
push 0
mov ecx, eax
mov eax, dword [edx + 0x78]
push ebx
call eax
movzx ecx, ax
push ecx
push 2
lea ecx, [ebp + 0x610]
call fcn.00538510
mov ecx, dword [0x70c3bc]
mov edx, dword [ecx]
mov eax, dword [edx + 8]
push 0
call eax
mov eax, dword [esi + 0xd]
mov esi, dword [esi + 0x11]
mov dword [esp + 0x18], esi
test esi, esi
jl 0x578aa9
jg 0x578aa9
test eax, eax
jb 0x578aa9
test esi, esi
jg 0x578aa9
jl 0x578a6f
cmp eax, 4
ja 0x578aa9
jmp dword [eax*4 + 0x578e2c]
push 0
push 0x4a3
push str.TitanManager.cpp
call fcn.00529940
add esp, 0xc
mov ecx, 0x71a1f0
call fcn.00496530
mov ecx, 0x71ae70
call fcn.004b6d00
mov ecx, dword [0x70c420]
call fcn.0046bb40
fld dword [0x5d0b38]
mov eax, dword [0x747e00]
mov ecx, dword [0x71a264]
imul eax, eax, 0xb0
sub esp, 0xc
fstp dword [esp + 8]
fld dword [eax + 0x747890]
fstp dword [esp + 4]
fld dword [eax + 0x747880]
fstp dword [esp]
push ecx
mov ecx, 0x747860
call fcn.0055f3a0
push 0
mov ecx, 0x7474a0
call fcn.0054f2a0
xor ebx, ebx
mov ecx, edi
call fcn.004a5640
mov ecx, edi
call fcn.0049ddd0
test al, al
jne 0x578b45
push ebx
push ebx
push edi
mov ecx, 0x71c0fc
call fcn.004d0620
mov eax, dword [edi + 0x142]
push eax
call fcn.004217b0
mov ecx, eax
call fcn.0056d820
cmp byte [eax + 8], 2
jne 0x578bd2
push 0xfffffffffffffffe
mov ecx, edi
call fcn.0049f450
mov al, byte [edi + 0x146]
test al, al
jne 0x578b93
push str.eff_bmu_A_s.beff
call fcn.0052a0a0
mov edx, dword [0x71a264]
add esp, 4
push edx
mov word [esp + 0x24], ax
push 1
lea eax, [esp + 0x28]
push eax
jmp 0x578bb7
cmp al, 1
jne 0x578bd2
push 0x5dad30
call fcn.0052a0a0
mov ecx, dword [0x71a264]
add esp, 4
push ecx
push 1
lea edx, [esp + 0x28]
mov word [esp + 0x28], ax
push edx
fldz
push 0xfffffffffffffffe
fst dword [esp + 0x40]
mov ecx, edi
fst dword [esp + 0x3c]
mov dword [esp + 0x34], ebx
fstp dword [esp + 0x38]
call fcn.0049f380
cmp byte [edi + 0x451], 1
jne case.0x57854d.0
push 0xfffffffffffffffb
mov ecx, edi
call fcn.0049f450
push str.maintain_PK_S.beff
call fcn.0052a0a0
fldz
add esp, 4
fst dword [esp + 0x44]
mov word [esp + 0x34], ax
fst dword [esp + 0x40]
mov eax, dword [0x71a264]
fstp dword [esp + 0x3c]
push eax
push 1
lea ecx, [esp + 0x3c]
push ecx
push 0xfffffffffffffffb
mov ecx, edi
mov dword [esp + 0x48], ebx
call fcn.0049f380
jmp case.0x57854d.0
mov edx, dword [ebp + 0x14]
push edx
call fcn.00577200
test eax, eax
jne 0x578c3f
push eax
push 0x4da
jmp 0x578da8
mov ecx, dword [esi + 9]
mov dword [eax + 0x10], ecx
mov edx, dword [esi + 9]
push edx
mov ecx, ebp
call fcn.00576da0
jmp case.0x57854d.0
mov eax, dword [ebp + 0x14]
push eax
call fcn.00577200
test eax, eax
jne 0x578c6d
push eax
push 0x4ea
jmp 0x578da8
mov ecx, dword [esi + 9]
mov dword [eax + 0x14], ecx
mov edx, dword [esi + 9]
push edx
mov ecx, ebp
call fcn.00576db0
jmp case.0x57854d.0
mov eax, dword [esi + 9]
push eax
call fcn.00577280
test eax, eax
je case.0x57854d.0
mov ecx, dword [esi + 0xd]
mov dword [eax + 0xc], ecx
mov edx, dword [esi + 9]
push edx
mov ecx, 0x71ae70
call fcn.004b7110
jmp case.0x57854d.0
mov eax, dword [esi + 3]
push eax
mov ecx, 0x71a260
call fcn.0049fdc0
mov edi, eax
test edi, edi
je case.0x57854d.0
mov ecx, edi
call fcn.0049ddd0
mov edx, dword [edi]
mov edx, dword [edx + 0x34]
mov byte [esp + 0x14], al
mov eax, dword [esp + 0x14]
push eax
mov ecx, edi
call edx
cmp edi, dword [0x71a264]
jne 0x578d43
mov esi, dword [0x70c3a8]
mov eax, dword [esi]
mov edx, dword [eax + 8]
push 1
mov ecx, esi
call edx
mov eax, dword [0x748244]
push eax
mov ecx, 0x748230
call fcn.00577200
test eax, eax
je case.0x57854d.0
movzx ecx, word [eax + 0xe]
movzx edx, word [eax + 0xc]
push ecx
push edx
mov ecx, 0x72b170
call fcn.0052fa10
test eax, eax
je case.0x57854d.0
mov eax, dword [eax + 0x64]
sub eax, dword [ebp + 0x170]
mov ecx, esi
push eax
call fcn.00448330
mov ecx, esi
call fcn.00448350
push 0x1f
push edi
mov ecx, 0x71c0fc
call fcn.004d0810
jmp case.0x57854d.0
mov ecx, dword [esi + 3]
push ecx
mov ecx, 0x71a260
call fcn.0049fdc0
mov esi, eax
test esi, esi
je case.0x57854d.0
push 0
push 0x1f
push esi
mov ecx, 0x71c0fc
call fcn.004d0620
cmp esi, dword [0x71a264]
jne 0x578d8c
mov ecx, dword [0x70c3a8]
mov edx, dword [ecx]
mov eax, dword [edx + 8]
push 0
call eax
mov edx, dword [esi]
mov eax, dword [edx + 0x98]
push 0
push 0x147
mov ecx, esi
call eax
jmp case.0x57854d.0
push 0
push 0x54c
push str.TitanManager.cpp
call fcn.00529940
add esp, 0xc
mov ecx, dword [esp + 0x4c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x34]
xor ecx, esp
call fcn.00586d40
add esp, 0x44
ret 8