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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x124
push ebx
fldz
push esi
mov esi, ecx
mov eax, dword [esi + 0x26c]
fstp dword [esi + 0x36c]
mov eax, dword [eax + 0x7c]
xor ebx, ebx
mov byte [eax + 0x64], bl
mov ecx, dword [esi + 0x12c]
push edi
call fcn.0044e9bf
fld dword [ebp + 8]
push ecx
mov ecx, esi
fstp dword [esp]
call fcn.00431493
cmp byte [ebp + 0x10], bl
je 0x436cb0
call fcn.00401d12
mov ecx, dword [eax + 0x58]
call fcn.00401247
fdivr qword [0x641c08]
fstp dword [esp + 0x44]
call fcn.00405f37
fld dword [esp + 0x44]
fmul dword [eax + 0x64]
mov byte [esp + 0x1b], 1
fstp dword [esp + 0x44]
call fcn.00401d12
mov eax, dword [eax + 0x58]
fld dword [esi + 0xb8]
push ecx
mov ecx, eax
fstp dword [esp]
call fcn.0044ac4a
fstp dword [esi + 0xb8]
call fcn.00401d12
fld dword [ebp + 0xc]
mov eax, dword [eax + 0x58]
push ebx
push ecx
push ecx
fstp dword [esp + 4]
lea ecx, [esp + 0x28]
fld dword [esi + 0xb8]
fstp dword [esp]
push ecx
mov ecx, eax
call fcn.00449ae8
mov eax, dword [esi + 0x26c]
mov ecx, dword [eax + 0x7c]
mov eax, dword [ecx]
call dword [eax + 0x3c]
test eax, eax
jne 0x4369f5
call fcn.00405f37
mov eax, dword [eax + 0x58]
jmp 0x4369fd
call fcn.00405f37
mov eax, dword [eax + 0x5c]
mov dword [esp + 0x48], eax
mov eax, dword [esi + 0x26c]
mov ecx, dword [eax + 0x7c]
mov eax, dword [ecx]
call dword [eax + 0x3c]
fld dword [esp + 0x48]
mov ecx, dword [ebp + 0xc]
neg eax
sbb eax, eax
inc eax
push eax
sub esp, 0xc
fstp dword [esp + 8]
mov eax, esp
fld dword [esi + 0xb8]
mov dword [eax], ecx
fstp dword [eax + 4]
call fcn.0042c850
add esp, 0x10
cmp al, bl
je 0x436a94
fld dword [esi + 0xa8]
push ecx
fsub dword [esp + 0x48]
mov ecx, esi
fstp dword [esp]
call fcn.00431493
call fcn.00401d12
fld dword [ebp + 0xc]
mov eax, dword [eax + 0x58]
push ebx
push ecx
push ecx
fstp dword [esp + 4]
lea ecx, [esp + 0xe4]
fld dword [esi + 0xb8]
fstp dword [esp]
push ecx
mov ecx, eax
call fcn.00449ae8
mov ecx, dword [eax]
mov dword [esp + 0x1c], ecx
mov ecx, dword [eax + 4]
mov dword [esp + 0x20], ecx
mov eax, dword [eax + 8]
mov dword [esp + 0x24], eax
jmp 0x436967
call fcn.004012af
lea ecx, [eax + 0x4c]
call fcn.0044fbd0
cmp eax, ebx
mov dword [esp + 0x50], eax
mov dword [esp + 0x40], ebx
jle 0x436cb0
call fcn.004012af
mov eax, dword [eax + 0x50]
mov ecx, dword [esp + 0x40]
lea eax, [eax + ecx*4]
mov edi, dword [eax]
cmp edi, esi
je 0x436c94
lea eax, [esp + 0x28]
push eax
mov eax, dword [edi + 0x12c]
mov ecx, dword [eax + 8]
call fcn.0046d826
fld dword [esp + 0x28]
fsub dword [esp + 0x1c]
fld dword [esp + 0x2c]
fsub dword [esp + 0x20]
fld dword [esp + 0x30]
fsub dword [esp + 0x24]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld st(3)
fmul st(4)
faddp st(1)
fcomp dword [0x6485cc]
fstp st(0)
fnstsw ax
fstp st(0)
test ah, 5
fstp st(0)
jp 0x436b6c
fld dword [esi + 0xa8]
push ecx
fsub dword [esp + 0x48]
mov ecx, esi
fstp dword [esp]
call fcn.00431493
mov byte [esp + 0x1b], bl
call fcn.00401d12
fld dword [ebp + 0xc]
mov eax, dword [eax + 0x58]
push ebx
push ecx
push ecx
fstp dword [esp + 4]
lea ecx, [esp + 0x64]
fld dword [esi + 0xb8]
fstp dword [esp]
push ecx
mov ecx, eax
call fcn.00449ae8
mov ecx, dword [eax]
mov dword [esp + 0x1c], ecx
mov ecx, dword [eax + 4]
mov dword [esp + 0x20], ecx
mov eax, dword [eax + 8]
mov dword [esp + 0x24], eax
mov eax, dword [edi + 0x12c]
fld dword [eax + 0x33c]
fcomp dword [0x643210]
fnstsw ax
test ah, 0x41
jne 0x436c94
mov eax, dword [edi + 0x26c]
mov eax, dword [eax + 0x4c]
mov dword [esp + 0x4c], eax
call fcn.00401d12
mov ecx, dword [eax + 0x58]
call fcn.00401247
fdivr qword [0x641c08]
fild dword [esp + 0x4c]
fsub dword [esi + 0xa8]
fdivrp st(1)
fcom dword [0x641de0]
fnstsw ax
test ah, 5
jp 0x436c92
fcomp dword [0x6485c8]
fnstsw ax
test ah, 0x41
jne 0x436c94
fld dword [edi + 0xc4]
push ecx
fsub dword [ebp + 0xc]
push ecx
fstp qword [esp]
call fcn.00600e84
fld st(0)
pop ecx
fcomp dword [0x643218]
pop ecx
fnstsw ax
fstp st(0)
test ah, 5
jp 0x436c94
fld dword [0x6431e4]
fld dword [ebp + 0xc]
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x436c1b
fld dword [0x645250]
jmp 0x436c21
fld dword [str.fff_]
fsub dword [ebp + 0xc]
fstp dword [ebp + 0xc]
fld dword [ebp + 0xc]
fcomp dword [0x641de0]
fnstsw ax
test ah, 5
jnp 0x436c47
fld dword [ebp + 0xc]
fcomp dword [0x6419bc]
fnstsw ax
test ah, 0x41
jne 0x436c4c
fstp dword [ebp + 0xc]
jmp 0x436c4e
fstp st(0)
mov byte [esp + 0x1b], bl
call fcn.00401d12
fld dword [ebp + 0xc]
mov eax, dword [eax + 0x58]
push ebx
push ecx
push ecx
fstp dword [esp + 4]
lea ecx, [esp + 0xf0]
fld dword [esi + 0xb8]
fstp dword [esp]
push ecx
mov ecx, eax
call fcn.00449ae8
mov ecx, dword [eax]
mov dword [esp + 0x1c], ecx
mov ecx, dword [eax + 4]
mov dword [esp + 0x20], ecx
mov eax, dword [eax + 8]
mov dword [esp + 0x24], eax
jmp 0x436c94
fstp st(0)
inc dword [esp + 0x40]
mov eax, dword [esp + 0x40]
cmp eax, dword [esp + 0x50]
jl 0x436ab1
cmp byte [esp + 0x1b], bl
je 0x436967
fldz
fstp dword [esp + 0x34]
fldz
fstp dword [esp + 0x38]
fldz
fstp dword [esp + 0x3c]
fldz
fstp dword [esp + 0x64]
fldz
fstp dword [esp + 0x68]
fldz
fstp dword [esp + 0x6c]
call fcn.00401d12
fld dword [ebp + 0xc]
mov eax, dword [eax + 0x58]
lea ecx, [esp + 0x64]
push ecx
push ecx
push ecx
fstp dword [esp + 4]
lea ecx, [esp + 0xf0]
fld dword [esi + 0xb8]
fstp dword [esp]
push ecx
mov ecx, eax
call fcn.00449ae8
mov ecx, dword [eax]
mov dword [esp + 0x34], ecx
mov ecx, dword [eax + 4]
mov dword [esp + 0x38], ecx
mov eax, dword [eax + 8]
mov dword [esp + 0x3c], eax
call fcn.00401d12
fld dword [esp + 0x34]
mov edi, dword [eax + 0x54]
fld st(0)
fst dword [esp + 0x28]
lea ecx, [esp + 0xb0]
fld dword [esp + 0x38]
push ecx
fadd dword [0x6431f4]
lea ecx, [esp + 0xf4]
push ecx
lea ecx, [esp + 0x23]
fst dword [esp + 0x34]
mov dword [esp + 0x11c], ebx
fld dword [esp + 0x44]
push ecx
fst dword [esp + 0x3c]
mov eax, dword [esp + 0x3c]
fld st(3)
mov dword [esp + 0x104], eax
fstp dword [esp + 0x28]
mov eax, dword [esp + 0x28]
fld dword [esp + 0x44]
mov dword [esp + 0x10c], eax
fsub dword [0x6431f4]
mov ecx, edi
fstp dword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x110], eax
fstp dword [esp + 0x30]
mov eax, dword [esp + 0x30]
fld st(1)
mov dword [esp + 0x114], eax
fstp dword [esp + 0xfc]
fst dword [esp + 0x100]
fstp st(0)
fstp st(0)
fstp st(0)
fldz
fstp dword [esp + 0x108]
fldz
fstp dword [esp + 0x118]
fld1
fstp dword [esp + 0xd0]
mov eax, dword [edi]
call dword [eax + 0x20]
cmp byte [eax], bl
je 0x436e52
fld dword [esp + 0x1c]
fsub dword [esp + 0x28]
fld dword [esp + 0x20]
fsub dword [esp + 0x2c]
fld dword [esp + 0x24]
fsub dword [esp + 0x30]
fstp dword [esp + 0x60]
fld st(1)
fmul dword [esp + 0xc4]
fstp dword [esp + 0x1c]
fmul dword [esp + 0xc4]
fstp dword [esp + 0x20]
fstp st(0)
fld dword [esp + 0x60]
fmul dword [esp + 0xc4]
fld dword [esp + 0x1c]
fadd dword [esp + 0x28]
fld dword [esp + 0x20]
fadd dword [esp + 0x2c]
fld st(2)
fadd dword [esp + 0x30]
fstp dword [esp + 0x60]
mov eax, dword [esp + 0x60]
fld st(1)
mov dword [esp + 0x3c], eax
fstp dword [esp + 0x34]
fst dword [esp + 0x38]
fstp st(0)
fstp st(0)
fstp st(0)
jmp 0x436f0e
fld dword [esp + 0x34]
lea ecx, [esp + 0xb0]
fld st(0)
push ecx
fst dword [esp + 0x2c]
lea ecx, [esp + 0x74]
fld dword [esp + 0x3c]
push ecx
fadd dword [0x643220]
lea ecx, [esp + 0x23]
push ecx
mov ecx, edi
fst dword [esp + 0x38]
mov dword [esp + 0xa0], ebx
fld dword [esp + 0x48]
fst dword [esp + 0x3c]
mov eax, dword [esp + 0x3c]
fld st(3)
mov dword [esp + 0x84], eax
fstp dword [esp + 0x28]
mov eax, dword [esp + 0x28]
fld dword [esp + 0x44]
mov dword [esp + 0x8c], eax
fsub dword [0x643220]
fstp dword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x90], eax
fstp dword [esp + 0x30]
mov eax, dword [esp + 0x30]
fld st(1)
mov dword [esp + 0x94], eax
mov eax, dword [edi]
fstp dword [esp + 0x7c]
fst dword [esp + 0x80]
fstp st(0)
fstp st(0)
fstp st(0)
fldz
fstp dword [esp + 0x88]
fldz
fstp dword [esp + 0x98]
call dword [eax + 0x20]
cmp byte [eax], bl
jne 0x436dda
push str.Bike::ResetBikeToTrackSpacePosition:_Could_not_find_a_valid_starting_point____n
call fcn.0044ffcd
pop ecx
fld dword [esp + 0x6c]
push ecx
push ecx
fstp dword [esp + 4]
fld dword [esp + 0x6c]
fstp dword [esp]
call fcn.00405c36
pop ecx
pop ecx
fsub dword [0x646864]
push 0x6a2b1c
lea eax, [esp + 0x54]
push eax
fstp dword [esp + 0x58]
lea ecx, [esp + 0xa8]
call fcn.0041b253
fld dword [esp + 0x34]
mov eax, dword [esp + 0xa0]
mov dword [esi + 0x14], eax
mov eax, dword [esp + 0xa4]
mov dword [esi + 0x18], eax
mov eax, dword [esp + 0xa8]
mov dword [esi + 0x1c], eax
mov eax, dword [esp + 0xac]
mov dword [esi + 0x20], eax
fst dword [esi + 8]
fld dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
fst dword [esi + 0xc]
mov dword [esi + 0x10], eax
fld st(1)
mov dword [esi + 0xd4], eax
fstp dword [esi + 0xcc]
mov dword [esp + 0x4c], ebx
fstp dword [esi + 0xd0]
fstp st(0)
fild dword [esp + 0x4c]
mov eax, dword [esi + 0x12c]
mov edi, dword [eax + 0x3c]
mov byte [esp + 0x1b], bl
fmul dword [0x648570]
mov dword [esp + 0x48], ebx
mov dword [esp + 0x40], ebx
fsubr dword [0x6431e4]
fstp dword [esp + 0x44]
mov eax, dword [edi + 0x10]
add eax, dword [esp + 0x40]
lea ecx, [esi + 0x14]
fld dword [eax]
fld dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x128], eax
fld st(1)
fstp dword [esp + 0x28]
mov dword [esp + 0x30], eax
lea eax, [esp + 0x28]
push eax
fst dword [esp + 0x30]
lea eax, [esp + 0xe8]
fstp st(0)
push eax
fstp st(0)
call fcn.00425d35
fld dword [esi + 8]
fadd dword [eax]
lea ecx, [esp + 0x1c]
fld dword [eax + 4]
fadd dword [esi + 0xc]
fstp dword [esp + 0x5c]
fld dword [eax + 8]
mov eax, dword [edi + 0x1c]
fadd dword [esi + 0x10]
add eax, dword [esp + 0x40]
fld st(1)
fstp dword [esp + 0x28]
fld dword [esp + 0x5c]
fadd dword [esp + 0x44]
fstp dword [esp + 0x2c]
fst dword [esp + 0x30]
fstp st(0)
fstp st(0)
fld dword [eax]
fld dword [eax + 4]
mov eax, dword [eax + 8]
fld st(1)
mov dword [esp + 0xb8], eax
fstp dword [esp + 0x1c]
mov dword [esp + 0x24], eax
fst dword [esp + 0x20]
fstp st(0)
fstp st(0)
call fcn.00552c80
mov eax, dword [esi + 0x12c]
mov eax, dword [eax + 0x24]
mov ecx, dword [eax + 0x10]
mov eax, dword [esp + 0x48]
fld dword [ecx + eax]
mov edx, dword [edi + 0x28]
fadd dword [edx + eax]
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0xa4]
fmul qword [0x648568]
fld dword [esp + 0x20]
push eax
lea ecx, [esi + 0x14]
fmul st(1)
fstp dword [esp + 0x24]
fld dword [esp + 0x28]
fmul st(1)
fstp dword [esp + 0x28]
fld dword [esp + 0x2c]
fmul st(1)
fstp dword [esp + 0x2c]
fstp st(0)
call fcn.00425d35
mov ecx, dword [eax]
fld dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
fld dword [esp + 0x1c]
mov ecx, dword [eax + 4]
fadd st(1)
mov dword [esp + 0x20], ecx
mov eax, dword [eax + 8]
mov dword [esp + 0x24], eax
fld dword [esp + 0x20]
mov eax, dword [esp + 0x2c]
fadd dword [esp + 0x2c]
mov dword [esp + 0x74], eax
fld dword [esp + 0x30]
mov dword [esp + 0x94], ebx
fld dword [esp + 0x24]
fadd st(1)
fstp dword [esp + 0xe0]
mov eax, dword [esp + 0xe0]
fld st(3)
mov dword [esp + 0x88], eax
fstp dword [esp + 0x70]
fstp dword [esp + 0x78]
fldz
fstp dword [esp + 0x7c]
fld st(1)
fstp dword [esp + 0x80]
fst dword [esp + 0x84]
fstp st(0)
fstp st(0)
fstp st(0)
fldz
fstp dword [esp + 0x8c]
fld1
fstp dword [esp + 0x104]
call fcn.00401d12
mov ecx, dword [eax + 0x54]
mov eax, dword [ecx]
lea edx, [esp + 0xf0]
push edx
lea edx, [esp + 0x74]
push edx
lea edx, [esp + 0x5f]
push edx
call dword [eax + 0x20]
cmp byte [eax], bl
je 0x43716b
mov byte [esp + 0x1b], 1
add dword [esp + 0x40], 0x10
add dword [esp + 0x48], 4
cmp dword [esp + 0x40], 0x20
jl 0x436fc6
cmp byte [esp + 0x1b], bl
jne 0x437197
inc dword [esp + 0x4c]
cmp dword [esp + 0x4c], 0x10
jl 0x436f9d
jmp 0x4371a5
fld dword [esp + 0x44]
fadd dword [0x648570]
fstp dword [esp + 0x44]
fld dword [esp + 0x34]
fst dword [esp + 0x34]
fld dword [esp + 0x38]
fadd dword [esp + 0x44]
fst dword [esp + 0x38]
fld dword [esp + 0x3c]
fst dword [esp + 0x3c]
mov eax, dword [esp + 0x3c]
fld st(2)
fstp dword [esi + 8]
fld st(1)
fstp dword [esi + 0xc]
fstp dword [esi + 0x10]
mov dword [esi + 0xd4], eax
fld st(1)
lea eax, [esp + 0x34]
fstp dword [esi + 0xcc]
push eax
fstp dword [esi + 0xd0]
mov eax, dword [esi + 0x12c]
mov ecx, dword [eax + 8]
fstp st(0)
call fcn.0046d7ef
mov eax, dword [esi + 0x12c]
mov ecx, dword [eax + 8]
lea edi, [esi + 0x14]
push edi
call fcn.0046d850
mov eax, dword [esi + 0x5c]
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 8]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx]
lea edx, [esp + 0x34]
push edx
call dword [eax + 8]
mov eax, dword [esi + 0x5c]
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 8]
mov eax, dword [eax + ecx*4]
push 0x6c0944
lea ecx, [esp + 0xb4]
mov dword [esp + 0x54], eax
mov eax, dword [eax]
push ecx
mov ecx, edi
mov dword [esp + 0x50], eax
call fcn.0041b2a6
mov ecx, dword [esp + 0x50]
push eax
mov eax, dword [esp + 0x4c]
call dword [eax + 0x10]
fldz
fstp dword [esp + 0x28]
lea eax, [esp + 0x28]
fldz
push eax
mov eax, dword [esi + 0x12c]
fstp dword [esp + 0x30]
fldz
fstp dword [esp + 0x34]
mov ecx, dword [eax + 8]
call fcn.0046d8eb
fldz
fstp dword [esp + 0x28]
lea eax, [esp + 0x28]
fldz
push eax
mov eax, dword [esi + 0x12c]
fstp dword [esp + 0x30]
fldz
fstp dword [esp + 0x34]
mov ecx, dword [eax + 8]
call fcn.0046d950
fldz
mov eax, dword [esi + 0x26c]
fstp dword [esi + 0x270]
cmp eax, ebx
je 0x4372bf
mov eax, dword [eax + 0x7c]
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x1c]
fldz
lea eax, [esi + 0x1f4]
fstp dword [esi + 0x1a4]
push esi
fldz
push str.bike_reset_to_track
fstp dword [esi + 0x1f0]
fldz
mov ecx, dword [0x6a8694]
mov dword [eax], ecx
mov ecx, dword [0x6a8698]
mov dword [eax + 4], ecx
mov ecx, dword [0x6a869c]
mov dword [eax + 8], ecx
mov ecx, dword [0x6a86a0]
mov dword [eax + 0xc], ecx
fstp dword [esi + 0x204]
mov ecx, dword [0x6a8694]
fldz
lea eax, [esi + 0x208]
mov dword [eax], ecx
mov ecx, dword [0x6a8698]
mov dword [eax + 4], ecx
mov ecx, dword [0x6a869c]
mov dword [eax + 8], ecx
mov ecx, dword [0x6a86a0]
mov dword [eax + 0xc], ecx
fstp dword [esi + 0x1ec]
fldz
mov byte [esi + 0x1dc], bl
fstp dword [esi + 0x1d8]
mov dword [esi + 0x1e8], ebx
fldz
mov byte [esi + 0x25c], bl
fstp dword [esi + 0x1d4]
mov dword [esi + 0x260], ebx
fldz
mov byte [esi + 0x25d], bl
fstp dword [esi + 0x294]
fldz
fstp dword [esi + 0x298]
call fcn.004067fb
mov ecx, eax
call fcn.0046b470
push eax
push ebx
call fcn.004067fb
mov ecx, eax
call fcn.0046a423
pop edi
mov byte [esi + 0x430], bl
mov byte [esi + 0xf8], 1
mov dword [esi + 0x414], 5
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc