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

Disassembly:
push 0xffffffffffffffff
push 0x869516
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x4a4
push ebx
push ebp
mov ebp, ecx
mov ecx, dword [esp + 0x4bc]
mov eax, dword [ecx]
push esi
push edi
mov dword [esp + 0x54], ebp
call dword [eax + 8]
mov edi, eax
mov eax, dword [edi + 0x1c]
xor ebx, ebx
cmp eax, ebx
je 0x43e20a
mov ecx, dword [eax + 4]
push 0x4037e0
call fcn.005d59f0
cmp eax, ebx
setne cl
test cl, cl
je 0x43e20a
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x10]
cmp eax, ebx
mov dword [esp + 0x18], eax
je 0x43e20a
lea eax, [edi + 0x20]
mov ecx, dword [eax]
mov dword [esp + 0xbc], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0xc0], edx
mov eax, dword [eax + 8]
mov dword [esp + 0xc4], eax
add edi, 0x10
mov ecx, dword [edi]
mov dword [esp + 0x64], ecx
mov edx, dword [edi + 4]
mov dword [esp + 0x68], edx
mov eax, dword [edi + 8]
lea ecx, [esp + 0x10c]
mov dword [esp + 0x6c], eax
call fcn.0077b9e0
push 1
lea ecx, [esp + 0x110]
mov dword [esp + 0x4c0], ebx
call fcn.0076e2d0
push ebx
lea ecx, [esp + 0x110]
call fcn.007658a0
push ebx
push ebx
lea ecx, [esp + 0xc4]
push ecx
lea edx, [esp + 0x70]
mov esi, 2
push edx
lea ecx, [esp + 0x11c]
mov dword [esp + 0x194], esi
call fcn.007862d0
mov al, byte [esp + 0x15c]
test al, al
lea ecx, [esp + 0x10c]
je 0x43e1fa
push ebx
push 0x8a2fb4
push 0x437a0000
call fcn.0077bba0
movsx eax, word [esp + 0x19a]
mov edx, dword [0x9b38c0]
imul eax, eax, 0x16
movsx edi, byte [esp + 0x198]
mov ecx, dword [0x9b38b4]
add eax, edx
mov edx, eax
je 0x43e1f3
mov al, byte [edx + 0xa]
shr al, 1
not al
test al, 1
je 0x43e1f3
test byte [edx + 0xa], 1
jne 0x43e1f3
movzx eax, word [edx + 4]
mov dword [esp + 0x2c], eax
fild dword [esp + 0x2c]
fmul dword [0x8eb34c]
fcomp dword [0x891184]
fnstsw ax
test ah, 5
jnp 0x43e1f3
push edi
push edx
call fcn.00765410
cmp eax, ebx
je 0x43e1f3
cmp byte [eax], 0
je 0x43e1f3
mov ecx, dword [esp + 0x1bc]
mov edx, dword [esp + 0x1c0]
mov eax, dword [esp + 0x1c4]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x1b0]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x1b4]
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0x38]
mov dword [esp + 0x24], edx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x1b8]
push ecx
lea edx, [esp + 0x24]
push edx
mov dword [esp + 0x30], eax
call fcn.004100a0
fst dword [esp + 0x34]
fadd dword [0x89096c]
add esp, 8
fst dword [esp + 0x14]
fmul dword [0x8910f0]
call fcn.007c4b80
cmp eax, 6
jle 0x43df43
mov eax, 6
mov ecx, 3
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], ecx
mov ecx, 4
mov dword [esp + 0xa0], esi
mov dword [esp + 0xa4], esi
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xb8], 5
mov esi, dword [esp + eax*4 + 0xa0]
inc esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], ebx
push esi
lea ecx, [esp + 0x48]
mov byte [esp + 0x4c0], 1
call fcn.00438650
mov ebx, dword [esp + 0x4d0]
test ebx, ebx
je 0x43e02b
mov edi, dword [ebx + 4]
mov eax, dword [ebx + 0xc]
lea ecx, [edi + eax*4]
cmp edi, ecx
je 0x43e06c
mov ebp, dword [edi]
lea edx, [esp + 0x10]
push edx
mov ecx, ebp
mov dword [esp + 0x20], ebp
call fcn.0040e100
test al, al
je 0x43e000
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push 0
call fcn.004023c0
mov ecx, dword [esp + 0x14]
call dword [esi + 0x84]
mov esi, dword [esp + 0x34]
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0x80]
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x48]
call fcn.0043c4e0
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 4]
add edi, 4
lea eax, [edx + ecx*4]
cmp edi, eax
jne 0x43dfc8
jmp 0x43e06c
test esi, esi
jle 0x43e06c
mov edi, esi
push 1
push ecx
mov ecx, dword [0x92c52c]
mov eax, esp
mov dword [eax], ecx
mov ecx, ebp
mov dword [esp + 0x38], esp
call fcn.00426610
test eax, eax
mov dword [esp + 0x1c], eax
je 0x43e069
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x80]
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x48]
call fcn.0043c4e0
dec edi
jne 0x43e031
xor edi, edi
mov edi, edi
mov ebx, dword [esp + 0x48]
test ebx, ebx
mov ebp, dword [esp + 0x4c]
jne 0x43e080
xor eax, eax
jmp 0x43e087
mov eax, ebp
sub eax, ebx
sar eax, 2
cmp edi, eax
jge 0x43e0e0
mov ecx, dword [ebx + edi*4]
mov edx, dword [ecx]
call dword [edx + 0xac]
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x8c]
mov ecx, dword [ebx + edi*4]
mov eax, dword [ecx]
call dword [eax + 4]
push str.SoundAI
mov esi, eax
call fcn.005cc240
mov edx, dword [esi]
add esp, 4
push 3
mov ecx, esi
mov ebp, eax
call dword [edx + 0x34]
push eax
lea ecx, [esp + 0xa8]
call fcn.00405680
mov ecx, eax
mov dword [eax + 4], ebp
call fcn.0065faf0
mov esi, dword [esp + 0x34]
inc edi
jmp 0x43e070
test ebx, ebx
jne 0x43e0e8
xor ecx, ecx
jmp 0x43e0ef
mov ecx, ebp
sub ecx, ebx
sar ecx, 2
mov eax, esi
sub eax, ecx
test eax, eax
jle 0x43e139
mov edi, eax
lea esp, [esp]
push ecx
mov ecx, dword [0x92c52c]
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x34], esp
call fcn.00410e70
test eax, eax
mov dword [esp + 0x1c], eax
je 0x43e136
lea edx, [esp + 0x1c]
push edx
lea ecx, [esp + 0x48]
call fcn.0043c4e0
mov ebx, dword [esp + 0x48]
mov ebp, dword [esp + 0x4c]
dec edi
jne 0x43e100
test ebx, ebx
jne 0x43e141
xor ebp, ebp
jmp 0x43e146
sub ebp, ebx
sar ebp, 2
dec esi
cmp ebp, esi
jl 0x43e1e2
mov ecx, dword [esp + 0x18]
push 0
push 0x5a318af6
call fcn.00454810
xor edi, edi
cmp eax, edi
jne 0x43e16f
push 4
call fcn.006269b0
add esp, 4
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
call fcn.006ed200
mov ecx, eax
call fcn.00627320
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
mov byte [esp + 0x10], 1
fmul dword [0x890fc8]
fmul dword [0x890980]
fcomp dword [esp + 0x1c]
fnstsw ax
test ah, 5
jnp 0x43e1aa
mov byte [esp + 0x10], 0
mov esi, dword [esp + 0x4c4]
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x114]
cmp eax, 2
jne 0x43e1c5
mov byte [esp + 0x10], 0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
push eax
push ebp
push ecx
call fcn.004063d0
mov ecx, eax
add esp, 0xc
cmp ecx, edi
mov dword [esp + 0x18], ecx
jne 0x43e227
lea ecx, [esp + 0x44]
mov byte [esp + 0x4bc], 0
call fcn.0042ebb0
lea ecx, [esp + 0x10c]
mov dword [esp + 0x4bc], 0xffffffff
call fcn.0076e220
xor al, al
mov ecx, dword [esp + 0x4b4]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x4b0
ret 0x10
fld dword [esp + 0x28]
fsub dword [esp + 0x6c]
fld dword [esp + 0x24]
fsub dword [esp + 0x68]
fld dword [esp + 0x20]
fsub dword [esp + 0x64]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld st(3)
fmul st(4)
faddp st(1)
fstp st(3)
fstp st(0)
fstp st(0)
fld dword [esp + 0x40]
fsub dword [esp + 0x6c]
fld dword [esp + 0x3c]
fsub dword [esp + 0x68]
fld dword [esp + 0x38]
fsub dword [esp + 0x64]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld st(3)
fmul st(4)
faddp st(1)
fstp st(3)
fstp st(0)
fstp st(0)
fxch st(1)
fcomp st(1)
fnstsw ax
fstp st(0)
test ah, 0x41
jne 0x43e2ae
fld dword [esp + 0x20]
lea eax, [esp + 0x38]
fsub dword [esp + 0x38]
fld dword [esp + 0x24]
fsub dword [esp + 0x3c]
fld dword [esp + 0x28]
fsub dword [esp + 0x40]
jmp 0x43e2ca
fld dword [esp + 0x38]
lea eax, [esp + 0x20]
fsub dword [esp + 0x20]
fld dword [esp + 0x3c]
fsub dword [esp + 0x24]
fld dword [esp + 0x40]
fsub dword [esp + 0x28]
fstp dword [esp + 0x60]
fld dword [ecx]
fdiv dword [esp + 0x2c]
fmul dword [0x890634]
fstp dword [esp + 0x10]
fxch st(1)
fmul dword [esp + 0x10]
fstp dword [esp + 0x58]
fmul dword [esp + 0x10]
fld dword [esp + 0x60]
fmul dword [esp + 0x10]
fld dword [esp + 0x58]
fadd dword [eax]
fstp dword [esp + 0x94]
fxch st(1)
fadd dword [eax + 4]
fstp dword [esp + 0x98]
fadd dword [eax + 8]
fstp dword [esp + 0x9c]
fld dword [esp + 0x14]
fdiv dword [ecx]
fst dword [esp + 0x14]
fcomp dword [0x89096c]
fnstsw ax
test ah, 0x41
jne 0x43e34f
fld dword [esp + 0x14]
fld dword [0x892ed8]
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 5
jp 0x43e355
fstp st(0)
mov dword [esp + 0x2c], 0x3f91eb85
jmp 0x43e359
fld dword [0x89096c]
fstp dword [esp + 0x2c]
sub esp, 0x10
mov eax, esp
mov dword [esp + 0x40], esp
mov dword [eax], edi
push ecx
mov dword [eax + 4], edi
mov dword [eax + 8], edi
mov dword [esp + 0x44], esp
mov edi, esp
push str.AIRoadBlock
call fcn.005cc240
add esp, 4
mov dword [edi], eax
call fcn.0041cb50
mov ecx, dword [eax + 4]
add esp, 0x14
push 0x4038d0
call fcn.005d59f0
mov ecx, dword [esp + 0x54]
mov edx, dword [ecx + 0x2c]
mov ebp, eax
add ecx, 0x2c
push ebp
call dword [edx + 8]
mov eax, dword [esi]
push ebp
mov ecx, esi
call dword [eax + 0x80]
mov edx, dword [ebp]
push esi
mov ecx, ebp
call dword [edx + 0x18]
mov eax, dword [ebp]
lea ecx, [esp + 0x1c8]
push ecx
lea edx, [esp + 0x98]
push edx
mov ecx, ebp
call dword [eax + 0x40]
push 0
lea eax, [esp + 0x1cc]
push eax
lea ecx, [esp + 0xd4]
push ecx
call fcn.006f1220
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x24]
add esp, 0xc
mov ecx, 0x10
mov esi, eax
lea edi, [esp + 0x3f4]
add ebx, 8
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], ebx
mov esi, dword [ebx]
test esi, esi
je 0x43e6bb
fld dword [ebx + 8]
mov dword [esp + 0x5c], 0
fld dword [esp + 0x2c]
mov eax, dword [esp + 0x5c]
fmul dword [ebx + 4]
mov dword [esp + 0x80], eax
lea eax, [esp + 0x3f4]
fstp dword [esp + 0x58]
mov edx, dword [esp + 0x58]
mov dword [esp + 0x7c], edx
lea edx, [esp + 0x7c]
fstp dword [esp + 0x60]
mov ecx, dword [esp + 0x60]
push edx
mov dword [esp + 0x88], ecx
push eax
mov ecx, edx
push ecx
call fcn.00401670
fld dword [ebx + 0xc]
fmul dword [0x890510]
mov edx, dword [esp + 0x1d4]
mov ecx, dword [esp + 0x1dc]
mov dword [esp + 0x2c], edx
fld st(0)
mov dword [esp + 0x34], ecx
fsin
mov eax, dword [esp + 0x1d8]
add esp, 0xc
cmp esi, 1
mov dword [esp + 0x24], eax
fst dword [esp + 0x1c]
fstp dword [esp + 0x18]
fcos
fld dword [esp + 0x20]
fmul st(1)
fld dword [esp + 0x28]
fmul dword [esp + 0x18]
fsubp st(1)
fld dword [esp + 0x28]
fmul st(2)
fld dword [esp + 0x20]
fmul dword [esp + 0x1c]
faddp st(1)
fstp dword [esp + 0x18]
mov edx, dword [esp + 0x18]
fstp st(1)
mov dword [esp + 0x28], edx
fstp dword [esp + 0x20]
fld dword [esp + 0x7c]
fadd dword [esp + 0x94]
fstp dword [esp + 0x88]
fld dword [esp + 0x80]
fadd dword [esp + 0x98]
fstp dword [esp + 0x8c]
fld dword [esp + 0x84]
fadd dword [esp + 0x9c]
fstp dword [esp + 0x90]
je 0x43e712
jle 0x43e6a2
cmp esi, 3
jg 0x43e6a2
cmp esi, 2
jne 0x43e545
push 0x9663ad06
push str.XO_Sawhorse_1b_00
call fcn.006816a0
add esp, 8
mov ebx, eax
jmp 0x43e58e
push 0xca89ef8f
push str.XO_SpikeBelt_1b_DW_00
call fcn.006816a0
add esp, 8
push str.Position
lea ecx, [esp + 0x34]
mov ebx, eax
call fcn.004023c0
mov eax, dword [esp + 0x10]
fld dword [eax + 4]
call fcn.007c4b80
push eax
lea ecx, [esp + 0xa4]
call fcn.00405a40
mov ecx, dword [esp + 0x30]
mov dword [eax + 4], ecx
mov ecx, eax
call fcn.0065faf0
test ebx, ebx
je 0x43e69e
lea edx, [esp + 0x70]
push edx
lea eax, [esp + 0xcc]
push eax
lea ecx, [esp + 0x90]
push ecx
lea ecx, [esp + 0x44]
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 3
call fcn.00789870
test al, al
je 0x43e617
fld dword [esp + 0x74]
fcomp dword [0x890968]
fnstsw ax
test ah, 5
jp 0x43e603
fld dword [esp + 0x70]
fmul dword [0x890da8]
fstp dword [esp + 0x70]
fld dword [esp + 0x74]
fmul dword [0x890da8]
fstp dword [esp + 0x74]
fld dword [esp + 0x78]
fmul dword [0x890da8]
fstp dword [esp + 0x78]
lea edx, [esp + 0x70]
push edx
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x47c]
push ecx
jmp 0x43e626
push 0
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x43c]
push eax
call fcn.006f1220
mov edx, dword [ebp]
mov esi, eax
mov eax, dword [esp + 0x1c]
lea edi, [esp + 0xd8]
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [eax]
add esp, 0xc
cmp ecx, 3
sete cl
push ecx
push ebx
mov ecx, ebp
call dword [edx + 8]
mov ecx, dword [esp + 0x4c4]
mov edx, dword [ecx]
call dword [edx + 0x100]
mov ecx, dword [esp + 0x8c]
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x90]
mov dword [esp + 0x100], ecx
push 1
lea ecx, [esp + 0xd0]
mov dword [esp + 0x100], eax
mov eax, dword [ebx]
push ecx
mov ecx, ebx
mov dword [esp + 0x10c], edx
call dword [eax + 8]
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
inc eax
add ebx, 0x10
cmp eax, 6
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebx
jl 0x43e412
mov ecx, dword [esp + 0x4c4]
mov edx, dword [ecx]
call dword [edx + 0xec]
mov ecx, dword [esp + 0x48]
test ecx, ecx
mov byte [esp + 0x4bc], 0
je 0x43e6f4
mov eax, dword [esp + 0x50]
sub eax, ecx
sar eax, 2
push 0
shl eax, 2
push eax
push ecx
mov ecx, 0x925b30
call fcn.005d0370
lea ecx, [esp + 0x10c]
mov dword [esp + 0x4bc], 0xffffffff
call fcn.0076e220
mov al, 1
jmp 0x43e20c
mov eax, dword [esp + 0x34]
mov esi, dword [eax]
mov edx, dword [esi]
add eax, 4
mov ecx, esi
mov dword [esp + 0x34], eax
call dword [edx + 0x80]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0xac]
mov edi, eax
mov edx, dword [edi]
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x8c]
push ecx
mov ecx, edi
call dword [edx + 0x5c]
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 0x88]
mov eax, dword [ebp]
push esi
mov ecx, ebp
call dword [eax + 4]
mov eax, dword [esp + 0x54]
inc dword [eax + 0x94]
jmp 0x43e6a2