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

Disassembly:
push 0xffffffffffffffff
push 0x5dde22
mov eax, dword fs:[0]
push eax
sub esp, 0x98
mov eax, dword [0x6396a8]
xor eax, esp
mov dword [esp + 0x94], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x6396a8]
xor eax, esp
push eax
lea eax, [esp + 0xac]
mov dword fs:[0], eax
mov ebp, dword [esp + 0xbc]
mov esi, ecx
mov dword [esp + 0x88], esi
call fcn.0052eb30
mov dword [esi + fcn.0045f300], vtable.PathListener.0
xor ebx, ebx
lea eax, [esp + 0x50]
push eax
mov dword [esi], vtable.Minigame.0
mov dword [esi + 0x88], vtable.Minigame.2.0
mov dword [esi + fcn.0045f300], vtable.Minigame.1.0
lea ecx, [esi + 0x1ec]
push 0x14
mov dword [esp + 0xbc], ebx
mov dword [esi + 0x1e4], ebx
mov dword [esi + 0x1e8], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
call fcn.00587270
mov dword [esi + 0x1fc], ebx
mov dword [esi + 0x200], ebx
mov dword [esi + 0x208], ebx
mov dword [esi + 0x20c], ebx
mov dword [esi + 0x210], ebx
mov edi, dword [ebp + 0xc]
mov eax, dword [edi + 0x20]
mov ecx, dword [ebp + 8]
add edi, 0x1c
cmp eax, ebx
mov byte [esp + 0xb4], 2
mov dword [esp + 0x30], ecx
je 0x588217
mov edx, dword [edi + 8]
sub edx, eax
mov eax, 0x66666667
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ecx, eax
jb 0x588220
call fcn.005b2af7
mov ecx, dword [esp + 0x30]
mov edx, dword [edi + 4]
lea ecx, [ecx + ecx*4]
shl ecx, 4
lea eax, [ecx + edx]
mov dword [esi + 0x214], eax
mov ecx, dword [eax + 0x3c]
mov ecx, dword [ecx]
add eax, 0x38
push 4
mov dword [esi + 0x21c], ecx
push str.time
lea ecx, [esp + 0x1c]
mov dword [esi + 0x218], eax
mov dword [esp + 0x34], 0xf
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
call fcn.0043df40
lea eax, [esp + 0x14]
push eax
mov ecx, esi
mov byte [esp + 0xb8], 3
call fcn.00560da0
mov edi, 0x10
cmp dword [esp + 0x2c], edi
mov dword [esi + 0x220], eax
mov byte [esp + 0xb4], 2
jb 0x5882a0
mov ecx, dword [esp + 0x18]
push ecx
call fcn.005b28f2
add esp, 4
mov ecx, ebp
call fcn.00538d60
push 8
push str.ap_count
lea ecx, [esp + 0x1c]
mov byte [esi + 0x224], al
mov dword [esi + 0x228], ebx
mov dword [esp + 0x34], 0xf
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
call fcn.0043df40
lea edx, [esp + 0x14]
push edx
mov ecx, esi
mov byte [esp + 0xb8], 4
call fcn.00560da0
cmp dword [esp + 0x2c], edi
mov dword [esi + 0x22c], eax
mov byte [esp + 0xb4], 2
jb 0x588308
mov eax, dword [esp + 0x18]
push eax
call fcn.005b28f2
add esp, 4
push 7
push str.a_count
lea ecx, [esp + 0x1c]
mov dword [esp + 0x34], 0xf
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
call fcn.0043df40
lea ecx, [esp + 0x14]
push ecx
mov ecx, esi
mov byte [esp + 0xb8], 5
call fcn.00560da0
cmp dword [esp + 0x2c], edi
mov dword [esi + 0x230], eax
mov byte [esp + 0xb4], 2
jb 0x58835d
mov edx, dword [esp + 0x18]
push edx
call fcn.005b28f2
add esp, 4
push 7
push str.b_count
lea ecx, [esp + 0x1c]
mov dword [esp + 0x34], 0xf
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
call fcn.0043df40
lea eax, [esp + 0x14]
push eax
mov ecx, esi
mov byte [esp + 0xb8], 6
call fcn.00560da0
cmp dword [esp + 0x2c], edi
mov dword [esi + 0x234], eax
mov byte [esp + 0xb4], 2
jb 0x5883b2
mov ecx, dword [esp + 0x18]
push ecx
call fcn.005b28f2
add esp, 4
push 7
push str.c_count
lea ecx, [esp + 0x1c]
mov dword [esp + 0x34], 0xf
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
call fcn.0043df40
lea edx, [esp + 0x14]
push edx
mov ecx, esi
mov byte [esp + 0xb8], 7
call fcn.00560da0
cmp dword [esp + 0x2c], edi
mov dword [esi + 0x238], eax
jb 0x5883ff
mov eax, dword [esp + 0x18]
push eax
call fcn.005b28f2
add esp, 4
fld qword [0x5f4638]
cmp byte [esi + 0x224], bl
fstp qword [esi + 0x240]
mov dword [esi + 0x250], ebx
fld qword [0x5f6750]
sete cl
fstp qword [esi + 0x248]
mov byte [esi + 0x254], cl
fldz
mov dword [esi + 0x278], 1
fst qword [esi + 0x258]
fst qword [esi + 0x260]
fst qword [esi + 0x268]
fstp qword [esi + 0x270]
mov dword [esi + 0x280], ebx
mov dword [esi + 0x284], ebx
mov dword [esi + 0x288], ebx
push 0x28
lea ecx, [esi + 0x28c]
mov byte [esp + 0xb8], 8
call fcn.005abed0
mov ecx, ebp
mov dword [esi + 0x290], ebp
call fcn.005af660
push 0xffffffffffffffff
lea edi, [esi + 0x298]
push ebx
mov ebp, 0xf
mov dword [edi + 0x18], ebp
mov dword [edi + 0x14], ebx
push eax
mov ecx, edi
mov byte [edi + 4], bl
call fcn.0043b440
push 4
push str.name
lea ecx, [esp + 0x1c]
mov byte [esp + 0xbc], 9
mov dword [esi + 0x2b4], ebx
mov byte [esi + 0x2b8], bl
mov byte [esi + 0x2b9], bl
mov byte [esi + 0x2ba], bl
mov byte [esi + 0x2bb], bl
mov dword [esp + 0x34], ebp
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
call fcn.0043df40
cmp dword [esi + 0x218], ebx
mov byte [esp + 0xb4], 0xa
jne 0x5884fa
call fcn.005b2af7
mov edx, dword [esi + 0x218]
mov eax, dword [esi + 0x21c]
cmp eax, dword [edx + 4]
jne 0x588510
call fcn.005b2af7
mov ecx, dword [esi + 0x21c]
lea edx, [esp + 0x14]
add ecx, 8
push edx
call fcn.004790c0
push eax
call fcn.0054c670
add esp, 4
cmp dword [esp + 0x2c], 0x10
mov dword [esi + 0x2bc], eax
mov byte [esp + 0xb4], 9
jb 0x58854e
mov eax, dword [esp + 0x18]
push eax
call fcn.005b28f2
add esp, 4
lea ebp, [esi + 0x2c4]
mov ecx, ebp
mov dword [esi + 0x2c0], ebx
call fcn.005866e0
mov dword [ebp + 4], eax
mov dword [ebp + 8], ebx
mov ecx, dword [esi + 0x220]
mov byte [esp + 0xb4], 0xb
mov dword [esi + 0x1d8], ecx
call fcn.00541160
mov ecx, dword [0x63e5a0]
push eax
call fcn.005214a0
push ebx
mov ebp, 0xf
push 0x5ff2b0
lea ecx, [esp + 0x3c]
mov dword [esp + 0x54], ebp
mov dword [esp + 0x50], ebx
mov byte [esp + 0x40], bl
call fcn.0043df40
push 9
push str.HowToPlay
lea ecx, [esp + 0x1c]
mov byte [esp + 0xbc], 0xc
mov dword [esp + 0x34], ebp
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
call fcn.0043df40
lea edx, [esp + 0x34]
push edx
lea eax, [esp + 0x18]
push eax
push 0x1e
push 0x23d
mov ecx, esi
mov byte [esp + 0xc4], 0xd
call fcn.00537f70
cmp dword [esp + 0x2c], 0x10
mov dword [esi + 0x294], eax
jb 0x58860a
mov ecx, dword [esp + 0x18]
push ecx
call fcn.005b28f2
add esp, 4
cmp dword [esp + 0x4c], 0x10
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x28], ebx
mov byte [esp + 0x18], bl
mov byte [esp + 0xb4], 0xb
jb 0x588632
mov edx, dword [esp + 0x38]
push edx
call fcn.005b28f2
add esp, 4
mov edx, dword [esi + 0x290]
cmp dword [edx + 0x50], 2
mov ecx, dword [esi + 0x294]
mov eax, dword [ecx]
mov eax, dword [eax + 0x7c]
setne dl
push edx
call eax
push edi
lea ecx, [esp + 0x64]
push str.hud_
push ecx
call fcn.00441e70
push str._neutral
push eax
lea edx, [esp + 0x48]
push edx
mov byte [esp + 0xcc], 0xe
call fcn.00441f20
add esp, 0x18
push eax
mov ecx, 0x63e65c
mov byte [esp + 0xb8], 0xf
call fcn.00520690
mov eax, dword [eax]
mov edi, 0x10
cmp dword [esp + 0x4c], edi
mov dword [esi + 0x1b8], eax
jb 0x5886ab
mov eax, dword [esp + 0x38]
push eax
call fcn.005b28f2
add esp, 4
cmp dword [esp + 0x78], edi
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x48], ebx
mov byte [esp + 0x38], bl
mov byte [esp + 0xb4], 0xb
jb 0x5886d2
mov ecx, dword [esp + 0x64]
push ecx
call fcn.005b28f2
add esp, 4
push 5
push str.title
lea ecx, [esp + 0x1c]
mov dword [esp + 0x34], ebp
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
call fcn.0043df40
cmp dword [esi + 0x218], ebx
mov byte [esp + 0xb4], 0x10
jne 0x588703
call fcn.005b2af7
mov edx, dword [esi + 0x218]
mov eax, dword [esi + 0x21c]
cmp eax, dword [edx + 4]
jne 0x588719
call fcn.005b2af7
mov ecx, dword [esi + 0x21c]
lea edx, [esp + 0x14]
add ecx, 8
push edx
call fcn.004790c0
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x98]
mov dword [esp + 0xb0], ebp
mov dword [esp + 0xac], ebx
mov byte [esp + 0x9c], bl
call fcn.0043b440
cmp dword [esp + 0x2c], edi
mov byte [esp + 0xb4], 0x12
jb 0x58876c
mov eax, dword [esp + 0x18]
push eax
call fcn.005b28f2
add esp, 4
mov ecx, dword [esp + 0xa0]
push ebx
push 0x5ff2b0
push ecx
push ebx
lea ecx, [esp + 0x9c]
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x38], ebx
mov byte [esp + 0x28], bl
call fcn.0043b680
test eax, eax
jne 0x588838
push 5
push str.title
lea ecx, [esp + 0x3c]
mov dword [esp + 0x54], ebp
mov dword [esp + 0x50], ebx
mov byte [esp + 0x40], bl
call fcn.0043df40
mov edi, dword [esi + 0x2bc]
mov eax, dword [edi + 0x20]
mov ebp, dword [esi + 0x2c0]
add edi, 0x1c
cmp eax, ebx
mov byte [esp + 0xb4], 0x13
je 0x5887ee
mov ecx, dword [edi + 8]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x5887f3
call fcn.005b2af7
mov eax, dword [edi + 4]
lea edx, [ebp + ebp*2]
lea ecx, [eax + edx*4]
lea edx, [esp + 0x34]
push edx
call fcn.004790c0
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x98]
call fcn.0043b440
cmp dword [esp + 0x4c], 0x10
mov byte [esp + 0xb4], 0x12
jb 0x588833
mov eax, dword [esp + 0x38]
push eax
call fcn.005b28f2
add esp, 4
mov ebp, 0xf
push 4
push str.food
lea ecx, [esp + 0x3c]
mov dword [esp + 0x54], ebp
mov dword [esp + 0x50], ebx
mov byte [esp + 0x40], bl
call fcn.0043df40
mov ecx, dword [esp + 0xa0]
push ebx
push 0x5ff2b0
push ecx
push ebx
lea ecx, [esp + 0x9c]
mov byte [esp + 0xc4], 0x14
call fcn.0043b680
test eax, eax
je 0x58888f
lea edx, [esp + 0x8c]
push edx
mov ecx, 0x63e6d0
call fcn.004790c0
jmp 0x5888a1
mov eax, dword [esi + 0x214]
add eax, 0x1c
push eax
call fcn.00526bd0
add esp, 4
cmp dword [esi + 0x218], ebx
mov edi, eax
jne 0x5888b0
call fcn.005b2af7
mov ecx, dword [esi + 0x218]
mov edx, dword [esi + 0x21c]
cmp edx, dword [ecx + 4]
jne 0x5888c6
call fcn.005b2af7
mov ecx, dword [esi + 0x21c]
lea eax, [esp + 0x34]
add ecx, 8
push eax
call fcn.004790c0
push str.food
push eax
lea ecx, [esp + 0x68]
push edi
push ecx
call fcn.00534c90
add esp, 0x10
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esi + 0x1bc]
mov byte [esp + 0xc0], 0x15
call fcn.0043b440
mov edi, 0x10
cmp dword [esp + 0x78], edi
jb 0x58891c
mov edx, dword [esp + 0x64]
push edx
call fcn.005b28f2
add esp, 4
cmp dword [esp + 0x4c], edi
mov dword [esp + 0x78], ebp
mov dword [esp + 0x74], ebx
mov byte [esp + 0x64], bl
mov byte [esp + 0xb4], 0x12
jb 0x588943
mov eax, dword [esp + 0x38]
push eax
call fcn.005b28f2
add esp, 4
mov ebp, dword [esi + 0x2bc]
mov eax, dword [ebp + 0x30]
mov edi, dword [eax]
add ebp, 0x2c
mov dword [esp + 0x50], ebp
jmp 0x588960
mov eax, dword [esi + 0x2bc]
mov ecx, dword [eax + 0x30]
add eax, 0x2c
cmp ebp, eax
mov dword [esp + 0x5c], ecx
je 0x588979
call fcn.005b2af7
cmp edi, dword [esp + 0x5c]
je 0x588a45
cmp edi, dword [ebp + 4]
jne 0x58898d
call fcn.005b2af7
xor edx, edx
cmp byte [esi + 0x224], bl
setne dl
add edx, 1
test dword [edi + 0x10], edx
je 0x588a34
cmp edi, dword [ebp + 4]
jne 0x5889ae
call fcn.005b2af7
lea eax, [edi + 0x14]
push eax
mov ecx, 0x63e65c
call fcn.00520690
cmp edi, dword [ebp + 4]
mov ecx, dword [eax]
mov dword [esp + 0x30], ecx
jne 0x5889d6
call fcn.005b2af7
cmp edi, dword [ebp + 4]
jne 0x5889d6
call fcn.005b2af7
mov edx, dword [esp + 0x30]
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 8]
push edx
push eax
push ecx
lea ecx, [esp + 0x6c]
call fcn.005209f0
mov ebp, dword [esi + 0x2c8]
mov edx, dword [ebp + 4]
push eax
push edx
push ebp
lea ecx, [esi + 0x2c4]
mov byte [esp + 0xc0], 0x16
call fcn.0057f650
push 1
lea ecx, [esi + 0x2c4]
mov dword [esp + 0x34], eax
call fcn.0057f740
mov eax, dword [esp + 0x30]
mov dword [ebp + 4], eax
mov ecx, dword [eax + 4]
mov ebp, dword [esp + 0x50]
mov dword [ecx], eax
mov byte [esp + 0xb4], 0x12
cmp edi, dword [ebp + 4]
jne 0x588a3e
call fcn.005b2af7
mov edi, dword [edi]
jmp 0x588960
cmp byte [esp + 0xc0], bl
je 0x588a55
mov ecx, esi
call fcn.005864f0
cmp dword [esp + 0xa4], 0x10
jb 0x588a6f
mov eax, dword [esp + 0x90]
push eax
call fcn.005b28f2
add esp, 4
mov eax, esi
mov ecx, dword [esp + 0xac]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x94]
xor ecx, esp
call fcn.005b2f9b
add esp, 0xa4
ret 8