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

Disassembly:
sub esp, 0x154
push ebx
push ebp
push esi
push edi
mov edi, ecx
xor ebx, ebx
push ebx
lea ecx, [edi + 0x347c]
call fcn.004c88b0
push ebx
lea ecx, [edi + 0x3484]
call fcn.004c88b0
mov eax, dword [0xab5a58]
inc eax
cmp eax, 0xf0
mov dword [0xab5a58], eax
jbe 0x4c40cf
mov ebp, dword [0x5b6f50]
xor ecx, ecx
xor esi, esi
mov al, byte [ecx + str.SmoTheOneWasHere]
cmp al, 0x39
jbe 0x4c4086
and eax, 0xff
sub eax, 0x41
jmp 0x4c408e
and eax, 0xff
sub eax, 0x16
movsx eax, byte [esi + eax + 0x5a7ac0]
cmp eax, 0x20
mov dword [ecx*4 + 0xab5b60], eax
jne 0x4c40a9
mov byte [0xaab48c], 1
mov dl, byte [ecx + 0x5a80d4]
add esi, 0x24
sub eax, edx
sub eax, ebp
and eax, 0x1f
mov dword [ecx*4 + 0xab5b60], eax
shr ebp, 2
inc ecx
cmp ecx, 0x10
jb 0x4c4072
mov dword [0xab5a58], ebx
mov ecx, dword [edi + 0x36cc]
cmp ecx, ebx
je 0x4c46e0
call fcn.005057c0
test al, al
jne 0x4c40fe
push str.Contact_object_is_DEAD___n
call fcn.00535ef0
mov ecx, dword [edi + 0x36cc]
add esp, 4
jmp 0x4c46cf
mov eax, dword [edi + 0x36cc]
mov esi, dword [eax]
cmp esi, ebx
je 0x4c4194
push fcn.00402a70
push 4
lea ecx, [esp + 0xbc]
push 0x10
push ecx
call fcn.00404450
lea edx, [esi + 0x554]
lea ecx, [esp + 0xb4]
push edx
call fcn.00403a00
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x44]
mov edx, dword [esi + 0x48]
mov dword [esp + 0xe4], eax
lea eax, [esp + 0xb4]
mov dword [esp + 0xe8], ecx
mov ecx, dword [edi + 0x37d0]
push eax
mov dword [esp + 0xc4], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xe4], 0
mov dword [esp + 0xf0], edx
mov dword [esp + 0xf4], 0x3f800000
call fcn.004b0650
mov ecx, dword [edi + 0x634]
push ecx
mov ecx, dword [edi + 0x36cc]
call fcn.005057d0
mov ecx, dword [edi + 0x36cc]
test al, al
je 0x4c46cb
call fcn.00505a80
push eax
lea ecx, [esp + 0x40]
call fcn.00499d60
mov eax, dword [edi + 0x634]
fld dword [esp + 0x3c]
fadd dword [eax]
fstp dword [eax]
fld dword [esp + 0x40]
fadd dword [eax + 4]
fstp dword [eax + 4]
fld dword [esp + 0x44]
fadd dword [eax + 8]
fstp dword [eax + 8]
fld dword [esp + 0x48]
fadd dword [eax + 0xc]
fstp dword [eax + 0xc]
mov ecx, dword [edi + 0x36cc]
call fcn.00505a90
test al, al
je 0x4c46e0
mov ecx, dword [edi + 0x36cc]
call fcn.00505aa0
mov ebp, dword [edi + 0x634]
lea ecx, [esp + 0x18]
mov esi, eax
add ebp, 0x40
call fcn.00402a70
fld dword [ebp]
fmul dword [esi]
fld dword [ebp + 0xc]
fmul dword [esi + 0x30]
lea edx, [esp + 0x18]
mov ecx, ebp
push edx
faddp st(1)
fld dword [ebp + 8]
fmul dword [esi + 0x20]
faddp st(1)
fld dword [ebp + 4]
fmul dword [esi + 0x10]
faddp st(1)
fstp dword [esp + 0x1c]
fld dword [esi + 0x24]
fmul dword [ebp + 8]
fld dword [ebp + 4]
fmul dword [esi + 0x14]
faddp st(1)
fld dword [ebp]
fmul dword [esi + 4]
faddp st(1)
fld dword [esi + 0x34]
fmul dword [ebp + 0xc]
faddp st(1)
fstp dword [esp + 0x20]
fld dword [ebp]
fmul dword [esi + 8]
fld dword [ebp + 0xc]
fmul dword [esi + 0x38]
faddp st(1)
fld dword [ebp + 8]
fmul dword [esi + 0x28]
faddp st(1)
fld dword [ebp + 4]
fmul dword [esi + 0x18]
faddp st(1)
fstp dword [esp + 0x24]
fld dword [esi + 0x1c]
fmul dword [ebp + 4]
fld dword [ebp]
fmul dword [esi + 0xc]
faddp st(1)
fld dword [ebp + 0xc]
fmul dword [esi + 0x3c]
faddp st(1)
fld dword [ebp + 8]
fmul dword [esi + 0x2c]
faddp st(1)
fstp dword [esp + 0x28]
call fcn.00499d60
fld dword [esi + 0x30]
fmul dword [ebp + 0x1c]
fld dword [ebp + 0x14]
fmul dword [esi + 0x10]
lea ecx, [ebp + 0x10]
faddp st(1)
fld dword [ebp + 0x18]
fmul dword [esi + 0x20]
faddp st(1)
fld dword [ecx]
fmul dword [esi]
faddp st(1)
fstp dword [esp + 0x18]
fld dword [esi + 0x34]
fmul dword [ebp + 0x1c]
fld dword [esi + 0x24]
fmul dword [ebp + 0x18]
faddp st(1)
fld dword [ebp + 0x14]
fmul dword [esi + 0x14]
faddp st(1)
fld dword [esi + 4]
fmul dword [ecx]
lea eax, [esp + 0x18]
push eax
faddp st(1)
fstp dword [esp + 0x20]
fld dword [ebp + 0x1c]
fmul dword [esi + 0x38]
fld dword [ebp + 0x18]
fmul dword [esi + 0x28]
faddp st(1)
fld dword [esi + 8]
fmul dword [ecx]
faddp st(1)
fld dword [ebp + 0x14]
fmul dword [esi + 0x18]
faddp st(1)
fstp dword [esp + 0x24]
fld dword [ebp + 0x14]
fmul dword [esi + 0x1c]
fld dword [esi + 0xc]
fmul dword [ecx]
faddp st(1)
fld dword [ebp + 0x1c]
fmul dword [esi + 0x3c]
faddp st(1)
fld dword [ebp + 0x18]
fmul dword [esi + 0x2c]
faddp st(1)
fstp dword [esp + 0x28]
call fcn.00499d60
fld dword [esi + 0x30]
fmul dword [ebp + 0x2c]
fld dword [ebp + 0x24]
fmul dword [esi + 0x10]
lea ecx, [ebp + 0x20]
lea edx, [esp + 0x18]
push edx
faddp st(1)
fld dword [ebp + 0x28]
fmul dword [esi + 0x20]
faddp st(1)
fld dword [ecx]
fmul dword [esi]
faddp st(1)
fstp dword [esp + 0x1c]
fld dword [esi + 0x34]
fmul dword [ebp + 0x2c]
fld dword [esi + 0x24]
fmul dword [ebp + 0x28]
faddp st(1)
fld dword [ebp + 0x24]
fmul dword [esi + 0x14]
faddp st(1)
fld dword [esi + 4]
fmul dword [ecx]
faddp st(1)
fstp dword [esp + 0x20]
fld dword [ebp + 0x2c]
fmul dword [esi + 0x38]
fld dword [ebp + 0x28]
fmul dword [esi + 0x28]
faddp st(1)
fld dword [esi + 8]
fmul dword [ecx]
faddp st(1)
fld dword [ebp + 0x24]
fmul dword [esi + 0x18]
faddp st(1)
fstp dword [esp + 0x24]
fld dword [ebp + 0x24]
fmul dword [esi + 0x1c]
fld dword [esi + 0xc]
fmul dword [ecx]
faddp st(1)
fld dword [ebp + 0x2c]
fmul dword [esi + 0x3c]
faddp st(1)
fld dword [ebp + 0x28]
fmul dword [esi + 0x2c]
faddp st(1)
fstp dword [esp + 0x28]
call fcn.00499d60
fld dword [esi + 0x30]
fmul dword [ebp + 0x3c]
fld dword [ebp + 0x34]
fmul dword [esi + 0x10]
lea ecx, [ebp + 0x30]
lea eax, [esp + 0x18]
push eax
faddp st(1)
fld dword [ebp + 0x38]
fmul dword [esi + 0x20]
faddp st(1)
fld dword [ecx]
fmul dword [esi]
faddp st(1)
fstp dword [esp + 0x1c]
fld dword [esi + 0x34]
fmul dword [ebp + 0x3c]
fld dword [esi + 0x24]
fmul dword [ebp + 0x38]
faddp st(1)
fld dword [ebp + 0x34]
fmul dword [esi + 0x14]
faddp st(1)
fld dword [esi + 4]
fmul dword [ecx]
faddp st(1)
fstp dword [esp + 0x20]
fld dword [ebp + 0x3c]
fmul dword [esi + 0x38]
fld dword [ebp + 0x38]
fmul dword [esi + 0x28]
faddp st(1)
fld dword [esi + 8]
fmul dword [ecx]
faddp st(1)
fld dword [ebp + 0x34]
fmul dword [esi + 0x18]
faddp st(1)
fstp dword [esp + 0x24]
fld dword [ebp + 0x34]
fmul dword [esi + 0x1c]
fld dword [esi + 0xc]
fmul dword [ecx]
faddp st(1)
fld dword [ebp + 0x3c]
fmul dword [esi + 0x3c]
faddp st(1)
fld dword [ebp + 0x38]
fmul dword [esi + 0x2c]
faddp st(1)
fstp dword [esp + 0x28]
call fcn.00499d60
mov ecx, dword [edi + 0x36cc]
call fcn.00505aa0
mov ebp, dword [edi + 0x634]
lea ecx, [esp + 0x18]
mov esi, eax
add ebp, 0x80
call fcn.00402a70
fld dword [esi + 0x30]
fmul dword [ebp + 0xc]
fld dword [ebp + 8]
fmul dword [esi + 0x20]
faddp st(1)
fld dword [ebp + 4]
fmul dword [esi + 0x10]
faddp st(1)
fld dword [esi]
fmul dword [ebp]
faddp st(1)
fstp dword [esp + 0x18]
fld dword [ebp + 8]
fmul dword [esi + 0x24]
fld dword [ebp + 4]
fmul dword [esi + 0x14]
faddp st(1)
fld dword [esi + 4]
fmul dword [ebp]
faddp st(1)
fld dword [esi + 0x34]
fmul dword [ebp + 0xc]
lea ecx, [esp + 0x18]
push ecx
mov ecx, ebp
faddp st(1)
fstp dword [esp + 0x20]
fld dword [ebp + 4]
fmul dword [esi + 0x18]
fld dword [esi + 8]
fmul dword [ebp]
faddp st(1)
fld dword [esi + 0x38]
fmul dword [ebp + 0xc]
faddp st(1)
fld dword [ebp + 8]
fmul dword [esi + 0x28]
faddp st(1)
fstp dword [esp + 0x24]
fld dword [ebp + 8]
fmul dword [esi + 0x2c]
fld dword [esi + 0x3c]
fmul dword [ebp + 0xc]
faddp st(1)
fld dword [ebp]
fmul dword [esi + 0xc]
faddp st(1)
fld dword [esi + 0x1c]
fmul dword [ebp + 4]
faddp st(1)
fstp dword [esp + 0x28]
call fcn.00499d60
fld dword [ebp + 0x18]
fmul dword [esi + 0x20]
fld dword [esi + 0x10]
fmul dword [ebp + 0x14]
lea ecx, [ebp + 0x10]
lea edx, [esp + 0x18]
faddp st(1)
fld dword [esi + 0x30]
fmul dword [ebp + 0x1c]
faddp st(1)
fld dword [esi]
fmul dword [ecx]
faddp st(1)
fstp dword [esp + 0x18]
fld dword [ebp + 0x1c]
fmul dword [esi + 0x34]
fld dword [ebp + 0x18]
fmul dword [esi + 0x24]
faddp st(1)
fld dword [esi + 0x14]
fmul dword [ebp + 0x14]
faddp st(1)
fld dword [esi + 4]
fmul dword [ecx]
faddp st(1)
fstp dword [esp + 0x1c]
fld dword [esi + 0x18]
fmul dword [ebp + 0x14]
fld dword [ebp + 0x1c]
fmul dword [esi + 0x38]
faddp st(1)
fld dword [ebp + 0x18]
fmul dword [esi + 0x28]
faddp st(1)
fld dword [esi + 8]
fmul dword [ecx]
faddp st(1)
fstp dword [esp + 0x20]
fld dword [ebp + 0x1c]
fmul dword [esi + 0x3c]
fld dword [ebp + 0x18]
fmul dword [esi + 0x2c]
faddp st(1)
fld dword [esi + 0x1c]
fmul dword [ebp + 0x14]
faddp st(1)
fld dword [ecx]
fmul dword [esi + 0xc]
faddp st(1)
fstp dword [esp + 0x24]
push edx
call fcn.00499d60
fld dword [ebp + 0x28]
fmul dword [esi + 0x20]
fld dword [esi + 0x10]
fmul dword [ebp + 0x24]
lea ecx, [ebp + 0x20]
lea eax, [esp + 0x18]
push eax
faddp st(1)
fld dword [esi + 0x30]
fmul dword [ebp + 0x2c]
faddp st(1)
fld dword [esi]
fmul dword [ecx]
faddp st(1)
fstp dword [esp + 0x1c]
fld dword [ebp + 0x2c]
fmul dword [esi + 0x34]
fld dword [ebp + 0x28]
fmul dword [esi + 0x24]
faddp st(1)
fld dword [esi + 0x14]
fmul dword [ebp + 0x24]
faddp st(1)
fld dword [esi + 4]
fmul dword [ecx]
faddp st(1)
fstp dword [esp + 0x20]
fld dword [esi + 0x18]
fmul dword [ebp + 0x24]
fld dword [ebp + 0x2c]
fmul dword [esi + 0x38]
faddp st(1)
fld dword [ebp + 0x28]
fmul dword [esi + 0x28]
faddp st(1)
fld dword [esi + 8]
fmul dword [ecx]
faddp st(1)
fstp dword [esp + 0x24]
fld dword [ebp + 0x2c]
fmul dword [esi + 0x3c]
fld dword [ebp + 0x28]
fmul dword [esi + 0x2c]
faddp st(1)
fld dword [esi + 0x1c]
fmul dword [ebp + 0x24]
faddp st(1)
fld dword [ecx]
fmul dword [esi + 0xc]
faddp st(1)
fstp dword [esp + 0x28]
call fcn.00499d60
fld dword [ebp + 0x38]
fmul dword [esi + 0x20]
fld dword [esi + 0x10]
fmul dword [ebp + 0x34]
lea ecx, [ebp + 0x30]
faddp st(1)
fld dword [esi + 0x30]
fmul dword [ebp + 0x3c]
faddp st(1)
fld dword [esi]
fmul dword [ecx]
faddp st(1)
fstp dword [esp + 0x18]
fld dword [ebp + 0x3c]
fmul dword [esi + 0x34]
fld dword [ebp + 0x38]
fmul dword [esi + 0x24]
faddp st(1)
fld dword [esi + 0x14]
fmul dword [ebp + 0x34]
faddp st(1)
fld dword [esi + 4]
fmul dword [ecx]
faddp st(1)
fstp dword [esp + 0x1c]
fld dword [esi + 0x18]
fmul dword [ebp + 0x34]
fld dword [ebp + 0x3c]
fmul dword [esi + 0x38]
lea edx, [esp + 0x18]
push edx
faddp st(1)
fld dword [ebp + 0x38]
fmul dword [esi + 0x28]
faddp st(1)
fld dword [esi + 8]
fmul dword [ecx]
faddp st(1)
fstp dword [esp + 0x24]
fld dword [ebp + 0x3c]
fmul dword [esi + 0x3c]
fld dword [ebp + 0x38]
fmul dword [esi + 0x2c]
faddp st(1)
fld dword [esi + 0x1c]
fmul dword [ebp + 0x34]
faddp st(1)
fld dword [ecx]
fmul dword [esi + 0xc]
faddp st(1)
fstp dword [esp + 0x28]
call fcn.00499d60
jmp 0x4c46e0
cmp ecx, ebx
je 0x4c46e0
cmp ecx, ebx
je 0x4c46da
push 1
call fcn.004c6220
mov dword [edi + 0x36cc], ebx
push ebx
push str.Rail_minimum_rerail_time
call fcn.004196d0
add esp, 8
call fcn.005749d0
push ebx
lea ecx, [edi + 0x3424]
mov dword [edi + 0x3528], eax
call fcn.004c88b0
mov al, byte [edi + 0x33dc]
lea esi, [edi + 0x33dc]
test al, al
je 0x4c48b1
mov al, byte [edi + 0x90c]
test al, al
jne 0x4c48b1
mov ebp, dword [edi + 0x33e0]
call fcn.00543e40
sub eax, ebp
push ebx
mov ecx, esi
mov dword [edi + 0x3268], eax
call fcn.004c88b0
push ebx
push str.Ollied
mov ecx, edi
mov dword [edi + 0x920], ebx
call fcn.004a9de0
mov al, byte [edi + 0x7c8]
test al, al
je 0x4c4778
push ebx
push str.Rail_Jump_Angle
call fcn.004196d0
fmul dword [0x58af60]
fmul dword [0x5892f8]
jmp 0x4c479d
mov al, byte [edi + 0x7ec]
test al, al
je 0x4c4878
push ebx
push str.Rail_Jump_Angle
call fcn.004196d0
fmul dword [0x58af60]
fmul dword [0x58afd0]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fcomp dword [0x589284]
add esp, 8
fnstsw ax
test ah, 0x44
jnp 0x4c4878
fld dword [esp + 0x14]
fcos
sub esp, 8
mov ecx, dword [edi + 0x634]
add ecx, 0x30
fstp dword [esp + 4]
fld dword [esp + 0x1c]
fsin
fstp dword [esp]
call fcn.00498660
mov esi, dword [edi + 0x634]
push fcn.00402a70
push 4
lea eax, [esp + 0xbc]
push 0x10
push eax
add esi, 0x40
call fcn.00404450
mov ebp, dword [esp + 0x14]
push esi
lea ecx, [esp + 0xb8]
push ebp
push ecx
call fcn.004032d0
add esp, 8
lea edx, [esp + 0x128]
push eax
push edx
call fcn.004592d0
add esp, 0xc
mov ecx, esi
push eax
call fcn.00403a00
mov esi, dword [edi + 0x634]
push fcn.00402a70
push 4
lea eax, [esp + 0xbc]
push 0x10
push eax
add esi, 0x80
call fcn.00404450
push esi
lea ecx, [esp + 0xb8]
push ebp
push ecx
call fcn.004032d0
add esp, 8
lea edx, [esp + 0x128]
push eax
push edx
call fcn.004592d0
add esp, 0xc
mov ecx, esi
push eax
call fcn.00403a00
push 2
mov ecx, edi
call fcn.004c60a0
push ebx
push str.Rail_jump_rerail_time
call fcn.004196d0
add esp, 8
call fcn.005749d0
mov dword [edi + 0x3528], eax
mov eax, dword [edi + 0x634]
fld dword [eax + 4]
fadd dword [0x589288]
fstp dword [eax + 4]
jmp 0x4c565e
mov eax, dword [edi + 0x2730]
cmp eax, 0x255ed86f
je 0x4c48c5
cmp eax, 0x8d10119d
jne 0x4c490e
lea ecx, [edi + 0x2784]
call fcn.0049cbf0
push 1
push 0xcd09e062
call fcn.00419f30
mov ecx, dword [0xab5394]
add esp, 8
mov esi, eax
call fcn.00485ba0
test al, al
jne 0x4c490e
mov eax, dword [0xab5b48]
push esi
mov ecx, dword [eax + 0x20]
call fcn.004dca80
test al, al
je 0x4c490e
mov dword [edi + 0x27a8], ebx
mov dword [edi + 0x27ac], ebx
mov ebx, dword [edi + 0x37cc]
lea ecx, [esp + 0x84]
push ebx
push ecx
mov ecx, dword [edi + 0x37d0]
mov esi, dword [ebx + 0x30]
mov dword [esp + 0x68], 0
call fcn.004b1740
mov ecx, dword [edi + 0x37d0]
lea edx, [esp + 0x94]
push esi
push edx
mov ebp, eax
call fcn.004b1740
fld dword [eax + 0xc]
fsub dword [ebp + 0xc]
sub esp, 0x10
lea ecx, [esp + 0x28]
fstp dword [esp + 0xc]
fld dword [eax + 8]
fsub dword [ebp + 8]
fstp dword [esp + 8]
fld dword [eax + 4]
fsub dword [ebp + 4]
fstp dword [esp + 4]
fld dword [eax]
fsub dword [ebp]
fstp dword [esp]
call fcn.0045dab0
lea ecx, [esp + 0x18]
call fcn.00403940
fsqrt
lea ecx, [esp + 0x18]
fstp dword [esp + 0x4c]
call fcn.00403940
fsqrt
fcom dword [0x589284]
fnstsw ax
and eax, 0x4100
jne 0x4c49c8
fdivr dword [0x589288]
fld dword [esp + 0x18]
fmul st(1)
fstp dword [esp + 0x18]
fld dword [esp + 0x1c]
fmul st(1)
fstp dword [esp + 0x1c]
fld dword [esp + 0x20]
fmul st(1)
fstp dword [esp + 0x20]
mov eax, dword [edi + 0x634]
mov dword [esp + 0x28], 0xbf800000
fstp st(0)
fld dword [esp + 0x20]
fmul dword [eax + 0x38]
fld dword [esp + 0x1c]
fmul dword [eax + 0x34]
add eax, 0x30
faddp st(1)
fld dword [esp + 0x18]
fmul dword [eax]
faddp st(1)
fcomp dword [0x589284]
fnstsw ax
test ah, 5
jnp 0x4c4a08
mov dword [esp + 0x28], 0x3f800000
push 0
push str.Physics_Rail_Gravity
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0x3f800000
call fcn.004196d0
add esp, 8
lea eax, [esp + 0x18]
fstp dword [esp + 0x78]
push eax
lea ecx, [esp + 0x78]
mov dword [esp + 0x78], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0x3f800000
call fcn.00405250
mov ebp, dword [edi + 0x634]
sub esp, 0x10
lea ecx, [esp + 0x4c]
fld dword [ebp + 0xe0]
fld dword [esp + 0x90]
fmul st(1)
fstp dword [esp + 0xc]
fld dword [esp + 0x8c]
fmul st(1)
fstp dword [esp + 8]
fld dword [esp + 0x88]
fmul st(1)
fstp dword [esp + 4]
fmul dword [esp + 0x84]
fstp dword [esp]
call fcn.0045dab0
fld dword [esp + 0x3c]
fadd dword [ebp + 0x30]
mov dword [esp + 0x14], 0xbf800000
fstp dword [ebp + 0x30]
fld dword [esp + 0x40]
fadd dword [ebp + 0x34]
fstp dword [ebp + 0x34]
fld dword [esp + 0x44]
fadd dword [ebp + 0x38]
fstp dword [ebp + 0x38]
fld dword [esp + 0x48]
fadd dword [ebp + 0x3c]
fstp dword [ebp + 0x3c]
mov eax, dword [edi + 0x634]
fld dword [esp + 0x20]
fmul dword [eax + 0x38]
fld dword [esp + 0x1c]
fmul dword [eax + 0x34]
add eax, 0x30
faddp st(1)
fld dword [esp + 0x18]
fmul dword [eax]
faddp st(1)
fcomp dword [0x589284]
fnstsw ax
test ah, 5
jnp 0x4c4b1f
mov dword [esp + 0x14], 0x3f800000
fld dword [esp + 0x14]
fcomp dword [esp + 0x28]
fnstsw ax
test ah, 0x44
jnp 0x4c4b3f
mov al, byte [edi + 0x3375]
test al, al
sete cl
mov byte [edi + 0x3375], cl
fld dword [esp + 0x14]
fcomp dword [0x589284]
mov byte [esp + 0x13], 0
fnstsw ax
test ah, 5
jp 0x4c4d4c
mov eax, dword [ebx + 0x34]
test eax, eax
je 0x4c4f36
mov dl, byte [eax + 0x3b]
shr edx, 2
test dl, 1
je 0x4c4f36
mov ecx, dword [edi + 0x37d0]
lea eax, [esp + 0x84]
push ebx
push eax
call fcn.004b1740
lea ecx, [esp + 0x94]
push esi
push ecx
mov ecx, dword [edi + 0x37d0]
mov ebp, eax
call fcn.004b1740
fld dword [eax + 0xc]
fsub dword [ebp + 0xc]
sub esp, 0x10
lea ecx, [esp + 0x74]
fstp dword [esp + 0xc]
fld dword [eax + 8]
fsub dword [ebp + 8]
fstp dword [esp + 8]
fld dword [eax + 4]
fsub dword [ebp + 4]
fstp dword [esp + 4]
fld dword [eax]
fsub dword [ebp]
fstp dword [esp]
call fcn.0045dab0
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x34], eax
mov eax, dword [ebx + 0x34]
mov dword [esp + 0x2c], edx
lea edx, [esp + 0x84]
mov dword [esp + 0x38], ecx
mov ecx, dword [edi + 0x37d0]
push eax
push edx
call fcn.004b1740
mov ecx, dword [edi + 0x37d0]
mov ebp, eax
lea eax, [esp + 0x94]
push ebx
push eax
call fcn.004b1740
fld dword [eax + 0xc]
fsub dword [ebp + 0xc]
sub esp, 0x10
lea ecx, [esp + 0x4c]
fstp dword [esp + 0xc]
fld dword [eax + 8]
fsub dword [ebp + 8]
fstp dword [esp + 8]
fld dword [eax + 4]
fsub dword [ebp + 4]
fstp dword [esp + 4]
fld dword [eax]
fsub dword [ebp]
fstp dword [esp]
call fcn.0045dab0
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x50], ecx
lea ecx, [esp + 0x2c]
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x30], 0
mov dword [esp + 0x54], 0
call fcn.00403940
fsqrt
fcom dword [0x589284]
fnstsw ax
and eax, 0x4100
jne 0x4c4cae
fdivr dword [0x589288]
fld dword [esp + 0x64]
fmul st(1)
fstp dword [esp + 0x2c]
fld dword [0x589284]
fmul st(1)
fstp dword [esp + 0x30]
fld dword [esp + 0x6c]
fmul st(1)
fstp dword [esp + 0x34]
fstp st(0)
lea ecx, [esp + 0x50]
call fcn.00403940
fsqrt
fcom dword [0x589284]
fnstsw ax
and eax, 0x4100
jne 0x4c4cf0
fdivr dword [0x589288]
fld dword [esp + 0x3c]
fmul st(1)
fstp dword [esp + 0x50]
fld dword [0x589284]
fmul st(1)
fstp dword [esp + 0x54]
fld dword [esp + 0x44]
fmul st(1)
fstp dword [esp + 0x58]
push 0
push str.Rail_Corner_Leave_Angle
fstp st(0)
call fcn.004196d0
fld dword [esp + 0x58]
fmul dword [esp + 0x34]
fld dword [esp + 0x60]
fmul dword [esp + 0x3c]
add esp, 8
faddp st(1)
fld dword [esp + 0x54]
fmul dword [esp + 0x30]
faddp st(1)
fxch st(1)
fmul dword [0x58af60]
fmul dword [0x5892f8]
fcos
fxch st(1)
fxch st(1)
fcompp
fnstsw ax
and eax, 0x4100
je 0x4c4f36
mov ecx, dword [ebx + 0x34]
mov dword [esp + 0x60], ecx
jmp 0x4c4f3b
test esi, esi
je 0x4c4f36
mov eax, dword [esi + 0x30]
test eax, eax
je 0x4c4f36
mov dl, byte [eax + 0x3b]
shr edx, 2
test dl, 1
je 0x4c4f36
mov ecx, dword [edi + 0x37d0]
lea eax, [esp + 0x84]
push esi
push eax
call fcn.004b1740
lea ecx, [esp + 0x94]
push ebx
push ecx
mov ecx, dword [edi + 0x37d0]
mov ebp, eax
call fcn.004b1740
fld dword [eax + 0xc]
fsub dword [ebp + 0xc]
sub esp, 0x10
lea ecx, [esp + 0x4c]
fstp dword [esp + 0xc]
fld dword [eax + 8]
fsub dword [ebp + 8]
fstp dword [esp + 8]
fld dword [eax + 4]
fsub dword [ebp + 4]
fstp dword [esp + 4]
fld dword [eax]
fsub dword [ebp]
fstp dword [esp]
call fcn.0045dab0
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x58], eax
mov eax, dword [esi + 0x30]
mov dword [esp + 0x50], edx
lea edx, [esp + 0x84]
mov dword [esp + 0x5c], ecx
mov ecx, dword [edi + 0x37d0]
push eax
push edx
call fcn.004b1740
mov ecx, dword [edi + 0x37d0]
mov ebp, eax
lea eax, [esp + 0x94]
push esi
push eax
call fcn.004b1740
fld dword [eax + 0xc]
fsub dword [ebp + 0xc]
sub esp, 0x10
lea ecx, [esp + 0x74]
fstp dword [esp + 0xc]
fld dword [eax + 8]
fsub dword [ebp + 8]
fstp dword [esp + 8]
fld dword [eax + 4]
fsub dword [ebp + 4]
fstp dword [esp + 4]
fld dword [eax]
fsub dword [ebp]
fstp dword [esp]
call fcn.0045dab0
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x70]
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x50]
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], eax
mov dword [esp + 0x54], 0
mov dword [esp + 0x30], 0
call fcn.00403940
fsqrt
fcom dword [0x589284]
fnstsw ax
and eax, 0x4100
jne 0x4c4ea9
fdivr dword [0x589288]
fld dword [esp + 0x3c]
fmul st(1)
fstp dword [esp + 0x50]
fld dword [0x589284]
fmul st(1)
fstp dword [esp + 0x54]
fld dword [esp + 0x44]
fmul st(1)
fstp dword [esp + 0x58]
fstp st(0)
lea ecx, [esp + 0x2c]
call fcn.00403940
fsqrt
fcom dword [0x589284]
fnstsw ax
and eax, 0x4100
jne 0x4c4eeb
fdivr dword [0x589288]
fld dword [esp + 0x64]
fmul st(1)
fstp dword [esp + 0x2c]
fld dword [0x589284]
fmul st(1)
fstp dword [esp + 0x30]
fld dword [esp + 0x6c]
fmul st(1)
fstp dword [esp + 0x34]
push 0
push str.Rail_Corner_Leave_Angle
fstp st(0)
call fcn.004196d0
fstp dword [esp + 0x30]
lea ecx, [esp + 0x34]
lea edx, [esp + 0x58]
push ecx
push edx
call fcn.00402af0
fld dword [esp + 0x38]
fmul dword [0x58af60]
add esp, 0x10
fmul dword [0x5892f8]
fcos
fst dword [esp + 0x28]
fcompp
fnstsw ax
and eax, 0x4100
je 0x4c4f36
mov dword [esp + 0x60], esi
jmp 0x4c4f3b
mov byte [esp + 0x13], 1
fld dword [esp + 0x14]
fcomp dword [0x589284]
mov ecx, dword [edi + 0x37d0]
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0x3f800000
mov dword [esp + 0x28], 0
fnstsw ax
test ah, 5
lea eax, [esp + 0x84]
jp 0x4c4f90
push esi
jmp 0x4c4f91
push ebx
push eax
call fcn.004b1740
mov ecx, dword [edi + 0x634]
push eax
lea edx, [esp + 0x98]
push ecx
push edx
call fcn.00404c70
add esp, 0xc
lea ecx, [esp + 0xa4]
push eax
call fcn.00499d60
lea ecx, [esp + 0xa4]
call fcn.00403940
fsqrt
fld dword [esp + 0x4c]
fadd dword [0x589600]
fld st(1)
fcompp
fnstsw ax
and eax, 0x4100
jne 0x4c516b
fsub dword [esp + 0x4c]
fstp dword [esp + 0x28]
fld dword [esp + 0x14]
fcomp dword [0x589284]
fnstsw ax
test ah, 5
jp 0x4c50b2
mov eax, dword [ebx + 0x34]
test eax, eax
je 0x4c50a6
mov al, byte [eax + 0x3b]
shr eax, 2
test al, 1
je 0x4c50a6
mov ecx, ebx
call fcn.004cbc20
sub esp, 0x10
mov ecx, esp
push eax
push ecx
mov ecx, dword [edi + 0x37d0]
call fcn.004b1740
mov ecx, dword [edi + 0x37d0]
sub esp, 0x10
mov edx, esp
push ebx
push edx
call fcn.004b1740
call fcn.004b0f30
add esp, 0x20
test al, al
je 0x4c50a6
mov al, byte [esp + 0x13]
mov ecx, dword [edi + 0x37d0]
test al, al
jne 0x4c508e
lea eax, [esp + 0x84]
push ebx
push eax
call fcn.004b1740
mov ecx, dword [edi + 0x634]
push eax
call fcn.00499d60
mov eax, dword [ebx + 0x34]
xor ecx, ecx
mov dword [edi + 0x37cc], eax
mov cl, byte [eax + 0x3a]
push ecx
jmp 0x4c5137
sub esp, 0x10
mov edx, esp
push ebx
push edx
call fcn.004b1740
mov ecx, edi
call fcn.004c3910
jmp 0x4c516d
sub esp, 0x10
mov eax, esp
push ebx
push eax
jmp 0x4c5157
mov eax, dword [esi + 0x30]
test eax, eax
je 0x4c5150
mov cl, byte [esi + 0x3b]
shr ecx, 2
test cl, 1
je 0x4c5150
mov ecx, esi
call fcn.004cbc10
mov ecx, dword [edi + 0x37d0]
sub esp, 0x10
mov edx, esp
push eax
push edx
call fcn.004b1740
mov ecx, dword [edi + 0x37d0]
sub esp, 0x10
mov eax, esp
push esi
push eax
call fcn.004b1740
call fcn.004b0f30
add esp, 0x20
test al, al
je 0x4c5150
mov al, byte [esp + 0x13]
test al, al
jne 0x4c5147
lea ecx, [esp + 0x84]
push esi
push ecx
mov ecx, dword [edi + 0x37d0]
call fcn.004b1740
mov ecx, dword [edi + 0x634]
push eax
call fcn.00499d60
xor edx, edx
mov dword [edi + 0x37cc], esi
mov dl, byte [esi + 0x3a]
push edx
mov ecx, edi
call fcn.004b74e0
push 5
call fcn.004c60a0
jmp 0x4c516d
sub esp, 0x10
mov eax, esp
push esi
push eax
jmp 0x4c5157
sub esp, 0x10
mov ecx, esp
push esi
push ecx
mov ecx, dword [edi + 0x37d0]
call fcn.004b1740
mov ecx, edi
call fcn.004c3910
jmp 0x4c516d
fstp st(0)
cmp dword [edi + 0x3520], 4
jne 0x4c565e
mov eax, dword [edi + 0x37cc]
mov ecx, dword [edi + 0x37d0]
lea edx, [esp + 0x2c]
push eax
mov esi, dword [eax + 0x30]
push edx
call fcn.004b1740
mov ecx, dword [edi + 0x37d0]
push eax
lea eax, [esp + 0x54]
push esi
push eax
call fcn.004b1740
lea ecx, [esp + 0x40]
push eax
push ecx
call fcn.00404c70
add esp, 0xc
lea ecx, [esp + 0x3c]
call fcn.00403960
mov edx, dword [edi + 0x634]
lea eax, [esp + 0x3c]
add edx, 0x30
push edx
push eax
call fcn.00402af0
fcomp dword [0x589284]
add esp, 8
mov dword [esp + 0x14], 0xbf800000
fnstsw ax
test ah, 5
jnp 0x4c51f1
mov dword [esp + 0x14], 0x3f800000
call fcn.00543e40
lea ecx, [esp + 0x3c]
mov dword [edi + 0x37c8], eax
push ecx
mov ecx, dword [edi + 0x634]
add ecx, 0x30
call fcn.004051f0
mov edx, dword [esp + 0x14]
mov ecx, dword [edi + 0x634]
push edx
add ecx, 0x30
call fcn.00404f90
mov al, byte [edi + 0x3375]
test al, al
je 0x4c5238
fld dword [esp + 0x14]
fchs
fstp dword [esp + 0x4c]
jmp 0x4c5240
mov eax, dword [esp + 0x14]
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x4c]
lea edx, [esp + 0x3c]
push ecx
lea eax, [esp + 0x68]
push edx
push eax
call fcn.00402ac0
mov esi, dword [edi + 0x634]
lea ecx, [esp + 0x70]
add esi, 0xa0
push 0x3e99999a
push ecx
lea edx, [esp + 0x40]
push esi
push edx
call fcn.0045da20
add esp, 0x1c
mov ecx, esi
push eax
call fcn.00499d60
mov ecx, dword [edi + 0x634]
add ecx, 0xa0
call fcn.00403960
mov ecx, dword [edi + 0x634]
push 0x3f800000
push 0
push 0x3f800000
push 0
add ecx, 0x90
call fcn.0045dab0
mov esi, dword [edi + 0x634]
lea edx, [esp + 0x2c]
lea eax, [esi + 0xa0]
lea ecx, [esi + 0x90]
push eax
push ecx
push edx
call fcn.004039b0
add esp, 0xc
lea ecx, [esi + 0x80]
push eax
call fcn.00499d60
mov ecx, dword [edi + 0x634]
add ecx, 0x80
call fcn.00403960
mov esi, dword [edi + 0x634]
lea edx, [esp + 0x2c]
lea eax, [esi + 0x80]
lea ecx, [esi + 0xa0]
push eax
push ecx
push edx
call fcn.004039b0
add esp, 0xc
lea ecx, [esi + 0x90]
push eax
call fcn.00499d60
mov ecx, dword [edi + 0x634]
add ecx, 0x90
call fcn.00403960
mov ecx, dword [edi + 0x634]
lea eax, [esp + 0x64]
push eax
add ecx, 0x60
call fcn.00499d60
mov ecx, dword [edi + 0x634]
add ecx, 0x60
call fcn.00403960
mov ecx, dword [edi + 0x634]
push 0x3f800000
push 0
push 0x3f800000
push 0
add ecx, 0x50
call fcn.0045dab0
mov esi, dword [edi + 0x634]
lea eax, [esp + 0x2c]
lea ecx, [esi + 0x60]
lea edx, [esi + 0x50]
push ecx
push edx
push eax
call fcn.004039b0
add esp, 0xc
lea ecx, [esi + 0x40]
push eax
call fcn.00499d60
mov ecx, dword [edi + 0x634]
add ecx, 0x40
call fcn.00403960
mov esi, dword [edi + 0x634]
lea eax, [esp + 0x2c]
lea ecx, [esi + 0x40]
lea edx, [esi + 0x60]
push ecx
push edx
push eax
call fcn.004039b0
add esp, 0xc
lea ecx, [esi + 0x50]
push eax
call fcn.00499d60
mov ecx, dword [edi + 0x634]
add ecx, 0x50
call fcn.00403960
push 0x3f800000
lea ebp, [edi + 0x3718]
push 0
push 0
push 0
mov ecx, ebp
call fcn.0045dab0
mov esi, dword [edi + 0x634]
lea ecx, [esp + 0x114]
push esi
call fcn.00499d60
mov ecx, dword [esi + 0xe0]
lea edx, [esi + 0x30]
push ecx
lea eax, [esp + 0x30]
push edx
push eax
call fcn.00402ac0
add esp, 0xc
mov ecx, esi
push eax
call fcn.0041fc50
mov ecx, dword [esp + 0x28]
lea edx, [esp + 0x64]
push ecx
lea eax, [esp + 0x30]
push edx
push eax
call fcn.00402ac0
add esp, 0xc
lea ecx, [esp + 0x2c]
push ecx
mov ecx, dword [edi + 0x634]
call fcn.0041fc50
mov ecx, dword [edi + 0x634]
push ebp
call fcn.0041fc50
mov eax, dword [edi + 0x634]
lea edx, [esp + 0x114]
push edx
lea ecx, [esp + 0x88]
push eax
push ecx
call fcn.00404c70
add esp, 0xc
lea edx, [esp + 0x84]
lea ecx, [esp + 0x94]
push edx
call fcn.00499d60
lea ecx, [esp + 0x94]
call fcn.00403960
mov al, byte [esp + 0x13]
mov ebp, 0xd443a2bc
test al, al
jne 0x4c5551
mov eax, dword [0xb07d40]
cmp dword [eax + 0x90], ebp
je 0x4c565e
mov esi, dword [ebx + 0x30]
lea ecx, [esp + 0x104]
push ebx
push ecx
mov ecx, dword [edi + 0x37d0]
call fcn.004b1740
mov ecx, dword [edi + 0x37d0]
push eax
lea edx, [esp + 0xf8]
push esi
push edx
call fcn.004b1740
push eax
lea eax, [esp + 0x34]
push eax
call fcn.00404c70
mov eax, dword [esp + 0x6c]
add esp, 0xc
lea ecx, [esp + 0xf4]
mov esi, dword [eax + 0x30]
push eax
push ecx
mov ecx, dword [edi + 0x37d0]
call fcn.004b1740
mov ecx, dword [edi + 0x37d0]
push eax
lea edx, [esp + 0x108]
push esi
push edx
call fcn.004b1740
push eax
lea eax, [esp + 0x58]
push eax
call fcn.00404c70
add esp, 0xc
lea ecx, [esp + 0x2c]
call fcn.00403960
lea ecx, [esp + 0x50]
call fcn.00403960
fld dword [esp + 0x30]
fsub dword [esp + 0x54]
fabs
fcomp dword [0x5892ec]
fnstsw ax
test ah, 5
jp 0x4c565e
lea ecx, [esp + 0x114]
lea ebx, [edi + 0x3540]
push ecx
mov ecx, ebx
call fcn.00499d60
mov edx, dword [edi + 0x634]
lea esi, [edi + 0x3550]
push edx
mov ecx, esi
call fcn.00499d60
lea eax, [esp + 0x94]
push 0x40c00000
lea ecx, [esp + 0xf8]
push eax
push ecx
call fcn.00402ac0
push eax
lea edx, [esp + 0x94]
lea eax, [esp + 0x114]
push edx
push eax
call fcn.00402a90
add esp, 0x18
mov ecx, esi
push eax
call fcn.0041fc50
mov ecx, dword [edi + 0x634]
add ecx, 0x50
push ecx
mov ecx, ebx
call fcn.0041fc50
mov edx, dword [edi + 0x634]
mov ecx, esi
add edx, 0x50
push edx
call fcn.0041fc50
push 0
push 0x10
mov ecx, edi
call fcn.004bcfd0
test al, al
je 0x4c565e
mov eax, dword [0xb07d40]
cmp dword [eax + 0x90], ebp
je 0x4c5603
lea ecx, [edi + 0x3560]
call fcn.00506240
test ah, 0x10
jne 0x4c565e
push 4
mov ecx, edi
call fcn.004c60a0
mov ecx, dword [edi + 0x634]
lea edx, [ecx + 0x10]
push edx
call fcn.00499d60
mov eax, dword [edi + 0x634]
lea ecx, [edi + 0x3560]
fld dword [eax + 4]
fadd dword [0x589288]
fstp dword [eax + 4]
call fcn.00506220
mov ecx, dword [edi + 0x634]
push eax
add ecx, 0x30
call fcn.00405060
push 1
mov ecx, edi
call fcn.004bc960
push 0
push str.OffRail
mov ecx, edi
call fcn.004a9de0
mov eax, dword [edi + 0x634]
lea ecx, [edi + 0x3780]
add eax, 0x50
push eax
call fcn.00499d60
mov al, byte [edi + 0x3538]
test al, al
je 0x4c568f
mov ecx, dword [edi + 0x3814]
push ecx
mov ecx, dword [edi + 0x3818]
call fcn.004f5c30
mov esi, dword [edi + 0x37cc]
push 0
push str.NodeArray
call fcn.00419e70
movsx edx, word [esi + 0x38]
add esp, 8
mov ecx, eax
push edx
call fcn.00408850
lea esi, [edi + 0x774]
push 1
push esi
push str.name
mov ecx, eax
call fcn.00418db0
mov eax, dword [esi]
mov ecx, edi
push eax
call fcn.004d8ae0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x154
ret