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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x214
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov esi, dword [edi + 0x54]
mov ebx, ecx
mov ecx, dword [ebx + 0x30]
mov dword [esp + 0x80], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
mov dword [ebx + 0xbac], esi
mov eax, dword [ecx + 0x164]
test eax, eax
mov dword [esp + 0x18], esi
jne 0x489655
add ecx, 0x108
mov eax, dword [ecx]
mov dword [esp + 0x20], eax
mov edx, dword [ecx + 4]
mov dword [esp + 0x24], edx
mov eax, dword [ecx + 8]
mov dword [esp + 0x28], eax
jmp 0x48965f
lea edx, [esp + 0x20]
push edx
call fcn.004d2520
lea eax, [esp + 0x60]
push eax
mov ecx, ebx
call fcn.004ce0e0
test esi, esi
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], eax
mov dword [esp + 0x74], 0x3f800000
mov dword [esp + 0x70], 0x3f800000
mov dword [esp + 0x6c], 0x3f800000
jle 0x48987d
mov edx, dword [esp + 0x18]
lea esi, [ebx + 0xbb0]
lea ecx, [ebx + 0xc08]
add edi, 0x84
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], ecx
mov dword [esp + 0xc], edi
mov dword [esp + 0x1c], edx
jmp 0x4896d3
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
mov eax, dword [edi]
push eax
lea ecx, [esp + 0x11c]
push str._s.pi2
push ecx
call fcn.0058c396
mov ecx, dword [0x68008c]
add esp, 0xc
push 0
push 1
lea edx, [esp + 0x120]
push edx
push 0
call fcn.004e5d20
push 1
push 0xc
lea ecx, [esp + 0x80]
push ecx
lea edx, [esp + 0x38]
push edx
mov edx, dword [edi]
lea ecx, [esp + 0x7c]
push ecx
mov ecx, dword [0x68008c]
push eax
push edx
call fcn.004e8680
mov dword [esi], eax
mov dword [eax + 0xc0], ebx
mov ecx, dword [ebx + 0x30]
mov eax, dword [esi]
mov edx, dword [ecx + 0x10]
mov edi, dword [eax + 0x10]
and edx, 2
or edi, edx
mov dword [eax + 0x10], edi
mov eax, dword [esi]
or dword [eax + 0x10], 0x1000
mov eax, dword [esi]
mov ecx, dword [ebx + 0x30]
push eax
call fcn.004d3eb0
mov eax, dword [ebx + 0x30]
lea esi, [eax + 0x30]
mov eax, dword [esp + 0xc]
fld dword [eax - 0x1c]
mov ecx, 0x10
fchs
lea edi, [esp + 0xd0]
fstp dword [esp + 0x44]
mov edx, dword [esp + 0x44]
fld dword [eax - 0x18]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x14]
mov ecx, esi
fstp dword [esp + 0x48]
fld dword [eax - 0x14]
mov eax, dword [esp + 0x48]
mov dword [ecx], edx
fstp dword [esp + 0x4c]
mov edx, dword [esp + 0x4c]
mov dword [ecx + 4], eax
mov dword [ecx + 8], edx
lea ecx, [esp + 0x90]
call fcn.00529e60
push esi
lea ecx, [esp + 0x94]
call fcn.00529ea0
lea eax, [esp + 0xd0]
push eax
lea ecx, [esp + 0x94]
push ecx
push 0x62f500
call fcn.004a1286
mov ecx, 0x10
mov esi, 0x62f500
lea edi, [esp + 0x90]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0xc0]
mov esi, dword [esp + 0x10]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], ecx
mov ecx, dword [esi]
push 0
lea eax, [esp + 0x30]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x30], edx
mov edx, dword [ecx]
push eax
call dword [edx]
mov ecx, dword [esi]
mov edx, dword [ecx]
push 0
lea eax, [esp + 0x64]
push eax
call dword [edx + 4]
mov ecx, dword [ebx + 0x30]
push ecx
mov ecx, dword [esi]
call fcn.004d1920
mov ecx, dword [esi]
push 0
push 0
call fcn.004d1a30
mov edx, dword [esi]
mov eax, dword [esp + 0xc]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x14]
add eax, 0x34
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x1c]
add esi, 4
add edx, 0xc
dec eax
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], eax
jne 0x4896cb
mov edi, dword [ebp + 8]
mov esi, dword [edi + 0x4d0]
mov ecx, dword [ebx + 0x30]
mov dword [ebx + 0xd10], esi
mov eax, dword [ecx + 0x164]
test eax, eax
mov dword [esp + 0x18], esi
jne 0x4898b6
add ecx, 0x108
mov eax, dword [ecx]
mov dword [esp + 0x20], eax
mov edx, dword [ecx + 4]
mov dword [esp + 0x24], edx
mov eax, dword [ecx + 8]
mov dword [esp + 0x28], eax
jmp 0x4898c0
lea edx, [esp + 0x20]
push edx
call fcn.004d2520
lea eax, [esp + 0x60]
push eax
mov ecx, ebx
call fcn.004ce0e0
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x5c], eax
mov eax, dword [0x68aeec]
mov ecx, eax
shl ecx, 6
mov dword [esp + 0x58], edx
mov edx, dword [0x68aee8]
add ecx, edx
inc eax
mov dword [esp + 0x50], ecx
mov ecx, eax
shl ecx, 6
add ecx, edx
inc eax
test esi, esi
mov dword [esp + 0x8c], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x1c], ecx
mov dword [0x68aeec], eax
jle 0x489ad1
mov edx, dword [esp + 0x18]
lea esi, [ebx + 0xd14]
lea ecx, [ebx + 0xd24]
add edi, 0x4f8
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], edi
mov dword [esp + 0x18], edx
jmp 0x489965
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x14]
mov eax, dword [edi]
push eax
lea ecx, [esp + 0x11c]
push str._s.pi2
push ecx
call fcn.0058c396
mov ecx, dword [0x68008c]
add esp, 0xc
push 0
push 1
lea edx, [esp + 0x120]
push edx
push 0
call fcn.004e5d20
push 1
push 0xc
lea ecx, [esp + 0x8c]
push ecx
lea edx, [esp + 0x60]
push edx
mov edx, dword [edi]
lea ecx, [esp + 0x7c]
push ecx
mov ecx, dword [0x68008c]
push eax
push edx
call fcn.004e8680
mov dword [esi], eax
mov dword [eax + 0xc0], ebx
mov eax, dword [esi]
mov ecx, dword [ebx + 0x30]
push eax
call fcn.004d3eb0
mov esi, dword [ebx + 0x30]
mov eax, dword [esp + 0xc]
mov edi, dword [esp + 0x1c]
add esi, 0x30
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
fld dword [eax - 0x24]
fchs
fstp dword [esp + 0x38]
fld dword [eax - 0x20]
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x38]
mov edi, dword [esp + 0x50]
mov ecx, esi
fstp dword [esp + 0x3c]
fld dword [eax - 0x1c]
mov eax, dword [esp + 0x3c]
mov dword [ecx], edx
fstp dword [esp + 0x40]
mov edx, dword [esp + 0x40]
mov dword [ecx + 4], eax
mov dword [ecx + 8], edx
mov ecx, edi
call fcn.00529e60
push esi
mov ecx, edi
call fcn.00529ea0
mov eax, dword [esp + 0x1c]
push eax
push edi
push 0x62f500
call fcn.004a1286
mov eax, dword [esp + 0x50]
mov ecx, 0x10
mov esi, 0x62f500
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [eax + 0x30]
mov edx, dword [eax + 0x34]
mov eax, dword [eax + 0x38]
mov esi, dword [esp + 0x14]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], eax
mov ecx, dword [esi]
mov edx, dword [ecx]
push 0
lea eax, [esp + 0x58]
push eax
call dword [edx]
mov ecx, dword [esi]
mov edx, dword [ecx]
push 0
lea eax, [esp + 0x64]
push eax
call dword [edx + 4]
mov ecx, dword [ebx + 0x30]
push ecx
mov ecx, dword [esi]
call fcn.004d1920
mov ecx, dword [esi]
push 0
push 0
call fcn.004d1a30
mov eax, dword [esp + 0xc]
mov edx, dword [esi]
mov ecx, dword [esp + 0x10]
mov dword [eax + 4], edx
add eax, 0x2c
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x18]
add esi, 4
add ecx, 0xc
dec eax
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], eax
jne 0x48995d
mov edi, dword [ebp + 8]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x2c], eax
mov eax, dword [edi + 0x40]
test eax, eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], edx
je 0x489bda
push eax
lea eax, [esp + 0x11c]
push str._s.pi2
push eax
call fcn.0058c396
add esp, 0xc
push 0
push 1
lea ecx, [esp + 0x120]
push ecx
mov ecx, dword [0x68008c]
push 3
call fcn.004e5d20
push 1
push 0xc
lea edx, [esp + 0x80]
push edx
lea ecx, [esp + 0x38]
push ecx
mov ecx, dword [0x68008c]
lea edx, [esp + 0x7c]
push edx
push eax
mov eax, dword [edi + 0x40]
push eax
call fcn.004e8680
mov ecx, dword [ebx + 0xba0]
mov dword [ebx + ecx*4 + 0xba4], eax
mov edx, dword [ebx + 0xba0]
mov eax, dword [ebx + edx*4 + 0xba4]
mov dword [eax + 0xc0], ebx
mov ecx, dword [ebx + 0xba0]
mov edx, dword [ebx + ecx*4 + 0xba4]
mov ecx, dword [ebx + 0x30]
push edx
call fcn.004d3eb0
mov eax, dword [ebx + 0xba0]
mov ecx, dword [ebx + eax*4 + 0xba4]
mov edx, dword [ecx]
push 0
lea eax, [esp + 0x64]
push eax
call dword [edx + 4]
mov ecx, dword [ebx + 0x30]
mov edx, dword [ebx + 0xba0]
push ecx
mov ecx, dword [ebx + edx*4 + 0xba4]
call fcn.004d1920
mov eax, dword [ebx + 0xba0]
mov ecx, dword [ebx + eax*4 + 0xba4]
mov dword [edi + 0x44], ecx
mov edx, dword [ebx + 0xba0]
mov ecx, dword [ebx + edx*4 + 0xba4]
push 0
push 0
call fcn.004d1a30
inc dword [ebx + 0xba0]
mov eax, dword [edi + 0x48]
test eax, eax
je 0x489ccb
push eax
lea eax, [esp + 0x11c]
push str._s.pi2
push eax
call fcn.0058c396
add esp, 0xc
push 0
push 1
lea ecx, [esp + 0x120]
push ecx
mov ecx, dword [0x68008c]
push 3
call fcn.004e5d20
push 1
push 0xc
lea edx, [esp + 0x80]
push edx
lea ecx, [esp + 0x38]
push ecx
mov ecx, dword [0x68008c]
lea edx, [esp + 0x7c]
push edx
push eax
mov eax, dword [edi + 0x48]
push eax
call fcn.004e8680
mov ecx, dword [ebx + 0xba0]
mov dword [ebx + ecx*4 + 0xba4], eax
mov edx, dword [ebx + 0xba0]
mov eax, dword [ebx + edx*4 + 0xba4]
mov dword [eax + 0xc0], ebx
mov ecx, dword [ebx + 0xba0]
mov edx, dword [ebx + ecx*4 + 0xba4]
mov ecx, dword [ebx + 0x30]
push edx
call fcn.004d3eb0
mov eax, dword [ebx + 0xba0]
mov ecx, dword [ebx + eax*4 + 0xba4]
mov edx, dword [ecx]
push 0
lea eax, [esp + 0x64]
push eax
call dword [edx + 4]
mov ecx, dword [ebx + 0x30]
mov edx, dword [ebx + 0xba0]
push ecx
mov ecx, dword [ebx + edx*4 + 0xba4]
call fcn.004d1920
mov eax, dword [ebx + 0xba0]
mov ecx, dword [ebx + eax*4 + 0xba4]
mov dword [edi + 0x4c], ecx
mov edx, dword [ebx + 0xba0]
mov ecx, dword [ebx + edx*4 + 0xba4]
push 0
push 0
call fcn.004d1a30
inc dword [ebx + 0xba0]
mov ecx, dword [ebx + 0x30]
call fcn.004d59a0
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x489d3a
push str.CHLOVehicle::InitTrackedDynamics
push 0x633
push 0x5e86a8
call fcn.004bdd70
push 0x35
push 0x1a4
call fcn.004be2d0
add esp, 0x14
test eax, eax
je 0x489d0a
mov ecx, eax
call fcn.0051c380
jmp 0x489d0c
xor eax, eax
mov ecx, dword [ebx + 0x30]
push edi
push ecx
lea edx, [esp + 0x68]
push edx
lea ecx, [esp + 0x2c]
push ecx
mov ecx, eax
mov dword [ebx + 0xd58], eax
call fcn.0051c4b0
mov edx, dword [ebx + 0xd58]
mov ecx, dword [0x680090]
push edx
call fcn.004f6d80
mov eax, dword [0x68aeec]
pop edi
sub eax, 2
pop esi
mov dword [0x68aeec], eax
pop ebx
mov esp, ebp
pop ebp
ret 8