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

Disassembly:
push 0xffffffffffffffff
push 0x67c778
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x28
mov eax, dword [esp + 0x3c]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x44]
xor ebx, ebx
push edi
mov dword [esi], esi
mov dword [esi + 4], esi
mov dword [esi + 8], eax
mov dword [esi + 0x10], 0x10000060
mov dword [esi + 0x14], ebx
mov dword [esi + 0x18], ebx
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x28], ebx
push str.3rdPersonNeedle
mov dword [esp + 0x44], ebx
mov dword [esi + 0x2c], ebx
call fcn.005906e0
add esp, 4
push eax
mov eax, esi
call fcn.004969f0
push str.3rdPersonTach
mov dword [esi + 0x30], eax
call fcn.005906e0
add esp, 4
push eax
mov eax, esi
call fcn.004969f0
push str.rpm_fill
mov dword [esi + 0x68], eax
call fcn.005906e0
add esp, 4
push eax
mov eax, esi
call fcn.004969f0
push str.3rdPersonSpeed
mov dword [esi + 0x6c], eax
call fcn.005906e0
add esp, 4
push eax
mov eax, esi
call fcn.00496990
push str.3rdPersonSpeedUnits
mov dword [esi + 0x70], eax
call fcn.005906e0
add esp, 4
push eax
mov eax, esi
call fcn.00496990
push str.3rdPersonShiftUp
mov dword [esi + 0x74], eax
call fcn.005906e0
add esp, 4
push eax
mov eax, esi
call fcn.004969f0
push str.3rdPersonGear
mov dword [esi + 0x78], eax
call fcn.005906e0
add esp, 4
push eax
mov eax, esi
call fcn.00496990
push str.OptimalRPM
mov dword [esi + 0x7c], eax
call fcn.005906e0
add esp, 4
push eax
mov eax, esi
call fcn.004969f0
push str.GearBkg
mov dword [esi + 0x80], eax
call fcn.005906e0
add esp, 4
push eax
mov eax, esi
call fcn.004969f0
mov dword [esi + 0x84], eax
push str.PerfectShift
call fcn.005906e0
add esp, 4
push eax
mov eax, esi
call fcn.00496990
push str.MissedShift
mov dword [esi + 0x88], eax
call fcn.005906e0
add esp, 4
push eax
mov eax, esi
call fcn.00496990
push str.Redline
mov dword [esi + 0x8c], eax
call fcn.005906e0
add esp, 4
push eax
mov eax, esi
call fcn.004969f0
mov dword [esi + 0x94], eax
cmp dword [0x77bdf0], 1
push str.Shift_light
jle 0x49724a
call fcn.005906e0
add esp, 4
push eax
mov eax, esi
call fcn.004969f0
mov edi, eax
cmp edi, ebx
mov dword [esi + 0x90], edi
je 0x497260
push str.PulseGreen
call fcn.005906e0
add esp, 4
push eax
mov ecx, edi
call fcn.00592280
mov ebp, eax
cmp ebp, ebx
je 0x497260
push ebx
push ebp
mov ecx, edi
call fcn.00592460
mov dword [ebp + 0x10], ebx
jmp 0x497260
call fcn.005906e0
add esp, 4
push eax
mov eax, esi
call fcn.004969f0
mov dword [esi + 0x90], eax
lea ecx, [esi + 0x34]
xor eax, eax
mov dword [esp + 0x4c], ecx
lea esp, [esp]
inc eax
push eax
push str.RPM__d
push 0x20
lea edx, [esp + 0x24]
mov dword [esp + 0x1c], eax
call fcn.004e58e0
lea edx, [esp + 0x24]
push edx
call fcn.005906e0
mov edi, dword [esi + 8]
add esp, 0x10
test edi, edi
mov ebx, eax
je 0x4972ef
push 0x737cf4
mov eax, edi
call fcn.004e3110
test eax, eax
je 0x4972b3
mov eax, dword [eax + 0x18]
test eax, eax
jne 0x4972df
mov eax, dword [0x72a5b8]
test eax, eax
je 0x49730e
mov ebp, dword [eax + 8]
test ebp, ebp
je 0x4972f4
push edi
lea ecx, [ebp + 0xdc]
call fcn.005907f0
test eax, eax
jne 0x4972df
push edi
mov ecx, ebp
call fcn.0058a7b0
test eax, eax
je 0x4972ef
mov ecx, eax
test ecx, ecx
je 0x4972ef
push ebx
call fcn.00593470
test eax, eax
jne 0x497302
mov eax, dword [0x72a5b8]
test eax, eax
je 0x49730e
mov ecx, dword [eax + 8]
push edi
push ebx
call fcn.0058a820
mov edi, eax
test edi, edi
je 0x49730e
cmp dword [edi + 0x18], 1
je 0x497312
xor edi, edi
jmp 0x49732f
call fcn.00598270
test eax, eax
je 0x497320
mov dword [eax + 8], edi
jmp 0x497322
xor eax, eax
mov ecx, dword [esi + 4]
mov dword [ecx], eax
mov dword [esi + 4], eax
mov dword [eax + 4], ecx
mov dword [eax], esi
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x10]
mov dword [ecx], edi
add ecx, 4
cmp eax, 0xa
mov dword [esp + 0x4c], ecx
jl 0x497270
push str.RPM_bar
call fcn.005906e0
mov ebp, dword [esi + 8]
add esp, 4
test ebp, ebp
mov ebx, eax
je 0x4973b2
push 0x737cf4
mov eax, ebp
call fcn.004e3110
test eax, eax
je 0x497376
mov eax, dword [eax + 0x18]
test eax, eax
jne 0x4973a2
mov eax, dword [0x72a5b8]
test eax, eax
je 0x4973d1
mov edi, dword [eax + 8]
test edi, edi
je 0x4973b7
push ebp
lea ecx, [edi + 0xdc]
call fcn.005907f0
test eax, eax
jne 0x4973a2
push ebp
mov ecx, edi
call fcn.0058a7b0
test eax, eax
je 0x4973b2
mov ecx, eax
test ecx, ecx
je 0x4973b2
push ebx
call fcn.00593470
test eax, eax
jne 0x4973c5
mov eax, dword [0x72a5b8]
test eax, eax
je 0x4973d1
mov ecx, dword [eax + 8]
push ebp
push ebx
call fcn.0058a820
mov edi, eax
test edi, edi
je 0x4973d1
cmp dword [edi + 0x18], 1
je 0x4973d5
xor edi, edi
jmp 0x4973f2
call fcn.00598270
test eax, eax
je 0x4973e3
mov dword [eax + 8], edi
jmp 0x4973e5
xor eax, eax
mov ecx, dword [esi + 4]
mov dword [ecx], eax
mov dword [esi + 4], eax
mov dword [eax + 4], ecx
mov dword [eax], esi
push str.RPM45Corner_Left
mov dword [esi + 0x5c], edi
call fcn.005906e0
mov edi, dword [esi + 8]
add esp, 4
test edi, edi
mov ebx, eax
je 0x49745e
push 0x737cf4
mov eax, edi
call fcn.004e3110
test eax, eax
je 0x497422
mov eax, dword [eax + 0x18]
test eax, eax
jne 0x49744e
mov eax, dword [0x72a5b8]
test eax, eax
je 0x49747d
mov ebp, dword [eax + 8]
test ebp, ebp
je 0x497463
push edi
lea ecx, [ebp + 0xdc]
call fcn.005907f0
test eax, eax
jne 0x49744e
push edi
mov ecx, ebp
call fcn.0058a7b0
test eax, eax
je 0x49745e
mov ecx, eax
test ecx, ecx
je 0x49745e
push ebx
call fcn.00593470
test eax, eax
jne 0x497471
mov eax, dword [0x72a5b8]
test eax, eax
je 0x49747d
mov ecx, dword [eax + 8]
push edi
push ebx
call fcn.0058a820
mov edi, eax
test edi, edi
je 0x49747d
cmp dword [edi + 0x18], 1
je 0x497481
xor edi, edi
jmp 0x49749e
call fcn.00598270
test eax, eax
je 0x49748f
mov dword [eax + 8], edi
jmp 0x497491
xor eax, eax
mov ecx, dword [esi + 4]
mov dword [ecx], eax
mov dword [esi + 4], eax
mov dword [eax + 4], ecx
mov dword [eax], esi
push str.RPM45Corner_Right
mov dword [esi + 0x60], edi
call fcn.005906e0
mov edi, dword [esi + 8]
add esp, 4
test edi, edi
mov ebx, eax
je 0x49750a
push 0x737cf4
mov eax, edi
call fcn.004e3110
test eax, eax
je 0x4974ce
mov eax, dword [eax + 0x18]
test eax, eax
jne 0x4974fa
mov eax, dword [0x72a5b8]
test eax, eax
je 0x497529
mov ebp, dword [eax + 8]
test ebp, ebp
je 0x49750f
push edi
lea ecx, [ebp + 0xdc]
call fcn.005907f0
test eax, eax
jne 0x4974fa
push edi
mov ecx, ebp
call fcn.0058a7b0
test eax, eax
je 0x49750a
mov ecx, eax
test ecx, ecx
je 0x49750a
push ebx
call fcn.00593470
test eax, eax
jne 0x49751d
mov eax, dword [0x72a5b8]
test eax, eax
je 0x497529
mov ecx, dword [eax + 8]
push edi
push ebx
call fcn.0058a820
mov edi, eax
test edi, edi
je 0x497529
cmp dword [edi + 0x18], 1
je 0x49752d
xor edi, edi
jmp 0x49754a
call fcn.00598270
test eax, eax
je 0x49753b
mov dword [eax + 8], edi
jmp 0x49753d
xor eax, eax
mov ecx, dword [esi + 4]
mov dword [ecx], eax
mov dword [esi + 4], eax
mov dword [eax + 4], ecx
mov dword [eax], esi
push str.Shift_light_back
mov dword [esi + 0x64], edi
call fcn.005906e0
mov edi, dword [esi + 8]
add esp, 4
test edi, edi
mov ebx, eax
je 0x4975b6
push 0x737cf4
mov eax, edi
call fcn.004e3110
test eax, eax
je 0x49757a
mov eax, dword [eax + 0x18]
test eax, eax
jne 0x4975a6
mov eax, dword [0x72a5b8]
test eax, eax
je 0x4975f2
mov ebp, dword [eax + 8]
test ebp, ebp
je 0x4975bb
push edi
lea ecx, [ebp + 0xdc]
call fcn.005907f0
test eax, eax
jne 0x4975a6
push edi
mov ecx, ebp
call fcn.0058a7b0
test eax, eax
je 0x4975b6
mov ecx, eax
test ecx, ecx
je 0x4975b6
push ebx
call fcn.00593470
test eax, eax
jne 0x4975c9
mov eax, dword [0x72a5b8]
test eax, eax
je 0x4975f2
mov ecx, dword [eax + 8]
push edi
push ebx
call fcn.0058a820
mov edi, eax
test edi, edi
je 0x4975f2
cmp dword [edi + 0x18], 1
jne 0x4975f2
call fcn.00598270
test eax, eax
je 0x4975e3
mov dword [eax + 8], edi
jmp 0x4975e5
xor eax, eax
mov ecx, dword [esi + 4]
mov dword [ecx], eax
mov dword [esi + 4], eax
mov dword [eax + 4], ecx
mov dword [eax], esi
mov eax, dword [esp + 0x50]
mov byte [esi + 0x98], 0
mov edi, dword [eax*4 + 0x77bee0]
xor eax, eax
cmp edi, 0xffffffff
jle 0x497638
mov edx, dword [0x77beec]
test edx, edx
jle 0x497636
mov ebp, dword [0x77bee8]
lea ecx, [ebp + 1]
mov edi, edi
movsx ebx, byte [ecx]
cmp edi, ebx
je 0x4976b5
inc eax
add ecx, 0x750
cmp eax, edx
jl 0x497620
xor eax, eax
xor ebx, ebx
cmp eax, ebx
je 0x4976e2
lea edi, [eax + 0x10]
cmp edi, ebx
je 0x4976e2
cmp byte [edi + 0x424], 0xff
jne 0x49765f
push 1
mov eax, edi
call fcn.0055c180
lea eax, [edi + 0x60]
cmp eax, ebx
je 0x4976e2
add eax, 0x1f0
cmp eax, ebx
je 0x4976e2
movsx ecx, byte [0x77bec5]
mov edx, dword [edi]
push ecx
push eax
push edx
lea edi, [esp + 0x1c]
call fcn.004311a0
mov edi, dword [esp + 0x1c]
push ebx
push ebx
push edi
call fcn.0052a160
add esp, 0x18
test eax, eax
mov edx, 0x400000
je 0x4976c2
mov eax, dword [esi + 0x68]
cmp eax, ebx
je 0x4976c9
cmp dword [eax + 0x24], edi
je 0x4976c9
mov ecx, dword [eax + 0x1c]
or ecx, edx
mov dword [eax + 0x24], edi
mov dword [eax + 0x1c], ecx
jmp 0x4976c9
imul eax, eax, 0x750
add eax, ebp
jmp 0x497638
mov byte [esi + 0x98], 1
mov eax, dword [esi + 0x94]
cmp eax, ebx
je 0x4976e2
mov ecx, dword [esp + 0x14]
cmp dword [eax + 0x24], ecx
je 0x4976e2
mov dword [eax + 0x24], ecx
or dword [eax + 0x1c], edx
mov ecx, dword [esp + 0x38]
pop edi
mov dword [esi + 0x28], ebx
mov dword [esi + 0x2c], ebx
mov eax, esi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x34
ret 0xc