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

Disassembly:
sub esp, 0x54
push ebx
push ebp
push esi
mov esi, ecx
xor ebp, ebp
push edi
mov dword [esi + 0x544], ebp
mov dword [esi + 0x548], ebp
mov dword [esi + 0x54c], ebp
mov dword [esi + 0x550], 0x3f800000
mov al, byte [esi + 0x3404]
test al, al
jne 0x4c0bcf
mov al, byte [esi + 0x347c]
test al, al
jne 0x4c0bcf
push ebp
push 0xfaa40754
call fcn.00419610
add esp, 8
mov ecx, esi
fstp dword [esp + 0x10]
push 0xc31ca696
call fcn.004bc900
fdivr dword [esp + 0x10]
jmp 0x4c0bf1
push ebp
push 0xfaa40754
call fcn.00419610
add esp, 8
mov ecx, esi
fstp dword [esp + 0x10]
push 0x441c38a0
call fcn.004bc900
fdivr dword [esp + 0x10]
fstp dword [esp + 0x10]
push 1
push 0x9c8c6df1
call fcn.00419f30
add esp, 8
mov ecx, esi
push eax
call fcn.004d8b40
test al, al
je 0x4c0c24
push ebp
push str.moon_gravity
call fcn.004196d0
fmul dword [esp + 0x18]
add esp, 8
jmp 0x4c0c28
fld dword [esp + 0x10]
fstp dword [esi + 0x548]
push ebp
lea ecx, [esi + 0x3414]
call fcn.004c88b0
mov ecx, esi
call fcn.004b80e0
mov ecx, esi
call fcn.004b8b90
mov al, byte [esi + 0x3484]
test al, al
jne 0x4c0c66
mov al, byte [esi + 0x834]
test al, al
je 0x4c0c6d
mov al, byte [esi + 0x87c]
test al, al
je 0x4c0c6d
mov ecx, esi
call fcn.004b8870
mov al, byte [esi + 0x3404]
test al, al
jne 0x4c0ca0
mov al, byte [esi + 0x347c]
test al, al
jne 0x4c0ca0
mov al, byte [esi + 0x326c]
test al, al
jne 0x4c0ca0
mov al, byte [esi + 0x328c]
test al, al
jne 0x4c0ca0
mov ecx, dword [esi + 0x634]
call fcn.004dd9b0
mov edi, dword [esi + 0x634]
lea ecx, [esp + 0x24]
lea eax, [edi + 0x30]
push eax
call fcn.00499d60
mov al, byte [esi + 0x347c]
test al, al
je 0x4c0e67
fld dword [esi + 0x3230]
fsub dword [esi + 0x3240]
sub esp, 0x10
lea ecx, [esp + 0x64]
fstp dword [esp + 0xc]
fld dword [esi + 0x322c]
fsub dword [esi + 0x323c]
fstp dword [esp + 8]
fld dword [esi + 0x3228]
fsub dword [esi + 0x3238]
fstp dword [esp + 4]
fld dword [esi + 0x3224]
fsub dword [esi + 0x3234]
fstp dword [esp]
call fcn.0045dab0
lea ecx, [esi + 0x3244]
mov dword [esp + 0x58], 0
push ecx
lea ecx, [esp + 0x38]
call fcn.00499d60
lea ecx, [esp + 0x34]
mov dword [esp + 0x38], 0
call fcn.00403940
fsqrt
fcom dword [0x589284]
fnstsw ax
and eax, 0x4100
jne 0x4c0d6c
fdivr dword [0x589288]
fld dword [esp + 0x34]
fmul st(1)
fstp dword [esp + 0x34]
fld dword [0x589284]
fmul st(1)
fstp dword [esp + 0x38]
fmul dword [esp + 0x3c]
fstp dword [esp + 0x3c]
jmp 0x4c0d6e
fstp st(0)
fld dword [edi + 0xc]
fsub dword [esi + 0x3240]
sub esp, 0x10
lea ecx, [esp + 0x54]
fstp dword [esp + 0xc]
fld dword [edi + 8]
fsub dword [esi + 0x323c]
fstp dword [esp + 8]
fld dword [edi + 4]
fsub dword [esi + 0x3238]
fstp dword [esp + 4]
fld dword [edi]
fsub dword [esi + 0x3234]
fstp dword [esp]
call fcn.0045dab0
lea edx, [esp + 0x34]
lea ecx, [esp + 0x54]
push edx
call fcn.00405250
lea eax, [esp + 0x34]
lea ecx, [esp + 0x44]
push eax
call fcn.00405250
fld dword [esp + 0x28]
fcomp dword [0x589284]
fnstsw ax
test ah, 5
jp 0x4c0e29
mov edi, dword [esi + 0x634]
fld dword [edi + 4]
fcomp dword [esi + 0x3228]
fnstsw ax
test ah, 5
jp 0x4c0e29
add edi, 0xc0
mov ecx, edi
call fcn.00403940
fsqrt
fcom dword [0x589284]
fnstsw ax
and eax, 0x4100
jne 0x4c0e65
fdivr dword [0x589600]
fld st(0)
fmul dword [edi]
fstp dword [edi]
fld st(0)
fmul dword [edi + 4]
fstp dword [edi + 4]
fmul dword [edi + 8]
fstp dword [edi + 8]
jmp 0x4c0e67
mov eax, dword [esi + 0x634]
fld dword [esp + 0x24]
fadd dword [eax + 0xc0]
add eax, 0xc0
fstp dword [esp + 0x24]
fld dword [esp + 0x28]
fadd dword [eax + 4]
fstp dword [esp + 0x28]
fld dword [esp + 0x2c]
fadd dword [eax + 8]
fstp dword [esp + 0x2c]
fld dword [esp + 0x30]
fadd dword [eax + 0xc]
fstp dword [esp + 0x30]
jmp 0x4c0e67
fstp st(0)
mov ecx, dword [esi + 0x36cc]
mov dword [esp + 0x14], 0
cmp ecx, ebp
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0x3f800000
je 0x4c0f02
call fcn.005057c0
test al, al
jne 0x4c0eaf
push str.Contact_object_is_DEAD___n
call fcn.00535ef0
mov ecx, dword [esi + 0x36cc]
add esp, 4
jmp 0x4c0ef1
mov ecx, dword [esi + 0x634]
push ecx
mov ecx, dword [esi + 0x36cc]
call fcn.005057d0
mov ecx, dword [esi + 0x36cc]
test al, al
je 0x4c0eed
call fcn.00505a80
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov dword [esp + 0x14], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
jmp 0x4c0f02
cmp ecx, ebp
je 0x4c0f02
cmp ecx, ebp
je 0x4c0efc
push 1
call fcn.004c6220
mov dword [esi + 0x36cc], ebp
mov edi, dword [esi + 0x634]
sub esp, 0x10
lea ecx, [esp + 0x54]
fld dword [edi + 0xe0]
fld st(0)
fmulp st(1)
fmul dword [0x58930c]
fld st(0)
fmul dword [esi + 0x550]
fstp dword [esp + 0xc]
fld st(0)
fmul dword [esi + 0x54c]
fstp dword [esp + 8]
fld st(0)
fmul dword [esi + 0x548]
fstp dword [esp + 4]
fmul dword [esi + 0x544]
fstp dword [esp]
call fcn.0045dab0
fld dword [edi + 0xe0]
fld dword [esp + 0x30]
fmul st(1)
sub esp, 0x10
lea ecx, [esp + 0x44]
fstp dword [esp + 0xc]
fld dword [esp + 0x3c]
fmul st(1)
fstp dword [esp + 8]
fld dword [esp + 0x38]
fmul st(1)
fstp dword [esp + 4]
fmul dword [esp + 0x34]
fstp dword [esp]
call fcn.0045dab0
fld dword [esp + 0x50]
fadd dword [esp + 0x40]
sub esp, 0x10
lea ecx, [esp + 0x64]
fstp dword [esp + 0xc]
fld dword [esp + 0x5c]
fadd dword [esp + 0x4c]
fstp dword [esp + 8]
fld dword [esp + 0x58]
fadd dword [esp + 0x48]
fstp dword [esp + 4]
fld dword [esp + 0x54]
fadd dword [esp + 0x44]
fstp dword [esp]
call fcn.0045dab0
fld dword [esp + 0x54]
fadd dword [edi]
sub esp, 0x10
fstp dword [edi]
fld dword [esp + 0x68]
fadd dword [edi + 4]
fstp dword [edi + 4]
fld dword [esp + 0x6c]
fadd dword [edi + 8]
fstp dword [edi + 8]
fld dword [esp + 0x70]
fadd dword [edi + 0xc]
fstp dword [edi + 0xc]
mov eax, dword [esi + 0x634]
fld dword [esp + 0x24]
fadd dword [eax]
fstp dword [eax]
fld dword [esp + 0x28]
fadd dword [eax + 4]
fstp dword [eax + 4]
fld dword [esp + 0x2c]
fadd dword [eax + 8]
fstp dword [eax + 8]
fld dword [esp + 0x30]
fadd dword [eax + 0xc]
fstp dword [eax + 0xc]
mov edi, dword [esi + 0x634]
fld dword [edi + 0xe0]
fld st(0)
fmul dword [esi + 0x550]
fstp dword [esp + 0xc]
fld st(0)
fmul dword [esi + 0x54c]
lea ecx, [esp + 0x64]
fstp dword [esp + 8]
fld st(0)
fmul dword [esi + 0x548]
fstp dword [esp + 4]
fmul dword [esi + 0x544]
fstp dword [esp]
call fcn.0045dab0
fld dword [esp + 0x54]
fadd dword [edi + 0x30]
lea ebx, [esi + 0x341c]
fstp dword [edi + 0x30]
fld dword [esp + 0x58]
fadd dword [edi + 0x34]
fstp dword [edi + 0x34]
fld dword [esp + 0x5c]
fadd dword [edi + 0x38]
fstp dword [edi + 0x38]
fld dword [esp + 0x60]
fadd dword [edi + 0x3c]
fstp dword [edi + 0x3c]
cmp byte [ebx], 0
je 0x4c125d
mov al, byte [esi + 0x340c]
test al, al
je 0x4c122f
mov al, byte [esi + 0x3404]
test al, al
je 0x4c122f
mov edi, dword [esi + 0x634]
mov ecx, dword [edi + 0x5c]
mov edx, dword [edi + 0x58]
mov eax, dword [edi + 0x54]
push ecx
mov ecx, dword [edi + 0x50]
push edx
push eax
push ecx
lea ecx, [esp + 0x64]
call fcn.0045dab0
fld dword [esp + 0x60]
fadd dword [edi + 0xc]
sub esp, 0x10
lea ecx, [esp + 0x64]
fstp dword [esp + 0xc]
fld dword [esp + 0x6c]
fadd dword [edi + 8]
fstp dword [esp + 8]
fld dword [esp + 0x68]
fadd dword [edi + 4]
fstp dword [esp + 4]
fld dword [esp + 0x64]
fadd dword [edi]
fstp dword [esp]
call fcn.0045dab0
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov dword [esi + 0x3540], edx
mov edx, dword [esp + 0x60]
mov dword [esi + 0x3544], eax
mov dword [esi + 0x3548], ecx
mov dword [esi + 0x354c], edx
mov edi, dword [esi + 0x634]
sub esp, 0x10
lea ecx, [esp + 0x64]
fld dword [edi + 0x5c]
fmul dword [0x58afc4]
fstp dword [esp + 0xc]
fld dword [edi + 0x58]
fmul dword [0x58afc4]
fstp dword [esp + 8]
fld dword [edi + 0x54]
fmul dword [0x58afc4]
fstp dword [esp + 4]
fld dword [edi + 0x50]
fmul dword [0x58afc4]
fstp dword [esp]
call fcn.0045dab0
fld dword [esp + 0x60]
fadd dword [edi + 0xc]
sub esp, 0x10
lea ecx, [esp + 0x64]
fstp dword [esp + 0xc]
fld dword [esp + 0x6c]
fadd dword [edi + 8]
fstp dword [esp + 8]
fld dword [esp + 0x68]
fadd dword [edi + 4]
fstp dword [esp + 4]
fld dword [esp + 0x64]
fadd dword [edi]
fstp dword [esp]
call fcn.0045dab0
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov dword [esi + 0x3550], eax
mov eax, dword [esp + 0x60]
mov dword [esi + 0x3554], ecx
push ebp
push 0x10
mov ecx, esi
mov dword [esi + 0x3558], edx
mov dword [esi + 0x355c], eax
call fcn.004bcfd0
test al, al
jne 0x4c122f
mov ecx, esi
call fcn.004b93a0
mov edi, dword [esi + 0x788]
push 1
push str.Skater_vert_active_up_time
call fcn.00419fe0
add esp, 8
mov ebp, eax
call fcn.00543e40
sub eax, edi
cmp eax, ebp
jle 0x4c122f
mov edi, dword [esi + 0x784]
push 1
push str.Skater_vert_active_up_time
call fcn.00419fe0
add esp, 8
mov ebp, eax
call fcn.00543e40
sub eax, edi
cmp eax, ebp
jle 0x4c122f
push 0
mov ecx, ebx
call fcn.004c88b0
mov edi, dword [esi + 0x3420]
push 1
push str.Skater_Vert_Allow_break_Time
call fcn.00419fe0
add esp, 8
mov ebp, eax
call fcn.00543e40
sub eax, edi
cmp eax, ebp
jle 0x4c12a6
xor ebp, ebp
mov ecx, ebx
push ebp
call fcn.004c88b0
jmp 0x4c12a8
mov al, byte [esi + 0x3404]
test al, al
je 0x4c12a8
mov al, byte [esi + 0x834]
test al, al
je 0x4c12a8
mov al, byte [esi + 0x87c]
test al, al
je 0x4c12a8
mov al, byte [esi + 0x347c]
test al, al
jne 0x4c12a8
mov ecx, dword [esi + 0x634]
fld dword [ecx + 0x34]
fcomp dword [0x589284]
fnstsw ax
and eax, 0x4100
jne 0x4c12a8
mov ecx, esi
call fcn.004b93a0
jmp 0x4c12a8
xor ebp, ebp
mov al, byte [esi + 0x340c]
lea ebx, [esi + 0x340c]
test al, al
je 0x4c1534
mov al, byte [esi + 0x3404]
test al, al
je 0x4c1733
mov edx, dword [esi + 0x36f8]
sub esp, 0x10
mov dword [esi + 0x3540], edx
mov eax, dword [esi + 0x36fc]
mov dword [esi + 0x3544], eax
mov ecx, dword [esi + 0x3700]
mov dword [esi + 0x3548], ecx
mov edx, dword [esi + 0x3704]
mov dword [esi + 0x354c], edx
mov eax, dword [esi + 0x634]
mov ecx, dword [eax]
mov dword [esi + 0x3540], ecx
mov edx, dword [esi + 0x634]
mov eax, dword [edx + 8]
mov dword [esi + 0x3548], eax
mov ecx, dword [esi + 0x3540]
mov dword [esi + 0x3550], ecx
mov edx, dword [esi + 0x3544]
mov dword [esi + 0x3554], edx
mov eax, dword [esi + 0x3548]
mov dword [esi + 0x3558], eax
mov ecx, dword [esi + 0x354c]
mov dword [esi + 0x355c], ecx
lea ecx, [esp + 0x64]
fld dword [esi + 0x3714]
fmul dword [0x58ac74]
fstp dword [esp + 0xc]
fld dword [esi + 0x3710]
fmul dword [0x58ac74]
fstp dword [esp + 8]
fld dword [esi + 0x370c]
fmul dword [0x58ac74]
fstp dword [esp + 4]
fld dword [esi + 0x3708]
fmul dword [0x58ac74]
fstp dword [esp]
call fcn.0045dab0
fld dword [esp + 0x54]
fadd dword [esi + 0x3540]
sub esp, 0x10
lea ecx, [esp + 0x64]
fstp dword [esi + 0x3540]
fld dword [esp + 0x68]
fadd dword [esi + 0x3544]
fstp dword [esi + 0x3544]
fld dword [esp + 0x6c]
fadd dword [esi + 0x3548]
fstp dword [esi + 0x3548]
fld dword [esp + 0x70]
fadd dword [esi + 0x354c]
fstp dword [esi + 0x354c]
fld dword [esi + 0x3714]
fmul dword [0x58ac74]
fstp dword [esp + 0xc]
fld dword [esi + 0x3710]
fmul dword [0x58ac74]
fstp dword [esp + 8]
fld dword [esi + 0x370c]
fmul dword [0x58ac74]
fstp dword [esp + 4]
fld dword [esi + 0x3708]
fmul dword [0x58ac74]
fstp dword [esp]
call fcn.0045dab0
fld dword [esi + 0x3550]
fsub dword [esp + 0x54]
mov ecx, esi
push 8
fstp dword [esi + 0x3550]
fld dword [esi + 0x3554]
fsub dword [esp + 0x5c]
fstp dword [esi + 0x3554]
fld dword [esi + 0x3558]
fsub dword [esp + 0x60]
fstp dword [esi + 0x3558]
fld dword [esi + 0x355c]
fsub dword [esp + 0x64]
fstp dword [esi + 0x355c]
fld dword [esi + 0x3738]
fcomp dword [0x58930c]
fnstsw ax
and eax, 0x4100
push ebp
jne 0x4c14e3
fld dword [esi + 0x3738]
fadd dword [esi + 0x3544]
fstp dword [esi + 0x3544]
fld dword [esi + 0x3738]
fadd dword [esi + 0x3554]
fstp dword [esi + 0x3554]
call fcn.004bcfd0
test al, al
jne 0x4c158e
fld dword [esi + 0x3544]
fsub dword [esi + 0x3738]
push 8
push ebp
mov ecx, esi
fstp dword [esi + 0x3544]
fld dword [esi + 0x3554]
fsub dword [esi + 0x3738]
fstp dword [esi + 0x3554]
fld dword [esi + 0x3738]
fmul dword [0x58930c]
fstp dword [esi + 0x3738]
call fcn.004bcfd0
test al, al
jne 0x4c158e
xor edi, edi
fld dword [esi + 0x3544]
fsub dword [0x58980c]
push 8
push 0
mov ecx, esi
fstp dword [esi + 0x3544]
fld dword [esi + 0x3554]
fsub dword [0x58980c]
fstp dword [esi + 0x3554]
call fcn.004bcfd0
test al, al
jne 0x4c1578
inc edi
cmp edi, 0xa
jl 0x4c14f2
push 0
mov ecx, ebx
call fcn.004c88b0
mov al, byte [esi + 0x3404]
test al, al
je 0x4c1733
mov al, byte [esi + 0x347c]
test al, al
jne 0x4c1733
mov al, byte [esi + 0x326c]
test al, al
jne 0x4c1733
mov al, byte [esi + 0x328c]
test al, al
jne 0x4c1733
mov ecx, esi
call fcn.004bbb10
jmp 0x4c176e
lea ecx, [esi + 0x3560]
call fcn.00506210
mov edx, dword [eax + 4]
xor ebp, ebp
mov dword [esi + 0x36fc], edx
lea edi, [esi + 0x3560]
mov ecx, edi
call fcn.00506210
push eax
lea ecx, [esp + 0x48]
call fcn.00499d60
fld dword [esi + 0x36fc]
fcomp dword [esp + 0x48]
fnstsw ax
and eax, 0x4100
jne 0x4c15c2
mov eax, dword [esi + 0x36fc]
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x4c]
mov dword [esi + 0x36f8], ecx
mov ecx, dword [esp + 0x50]
mov dword [esi + 0x36fc], edx
mov dword [esi + 0x3700], eax
mov eax, dword [esp + 0x44]
mov dword [esi + 0x3704], ecx
mov edx, dword [esi + 0x634]
mov dword [edx], eax
mov ecx, dword [esi + 0x634]
mov edx, dword [esp + 0x4c]
mov dword [ecx + 8], edx
mov ecx, edi
call fcn.00506220
mov ecx, dword [eax]
push ebp
mov dword [esi + 0x3708], ecx
mov edx, dword [eax + 4]
mov dword [esi + 0x370c], edx
mov ecx, dword [eax + 8]
mov dword [esi + 0x3710], ecx
mov edx, dword [eax + 0xc]
push str.Physics_Vert_Push_Out
mov dword [esi + 0x3714], edx
call fcn.004196d0
fld st(0)
fmul dword [esi + 0x3714]
sub esp, 8
lea ecx, [esp + 0x64]
fstp dword [esp + 0xc]
fld st(0)
fmul dword [esi + 0x3710]
fstp dword [esp + 8]
fld st(0)
fmul dword [esi + 0x370c]
fstp dword [esp + 4]
fmul dword [esi + 0x3708]
fstp dword [esp]
call fcn.0045dab0
mov eax, dword [esi + 0x634]
fld dword [esp + 0x54]
fadd dword [eax]
fstp dword [eax]
fld dword [esp + 0x58]
fadd dword [eax + 4]
fstp dword [eax + 4]
fld dword [esp + 0x5c]
fadd dword [eax + 8]
fstp dword [eax + 8]
fld dword [esp + 0x60]
fadd dword [eax + 0xc]
fstp dword [eax + 0xc]
mov ecx, dword [esi + 0x3710]
mov eax, dword [esi + 0x3708]
mov edx, dword [esi + 0x3714]
mov dword [esp + 0x3c], ecx
lea ecx, [esp + 0x34]
mov dword [esp + 0x34], eax
mov dword [esp + 0x40], edx
mov dword [esp + 0x38], 0
call fcn.00403940
fsqrt
fcom dword [0x589284]
fnstsw ax
and eax, 0x4100
jne 0x4c1703
fdivr dword [0x589288]
fld dword [esp + 0x34]
fmul st(1)
fstp dword [esp + 0x34]
fld dword [0x589284]
fmul st(1)
fstp dword [esp + 0x38]
fmul dword [esp + 0x3c]
fstp dword [esp + 0x3c]
jmp 0x4c1705
fstp st(0)
sub esp, 0x10
lea eax, [esp + 0x44]
mov ecx, esp
push eax
call fcn.00499d60
mov ecx, esi
call fcn.004bb890
lea ecx, [esp + 0x34]
push ecx
mov ecx, dword [esi + 0x634]
add ecx, 0x30
call fcn.004050d0
jmp 0x4c1534
mov ebp, dword [esi + 0x634]
lea edi, [ebp + 0x40]
add ebp, 0x80
push edi
mov ecx, ebp
call fcn.00499d60
lea edx, [edi + 0x10]
lea ecx, [ebp + 0x10]
push edx
call fcn.00499d60
lea eax, [edi + 0x20]
lea ecx, [ebp + 0x20]
push eax
call fcn.00499d60
add edi, 0x30
lea ecx, [ebp + 0x30]
push edi
call fcn.00499d60
mov eax, dword [esi + 0x634]
sub esp, 0x10
fld dword [esp + 0x30]
fadd dword [eax + 0x1c]
add eax, 0x10
lea ecx, [esp + 0x64]
fstp dword [esp + 0xc]
fld dword [esp + 0x2c]
fadd dword [eax + 8]
fstp dword [esp + 8]
fld dword [esp + 0x28]
fadd dword [eax + 4]
fstp dword [esp + 4]
fld dword [esp + 0x24]
fadd dword [eax]
fstp dword [esp]
call fcn.0045dab0
lea ecx, [esp + 0x54]
push ecx
mov ecx, esi
call fcn.004be050
mov bl, al
mov eax, dword [esi + 0x3520]
cmp eax, 2
je 0x4c1d44
mov eax, dword [esi + 0x634]
sub esp, 0x10
fld dword [esp + 0x30]
fadd dword [eax + 0x1c]
add eax, 0x10
lea ecx, [esp + 0x64]
fstp dword [esp + 0xc]
fld dword [esp + 0x2c]
fadd dword [eax + 8]
fstp dword [esp + 8]
fld dword [esp + 0x28]
fadd dword [eax + 4]
fstp dword [esp + 4]
fld dword [esp + 0x24]
fadd dword [eax]
fstp dword [esp]
call fcn.0045dab0
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov dword [esi + 0x3540], edx
mov edx, dword [esp + 0x60]
mov dword [esi + 0x3544], eax
mov dword [esi + 0x3548], ecx
mov dword [esi + 0x354c], edx
mov eax, dword [esi + 0x634]
test bl, bl
mov ecx, dword [eax]
mov dword [esi + 0x3550], ecx
mov edx, dword [eax + 4]
mov dword [esi + 0x3554], edx
mov ecx, dword [eax + 8]
mov dword [esi + 0x3558], ecx
mov edx, dword [eax + 0xc]
mov dword [esi + 0x355c], edx
jne 0x4c1d25
push 0
push 0x10
mov ecx, esi
call fcn.004bcfd0
test al, al
je 0x4c1d25
lea edi, [esi + 0x3560]
mov ecx, edi
call fcn.00506220
fld dword [eax + 4]
fcomp dword [0x589600]
fnstsw ax
test ah, 5
jp 0x4c1896
mov bl, 1
jmp 0x4c1898
xor bl, bl
mov eax, dword [esi + 0x634]
sub esp, 0x10
fld dword [esp + 0x30]
fadd dword [eax + 0x1c]
add eax, 0x10
lea ecx, [esp + 0x64]
fstp dword [esp + 0xc]
fld dword [esp + 0x2c]
fadd dword [eax + 8]
fstp dword [esp + 8]
fld dword [esp + 0x28]
fadd dword [eax + 4]
fstp dword [esp + 4]
fld dword [esp + 0x24]
fadd dword [eax]
fstp dword [esp]
call fcn.0045dab0
lea eax, [esp + 0x54]
mov ecx, esi
push eax
call fcn.004bddf0
test al, al
je 0x4c190b
mov ecx, dword [esi + 0x634]
fld dword [ecx + 0x34]
fcomp dword [0x5895f4]
fnstsw ax
and eax, 0x4100
je 0x4c1d36
test bl, bl
jne 0x4c1d36
mov ecx, edi
call fcn.00506220
push eax
lea ecx, [esp + 0x38]
call fcn.00499d60
mov ecx, edi
call fcn.00506210
mov ecx, dword [esi + 0x634]
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov eax, dword [esi + 0x634]
fld dword [esp + 0x34]
fadd dword [eax]
fstp dword [eax]
fld dword [esp + 0x38]
fadd dword [eax + 4]
fstp dword [eax + 4]
fld dword [esp + 0x3c]
fadd dword [eax + 8]
fstp dword [eax + 8]
fld dword [esp + 0x40]
fadd dword [eax + 0xc]
fstp dword [eax + 0xc]
mov al, byte [esi + 0x36d4]
test al, al
je 0x4c1c65
push 0
mov ecx, esi
call fcn.004bc960
mov ecx, esi
call fcn.004c08f0
push 0
push str.Landed
mov ecx, esi
call fcn.004a9de0
mov al, byte [esi + 0x3404]
test al, al
jne 0x4c19b4
mov al, byte [esi + 0x347c]
test al, al
jne 0x4c19b4
mov byte [esi + 0x3263], 0
jmp 0x4c19c2
mov byte [esi + 0x3262], 1
mov byte [esi + 0x3263], 1
mov ecx, edi
call fcn.00506250
cmp dword [esi + 0x37bc], eax
je 0x4c19de
mov byte [esi + 0x37c0], 1
mov dword [esi + 0x37bc], eax
mov ecx, dword [esi + 0x634]
mov ebp, dword [esi + 0x37bc]
mov ebx, dword [0xab5be0]
push 1
mov edx, dword [ecx + 0x34]
mov ecx, esi
push edx
call fcn.004cbd00
mov eax, dword [esi + 0x634]
push ecx
mov ecx, ebx
fstp dword [esp]
push eax
push ebp
push 3
call fcn.00506550
mov al, byte [esi + 0x77b]
test al, al
jne 0x4c1a2e
lea ecx, [esi + 0x6f0]
mov byte [esi + 0x77b], 0
call fcn.004e0f90
lea ebp, [esi + 0x3614]
push edi
mov ecx, ebp
call fcn.0041edc0
mov ecx, dword [edi + 0x20]
lea edx, [edi + 0x24]
mov dword [ebp + 0x20], ecx
push edx
lea ecx, [ebp + 0x24]
call fcn.0041cec0
mov eax, dword [edi + 0x78]
lea ecx, [edi + 0x7c]
push ecx
lea ecx, [ebp + 0x7c]
mov dword [ebp + 0x78], eax
call fcn.00499d60
lea edx, [edi + 0x8c]
lea ecx, [ebp + 0x8c]
push edx
call fcn.00499d60
lea eax, [edi + 0x9c]
lea ecx, [ebp + 0x9c]
push eax
call fcn.00473b50
mov ecx, dword [edi + 0xa8]
push ebp
mov dword [ebp + 0xa8], ecx
mov edx, dword [edi + 0xac]
mov dword [ebp + 0xac], edx
mov eax, dword [edi + 0xb0]
push 3
mov ecx, esi
mov dword [ebp + 0xb0], eax
call fcn.004b90b0
mov al, byte [esi + 0x3530]
test al, al
jne 0x4c1d44
mov al, byte [esi + 0x3263]
test al, al
jne 0x4c1b0d
mov al, byte [esi + 0x3262]
test al, al
jne 0x4c1b0d
mov ecx, dword [esi + 0x634]
fld dword [ecx + 0x30]
fcomp dword [0x589284]
fnstsw ax
test ah, 0x44
jp 0x4c1b0d
fld dword [ecx + 0x38]
fcomp dword [0x589284]
fnstsw ax
test ah, 0x44
jp 0x4c1b0d
mov al, byte [esi + 0x7a4]
test al, al
je 0x4c1b0d
mov dword [ecx + 0x34], 0
jmp 0x4c1b4f
mov ecx, edi
call fcn.00506220
mov ecx, dword [esi + 0x634]
push eax
add ecx, 0x30
call fcn.00405060
mov ebp, dword [esi + 0x634]
add ebp, 0x30
mov ecx, ebp
call fcn.00403940
fcomp dword [0x58971c]
fnstsw ax
test ah, 5
jp 0x4c1b4f
push 0
push 0
push 0
push 0
mov ecx, ebp
call fcn.0045dab0
push 0
lea ecx, [esi + 0x3404]
call fcn.004c88b0
mov ecx, edi
call fcn.00506220
mov ecx, dword [eax]
push 1
mov dword [esi + 0x3770], ecx
mov edx, dword [eax + 4]
mov dword [esi + 0x3774], edx
mov ecx, dword [eax + 8]
mov dword [esi + 0x3778], ecx
mov edx, dword [eax + 0xc]
mov dword [esi + 0x377c], edx
mov eax, dword [esi + 0x3770]
mov dword [esi + 0x3780], eax
mov ecx, dword [esi + 0x3774]
mov dword [esi + 0x3784], ecx
mov edx, dword [esi + 0x3778]
mov dword [esi + 0x3788], edx
mov eax, dword [esi + 0x377c]
mov dword [esi + 0x378c], eax
mov ecx, dword [esi + 0x3770]
mov dword [esi + 0x3790], ecx
mov edx, dword [esi + 0x3774]
mov dword [esi + 0x3794], edx
mov eax, dword [esi + 0x3778]
mov dword [esi + 0x3798], eax
mov ecx, dword [esi + 0x377c]
mov dword [esi + 0x379c], ecx
mov eax, dword [esi + 0x634]
mov edx, dword [esi + 0x3770]
add eax, 0x50
mov dword [eax], edx
mov ecx, dword [esi + 0x3774]
mov dword [eax + 4], ecx
mov edx, dword [esi + 0x3778]
mov dword [eax + 8], edx
mov ecx, dword [esi + 0x377c]
mov dword [eax + 0xc], ecx
mov ecx, dword [esi + 0x634]
add ecx, 0x40
call fcn.00403370
mov esi, dword [esi + 0x634]
lea edi, [esi + 0x40]
add esi, 0x80
push edi
mov ecx, esi
call fcn.00499d60
lea edx, [edi + 0x10]
lea ecx, [esi + 0x10]
push edx
call fcn.00499d60
lea eax, [edi + 0x20]
lea ecx, [esi + 0x20]
push eax
call fcn.00499d60
add edi, 0x30
lea ecx, [esi + 0x30]
push edi
call fcn.00499d60
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret
lea ecx, [esp + 0x34]
push ecx
mov ecx, dword [esi + 0x634]
add ecx, 0x30
call fcn.004050d0
mov ecx, dword [esi + 0x634]
lea edx, [esp + 0x34]
push edx
add ecx, 0x60
call fcn.004050d0
mov ecx, dword [esi + 0x634]
push 2
add ecx, 0x40
call fcn.00403370
mov eax, dword [esi + 0x634]
lea edi, [eax + 0x40]
lea ebp, [eax + 0x80]
push edi
mov ecx, ebp
call fcn.00499d60
lea eax, [edi + 0x10]
lea ecx, [ebp + 0x10]
push eax
call fcn.00499d60
lea ecx, [edi + 0x20]
push ecx
lea ecx, [ebp + 0x20]
call fcn.00499d60
add edi, 0x30
lea ecx, [ebp + 0x30]
push edi
call fcn.00499d60
push 0
push str.Skater_Min_Distance_To_Wall
call fcn.004196d0
fld dword [esp + 0x48]
fmul st(1)
sub esp, 8
lea ecx, [esp + 0x64]
fstp dword [esp + 0xc]
fld dword [esp + 0x4c]
fmul st(1)
fstp dword [esp + 8]
fld dword [esp + 0x48]
fmul st(1)
fstp dword [esp + 4]
fmul dword [esp + 0x44]
fstp dword [esp]
call fcn.0045dab0
mov ecx, dword [esi + 0x634]
lea edx, [esp + 0x54]
push edx
call fcn.0041fc50
jmp 0x4c1d36
mov al, byte [esi + 0x3404]
test al, al
jne 0x4c1d36
mov ecx, esi
call fcn.004bf170
mov ecx, esi
call fcn.004beb80
mov ecx, esi
call fcn.004bc570
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret