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

Disassembly:
push 0xffffffffffffffff
push 0x5e0e56
mov eax, dword fs:[0]
push eax
sub esp, 0x1b0
mov eax, dword [0x6396a8]
xor eax, esp
mov dword [esp + 0x1ac], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x6396a8]
xor eax, esp
push eax
lea eax, [esp + 0x1c4]
mov dword fs:[0], eax
mov eax, dword [esp + 0x1d4]
push 1
mov esi, ecx
xor ebx, ebx
push eax
mov dword [esp + 0x1a8], esi
mov dword [esp + 0x1c], ebx
call fcn.00588120
lea edi, [esi + 0x2d0]
mov ecx, edi
mov dword [esp + 0x1cc], ebx
mov dword [esi], vtable.Strain.2.0
mov dword [esi + 0x88], vtable.Strain.1.0
mov dword [esi + fcn.0045f300], vtable.Strain.0
call fcn.005917e0
mov dword [edi + 4], eax
mov dword [edi + 8], ebx
lea edi, [esi + 0x2dc]
mov ecx, edi
mov byte [esp + 0x1cc], 1
call fcn.005917e0
mov dword [edi + 4], eax
mov dword [edi + 8], ebx
lea ebp, [esi + 0x2e8]
mov dword [ebp + 4], ebx
mov dword [ebp + 8], ebx
mov dword [ebp + 0xc], ebx
mov dword [ebp + 0x10], ebx
mov eax, dword [esi + 0x214]
mov byte [esi + 0x2fc], bl
mov eax, dword [eax + 0x40]
add eax, 0xffffffff
push eax
push ebx
mov ecx, esi
mov byte [esp + 0x1d4], 3
call fcn.005875e0
push 4
mov edi, 0xf
push str.food
lea ecx, [esp + 0x160]
mov dword [esp + 0x178], edi
mov dword [esp + 0x174], ebx
mov byte [esp + 0x164], bl
call fcn.0043df40
cmp dword [esi + 0x218], ebx
mov byte [esp + 0x1cc], 4
jne 0x5a2acf
call fcn.005b2af7
mov ecx, dword [esi + 0x218]
mov edx, dword [esi + 0x21c]
cmp edx, dword [ecx + 4]
jne 0x5a2ae5
call fcn.005b2af7
mov ecx, dword [esi + 0x21c]
lea eax, [esp + 0x158]
add ecx, 8
push eax
call fcn.004790c0
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x1b0]
mov dword [esp + 0x1c8], edi
mov dword [esp + 0x1c4], ebx
mov byte [esp + 0x1b4], bl
call fcn.0043b440
cmp dword [esp + 0x170], 0x10
mov byte [esp + 0x1cc], 6
jb 0x5a2b42
mov ecx, dword [esp + 0x15c]
push ecx
call fcn.005b28f2
add esp, 4
push 0xa
push str.food_angle
lea ecx, [esp + 0x24]
mov dword [esp + 0x178], edi
mov dword [esp + 0x174], ebx
mov byte [esp + 0x164], bl
mov dword [esp + 0x3c], edi
mov dword [esp + 0x38], ebx
mov byte [esp + 0x28], bl
call fcn.0043df40
lea edx, [esp + 0x1c]
push edx
mov ecx, esi
mov byte [esp + 0x1d0], 7
call fcn.0056de50
fsubr qword [0x5f8578]
cmp dword [esp + 0x34], 0x10
mov byte [esp + 0x1cc], 6
fstp qword [esp + 0x190]
jb 0x5a2bb0
mov eax, dword [esp + 0x20]
push eax
call fcn.005b28f2
add esp, 4
mov ecx, dword [esi + 0x218]
cmp ecx, ebx
mov edx, dword [esi + 0x21c]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], edx
jne 0x5a2bd1
call fcn.005b2af7
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x58]
cmp eax, dword [ecx + 4]
jne 0x5a2be3
call fcn.005b2af7
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x58]
mov eax, dword [edx]
mov dword [esp + 0x58], eax
mov eax, dword [esi + 0x214]
mov edx, dword [eax + 0x3c]
add eax, 0x38
cmp ecx, eax
mov dword [esp + 0x19c], edx
je 0x5a2c09
call fcn.005b2af7
mov eax, dword [esp + 0x19c]
cmp dword [esp + 0x58], eax
je 0x5a2e57
mov ecx, esi
call fcn.005869b0
push 0xa
push str.strainer_x
lea ecx, [esp + 0x24]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x38], ebx
mov byte [esp + 0x28], bl
call fcn.0043df40
push 1
push 0x5f0848
lea ecx, [esp + 0x40]
mov byte [esp + 0x1d4], 8
mov dword [esp + 0x58], edi
mov dword [esp + 0x54], ebx
mov byte [esp + 0x44], bl
call fcn.0043df40
lea ecx, [esp + 0x1c]
push ecx
mov ecx, esi
mov byte [esp + 0x1d0], 9
call fcn.00560e70
lea edx, [esp + 0x38]
push edx
mov ecx, esi
mov dword [esp + 0x1c], eax
call fcn.00560da0
mov ecx, dword [esp + 0x18]
add ecx, eax
cmp dword [esp + 0x50], 0x10
mov dword [esp + 0x94], ecx
jb 0x5a2ca6
mov edx, dword [esp + 0x3c]
push edx
call fcn.005b28f2
add esp, 4
cmp dword [esp + 0x34], 0x10
mov dword [esp + 0x50], edi
mov dword [esp + 0x4c], ebx
mov byte [esp + 0x3c], bl
mov byte [esp + 0x1cc], 6
jb 0x5a2cce
mov eax, dword [esp + 0x20]
push eax
call fcn.005b28f2
add esp, 4
push 0xa
push str.strainer_y
lea ecx, [esp + 0x24]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x38], ebx
mov byte [esp + 0x28], bl
call fcn.0043df40
push 1
push 0x5f084c
lea ecx, [esp + 0x40]
mov byte [esp + 0x1d4], 0xa
mov dword [esp + 0x58], edi
mov dword [esp + 0x54], ebx
mov byte [esp + 0x44], bl
call fcn.0043df40
lea ecx, [esp + 0x1c]
push ecx
mov ecx, esi
mov byte [esp + 0x1d0], 0xb
call fcn.00560e70
lea edx, [esp + 0x38]
push edx
mov ecx, esi
mov dword [esp + 0x1c], eax
call fcn.00560da0
mov ecx, dword [esp + 0x18]
add ecx, eax
cmp dword [esp + 0x50], 0x10
mov dword [esp + 0x98], ecx
jb 0x5a2d53
mov edx, dword [esp + 0x3c]
push edx
call fcn.005b28f2
add esp, 4
cmp dword [esp + 0x34], 0x10
mov dword [esp + 0x50], edi
mov dword [esp + 0x4c], ebx
mov byte [esp + 0x3c], bl
mov byte [esp + 0x1cc], 6
jb 0x5a2d7b
mov eax, dword [esp + 0x20]
push eax
call fcn.005b28f2
add esp, 4
push 5
push str.angle
lea ecx, [esp + 0x24]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x38], ebx
mov byte [esp + 0x28], bl
call fcn.0043df40
lea ecx, [esp + 0x1c]
push ecx
mov ecx, esi
mov byte [esp + 0x1d0], 0xc
call fcn.0056de50
fsub qword [0x5f8578]
cmp dword [esp + 0x34], 0x10
mov byte [esp + 0x1cc], 6
fstp qword [esp + 0x9c]
jb 0x5a2dd4
mov edx, dword [esp + 0x20]
push edx
call fcn.005b28f2
add esp, 4
mov eax, dword [ebp + 0x10]
add eax, 1
cmp dword [ebp + 8], eax
ja 0x5a2de8
push 1
mov ecx, ebp
call fcn.005a2850
mov eax, dword [ebp + 0xc]
add eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
cmp ecx, eax
mov dword [esp + 0x18], eax
ja 0x5a2dff
sub eax, ecx
mov dword [esp + 0x18], eax
mov ecx, dword [ebp + 4]
cmp dword [ecx + eax*4], ebx
jne 0x5a2e1d
push 0x10
call fcn.005b2b20
mov ecx, dword [esp + 0x1c]
mov edx, dword [ebp + 4]
mov dword [edx + ecx*4], eax
add esp, 4
mov eax, ecx
mov edx, dword [ebp + 4]
mov eax, dword [edx + eax*4]
cmp eax, ebx
je 0x5a2e4e
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x98]
mov dword [eax], ecx
mov ecx, dword [esp + 0x9c]
mov dword [eax + 4], edx
mov edx, dword [esp + 0xa0]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
add dword [ebp + 0x10], 1
jmp 0x5a2bb0
push 0x3a0
call fcn.005b2b20
add esp, 4
mov dword [esp + 0x18], eax
cmp eax, ebx
mov byte [esp + 0x1cc], 0xd
je 0x5a3213
push 0xa
push str.pour_sound
lea ecx, [esp + 0x80]
mov dword [esp + 0x98], edi
mov dword [esp + 0x94], ebx
mov byte [esp + 0x84], bl
call fcn.0043df40
push edi
push str.accel_drop_rate
lea ecx, [esp + 0x24]
mov byte [esp + 0x1d4], 0xe
mov dword [esp + 0x1c], 1
mov dword [esp + 0x3c], edi
mov dword [esp + 0x38], ebx
mov byte [esp + 0x28], bl
call fcn.0043df40
push 0xa
push str.accel_loss
lea ecx, [esp + 0x64]
mov dword [esp + 0x1d4], edi
mov dword [esp + 0x1c], 3
mov dword [esp + 0x7c], edi
mov dword [esp + 0x78], ebx
mov byte [esp + 0x68], bl
call fcn.0043df40
push 9
push str.max_accel
lea ecx, [esp + 0x17c]
mov dword [esp + 0x1d4], 0x10
mov dword [esp + 0x1c], 7
mov dword [esp + 0x194], edi
mov dword [esp + 0x190], ebx
mov byte [esp + 0x180], bl
call fcn.0043df40
push 0xa
push str.accel_rate
lea ecx, [esp + 0xd4]
mov dword [esp + 0x1d4], 0x11
mov dword [esp + 0x1c], edi
mov dword [esp + 0xec], edi
mov dword [esp + 0xe8], ebx
mov byte [esp + 0xd8], bl
call fcn.0043df40
push 9
push str.flow_loss
lea ecx, [esp + 0x10c]
mov dword [esp + 0x1d4], 0x12
mov dword [esp + 0x1c], 0x1f
mov dword [esp + 0x124], edi
mov dword [esp + 0x120], ebx
mov byte [esp + 0x110], bl
call fcn.0043df40
push 9
push str.base_flow
lea ecx, [esp + 0xf0]
mov dword [esp + 0x1d4], 0x13
mov dword [esp + 0x1c], 0x3f
mov dword [esp + 0x108], edi
mov dword [esp + 0x104], ebx
mov byte [esp + 0xf4], bl
call fcn.0043df40
push 8
push str.max_flow
lea ecx, [esp + 0x128]
mov dword [esp + 0x1d4], 0x14
mov dword [esp + 0x1c], 0x7f
mov dword [esp + 0x140], edi
mov dword [esp + 0x13c], ebx
mov byte [esp + 0x12c], bl
call fcn.0043df40
mov dword [esp + 0x1cc], 0x15
mov dword [esp + 0x14], 0xff
mov dword [esp + 0x154], edi
push 8
push str.min_flow
lea ecx, [esp + 0x144]
mov dword [esp + 0x158], ebx
mov byte [esp + 0x148], bl
call fcn.0043df40
push 0xa
push str.strainer_y
lea ecx, [esp + 0xb8]
mov dword [esp + 0x1d4], 0x16
mov dword [esp + 0x1c], 0x1ff
mov dword [esp + 0xd0], edi
mov dword [esp + 0xcc], ebx
mov byte [esp + 0xbc], bl
call fcn.0043df40
push 5
push str.pot_y
lea ecx, [esp + 0x9c]
mov dword [esp + 0x1d4], 0x17
mov dword [esp + 0x1c], 0x3ff
mov dword [esp + 0xb4], edi
mov dword [esp + 0xb0], ebx
mov byte [esp + 0xa0], bl
call fcn.0043df40
push 5
push str.pot_x
lea ecx, [esp + 0x40]
mov dword [esp + 0x1d4], 0x18
mov dword [esp + 0x1c], 0x7ff
mov dword [esp + 0x58], edi
mov dword [esp + 0x54], ebx
mov byte [esp + 0x44], bl
call fcn.0043df40
mov ebp, dword [esi + 0x2f8]
push esi
lea eax, [esp + 0x7c]
push eax
mov ecx, esi
mov dword [esp + 0x1d4], 0x19
mov dword [esp + 0x1c], 0xfff
call fcn.00564500
push eax
lea ecx, [esp + 0x24]
push ecx
mov ecx, esi
call fcn.00560f00
sub esp, 8
lea edx, [esp + 0x6c]
fstp qword [esp]
push edx
mov ecx, esi
call fcn.00560f00
sub esp, 8
lea eax, [esp + 0x18c]
fstp qword [esp]
push eax
mov ecx, esi
call fcn.00560f00
sub esp, 8
lea ecx, [esp + 0xec]
fstp qword [esp]
push ecx
mov ecx, esi
call fcn.00560f00
sub esp, 8
lea edx, [esp + 0x12c]
fstp qword [esp]
push edx
mov ecx, esi
call fcn.00560f00
sub esp, 8
lea eax, [esp + 0x118]
fstp qword [esp]
push eax
mov ecx, esi
call fcn.00560f00
sub esp, 8
lea ecx, [esp + 0x158]
fstp qword [esp]
push ecx
mov ecx, esi
call fcn.00560f00
sub esp, 8
lea edx, [esp + 0x17c]
fstp qword [esp]
push edx
mov ecx, esi
call fcn.00560f00
sub esp, 8
lea eax, [esp + 0xf8]
fstp qword [esp]
push eax
mov ecx, esi
call fcn.00560e70
fld qword [esp + 0x1d8]
push eax
sub esp, 8
fstp qword [esp]
push ebp
lea ecx, [esp + 0x1fc]
push ecx
lea edx, [esp + 0xf0]
push edx
mov ecx, esi
call fcn.00560e70
push eax
lea eax, [esp + 0x98]
push eax
mov ecx, esi
call fcn.00560e70
mov ecx, dword [esp + 0x78]
push eax
call fcn.005ab450
jmp 0x5a3215
xor eax, eax
mov ebp, 0x10
push eax
mov ecx, esi
mov dword [esp + 0x1d0], 0x25
call fcn.00585f70
test dword [esp + 0x14], 0x800
je 0x5a325e
and dword [esp + 0x14], 0xfffff7ff
cmp dword [esp + 0x50], ebp
jb 0x5a3252
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.005b28f2
add esp, 4
mov dword [esp + 0x50], edi
mov dword [esp + 0x4c], ebx
mov byte [esp + 0x3c], bl
test dword [esp + 0x14], 0x400
je 0x5a329e
and dword [esp + 0x14], 0xfffffbff
cmp dword [esp + 0xac], ebp
jb 0x5a3289
mov edx, dword [esp + 0x98]
push edx
call fcn.005b28f2
add esp, 4
mov dword [esp + 0xac], edi
mov dword [esp + 0xa8], ebx
mov byte [esp + 0x98], bl
test dword [esp + 0x14], 0x200
je 0x5a32de
and dword [esp + 0x14], 0xfffffdff
cmp dword [esp + 0xc8], ebp
jb 0x5a32c9
mov eax, dword [esp + 0xb4]
push eax
call fcn.005b28f2
add esp, 4
mov dword [esp + 0xc8], edi
mov dword [esp + 0xc4], ebx
mov byte [esp + 0xb4], bl
test dword [esp + 0x14], 0x100
je 0x5a331e
and dword [esp + 0x14], 0xfffffeff
cmp dword [esp + 0x154], ebp
jb 0x5a3309
mov ecx, dword [esp + 0x140]
push ecx
call fcn.005b28f2
add esp, 4
mov dword [esp + 0x154], edi
mov dword [esp + 0x150], ebx
mov byte [esp + 0x140], bl
test byte [esp + 0x14], 0x80
je 0x5a335b
and dword [esp + 0x14], 0xffffff7f
cmp dword [esp + 0x138], ebp
jb 0x5a3346
mov edx, dword [esp + 0x124]
push edx
call fcn.005b28f2
add esp, 4
mov dword [esp + 0x138], edi
mov dword [esp + 0x134], ebx
mov byte [esp + 0x124], bl
test byte [esp + 0x14], 0x40
je 0x5a3395
and dword [esp + 0x14], 0xffffffbf
cmp dword [esp + 0x100], ebp
jb 0x5a3380
mov eax, dword [esp + 0xec]
push eax
call fcn.005b28f2
add esp, 4
mov dword [esp + 0x100], edi
mov dword [esp + 0xfc], ebx
mov byte [esp + 0xec], bl
test byte [esp + 0x14], 0x20
je 0x5a33cf
and dword [esp + 0x14], 0xffffffdf
cmp dword [esp + 0x11c], ebp
jb 0x5a33ba
mov ecx, dword [esp + 0x108]
push ecx
call fcn.005b28f2
add esp, 4
mov dword [esp + 0x11c], edi
mov dword [esp + 0x118], ebx
mov byte [esp + 0x108], bl
test byte [esp + 0x14], 0x10
je 0x5a3409
and dword [esp + 0x14], 0xffffffef
cmp dword [esp + 0xe4], ebp
jb 0x5a33f4
mov edx, dword [esp + 0xd0]
push edx
call fcn.005b28f2
add esp, 4
mov dword [esp + 0xe4], edi
mov dword [esp + 0xe0], ebx
mov byte [esp + 0xd0], bl
test byte [esp + 0x14], 8
je 0x5a3443
and dword [esp + 0x14], 0xfffffff7
cmp dword [esp + 0x18c], ebp
jb 0x5a342e
mov eax, dword [esp + 0x178]
push eax
call fcn.005b28f2
add esp, 4
mov dword [esp + 0x18c], edi
mov dword [esp + 0x188], ebx
mov byte [esp + 0x178], bl
test byte [esp + 0x14], 4
je 0x5a346e
and dword [esp + 0x14], 0xfffffffb
cmp dword [esp + 0x74], ebp
jb 0x5a3462
mov ecx, dword [esp + 0x60]
push ecx
call fcn.005b28f2
add esp, 4
mov dword [esp + 0x74], edi
mov dword [esp + 0x70], ebx
mov byte [esp + 0x60], bl
test byte [esp + 0x14], 2
je 0x5a3499
and dword [esp + 0x14], 0xfffffffd
cmp dword [esp + 0x34], ebp
jb 0x5a348d
mov edx, dword [esp + 0x20]
push edx
call fcn.005b28f2
add esp, 4
mov dword [esp + 0x34], edi
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
test byte [esp + 0x14], 1
mov dword [esp + 0x1cc], 6
je 0x5a34c6
and dword [esp + 0x14], 0xfffffffe
cmp dword [esp + 0x90], ebp
jb 0x5a34c6
mov eax, dword [esp + 0x7c]
push eax
call fcn.005b28f2
add esp, 4
push 0xe0
call fcn.005b2b20
mov ebp, eax
add esp, 4
mov dword [esp + 0x18], ebp
cmp ebp, ebx
mov byte [esp + 0x1cc], 0x26
je 0x5a35b5
push 0xd
push str.strainer_side
lea ecx, [esp + 0x80]
mov dword [esp + 0x98], edi
mov dword [esp + 0x94], ebx
mov byte [esp + 0x84], bl
call fcn.0043df40
or dword [esp + 0x14], 0x1000
push 0xa
push str.strainer_y
lea ecx, [esp + 0x64]
mov byte [esp + 0x1d4], 0x27
mov dword [esp + 0x7c], edi
mov dword [esp + 0x78], ebx
mov byte [esp + 0x68], bl
call fcn.0043df40
or dword [esp + 0x14], 0x2000
push 0xa
push str.strainer_x
lea ecx, [esp + 0x24]
mov dword [esp + 0x1d4], 0x28
mov dword [esp + 0x3c], edi
mov dword [esp + 0x38], ebx
mov byte [esp + 0x28], bl
call fcn.0043df40
or dword [esp + 0x14], 0x4000
lea ecx, [esp + 0x78]
push ecx
mov ecx, 0x63e65c
mov dword [esp + 0x1d0], 0x29
call fcn.00520690
mov eax, dword [eax]
push ebx
push eax
lea edx, [esp + 0x64]
push edx
mov ecx, esi
call fcn.00560e70
push eax
lea eax, [esp + 0x28]
push eax
mov ecx, esi
call fcn.00560e70
push eax
mov ecx, ebp
call fcn.00558a70
jmp 0x5a35b7
xor eax, eax
push eax
mov ecx, esi
mov dword [esp + 0x1d0], 0x2c
call fcn.00585fc0
test dword [esp + 0x14], 0x4000
je 0x5a35fc
and dword [esp + 0x14], 0xffffbfff
cmp dword [esp + 0x34], 0x10
jb 0x5a35f0
mov ecx, dword [esp + 0x20]
push ecx
call fcn.005b28f2
add esp, 4
mov dword [esp + 0x34], edi
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
test dword [esp + 0x14], 0x2000
je 0x5a362e
and dword [esp + 0x14], 0xffffdfff
cmp dword [esp + 0x74], 0x10
jb 0x5a3622
mov edx, dword [esp + 0x60]
push edx
call fcn.005b28f2
add esp, 4
mov dword [esp + 0x74], edi
mov dword [esp + 0x70], ebx
mov byte [esp + 0x60], bl
test dword [esp + 0x14], 0x1000
mov dword [esp + 0x1cc], 6
je 0x5a3662
and dword [esp + 0x14], 0xffffefff
cmp dword [esp + 0x90], 0x10
jb 0x5a3662
mov eax, dword [esp + 0x7c]
push eax
call fcn.005b28f2
add esp, 4
push 0xe0
call fcn.005b2b20
mov ebp, eax
add esp, 4
mov dword [esp + 0x18], ebp
cmp ebp, ebx
mov byte [esp + 0x1cc], 0x2d
je 0x5a371e
push str.pot_large_side
lea ecx, [esp + 0x60]
call fcn.00438a30
or dword [esp + 0x14], 0x8000
push str.large_pot_y
lea ecx, [esp + 0x20]
mov byte [esp + 0x1d0], 0x2e
call fcn.00438a30
or dword [esp + 0x14], 0x10000
push str.large_pot_x
lea ecx, [esp + 0x7c]
mov dword [esp + 0x1d0], 0x2f
call fcn.00438a30
or dword [esp + 0x14], 0x20000
lea ecx, [esp + 0x5c]
push ecx
mov ecx, 0x63e65c
mov dword [esp + 0x1d0], 0x30
call fcn.00520690
mov eax, dword [eax]
push ebx
push eax
lea edx, [esp + 0x24]
push edx
mov ecx, esi
call fcn.00560e70
push eax
lea eax, [esp + 0x84]
push eax
mov ecx, esi
call fcn.00560e70
push eax
mov ecx, ebp
call fcn.00558a70
jmp 0x5a3720
xor eax, eax
push eax
mov ecx, esi
mov dword [esp + 0x1d0], 0x33
call fcn.00585fc0
test dword [esp + 0x14], 0x20000
mov ebp, 0x10
je 0x5a3772
and dword [esp + 0x14], 0xfffdffff
cmp dword [esp + 0x90], ebp
jb 0x5a3760
mov ecx, dword [esp + 0x7c]
push ecx
call fcn.005b28f2
add esp, 4
mov dword [esp + 0x90], edi
mov dword [esp + 0x8c], ebx
mov byte [esp + 0x7c], bl
test dword [esp + 0x14], 0x10000
je 0x5a37a3
and dword [esp + 0x14], 0xfffeffff
cmp dword [esp + 0x34], ebp
jb 0x5a3797
mov edx, dword [esp + 0x20]
push edx
call fcn.005b28f2
add esp, 4
mov dword [esp + 0x34], edi
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
test dword [esp + 0x14], 0x8000
je 0x5a37c0
cmp dword [esp + 0x74], ebp
jb 0x5a37c0
mov eax, dword [esp + 0x60]
push eax
call fcn.005b28f2
add esp, 4
cmp dword [esp + 0x1bc], ebp
jb 0x5a37d9
mov ecx, dword [esp + 0x1a8]
push ecx
call fcn.005b28f2
add esp, 4
mov eax, esi
mov ecx, dword [esp + 0x1c4]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1ac]
xor ecx, esp
call fcn.005b2f9b
add esp, 0x1bc
ret 4