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

Disassembly:
mov eax, dword [esp + 4]
sub esp, 0x58
push ebx
push ebp
push esi
push edi
call fcn.0064b620
test byte [0xb2dda0], 1
mov esi, 1
jne 0x657536
or dword [0xb2dda0], esi
call fcn.00590b60
push 0x681770
call fcn.004a9213
add esp, 4
mov eax, dword [0xb1766c]
xor ebp, ebp
xor edx, edx
cmp eax, ebp
mov dword [esp + 0x1c], ebp
mov ecx, 0xb1766c
je 0x65756b
lea esp, [esp]
mov eax, dword [eax + 4]
cmp eax, ebp
je 0x657561
mov eax, dword [eax + 0x10]
cmp eax, ebp
je 0x657561
add edx, dword [eax + 4]
mov eax, dword [ecx + 4]
add ecx, 4
cmp eax, ebp
jne 0x657550
push str.Demo_AI_defaults_to_level_6__n
call fcn.00408d10
add esp, 4
call fcn.005da1f0
movss xmm0, dword [0x6cc5fc]
push 5
push 0x6d5cf8
mov dword [eax + 8], 5
movss dword [eax + 0x10], xmm0
movss dword [eax + 0xc], xmm0
call fcn.00408d10
add esp, 8
call fcn.005da1f0
mov dword [eax], ebp
cmp dword [0x725c80], ebp
je 0x6577fc
mov eax, dword [0x725c8c]
cmp eax, ebp
je 0x6576ae
lea ecx, [eax - 1]
cmp ecx, 2
ja 0x657695
call fcn.00591b20
mov ebp, eax
mov edx, ebp
call fcn.00590b30
xor esi, esi
mov ebx, eax
or edi, 0xffffffff
cmp esi, ebx
jae 0x657652
push esi
lea eax, [ebp + 0xc]
call fcn.00590750
test eax, eax
je 0x657649
mov edx, dword [eax + 0x34]
push 0x40
push edx
lea eax, [esp + 0x30]
push eax
call fcn.004a9840
lea ecx, [esp + 0x34]
add esp, 0xc
push ecx
mov byte [esp + 0x6b], 0
call fcn.004aa53b
add esp, 4
push 0x40
lea edx, [esp + 0x2c]
push 0x725c98
push edx
call fcn.004a9780
add esp, 0xc
test eax, eax
jne 0x657649
push esi
push 0x725c98
push str._TestTrack__Found__s__track__d_n
call fcn.00587340
add esp, 0xc
mov edi, esi
add esi, 1
test edi, edi
jl 0x6575e6
jmp 0x657656
test edi, edi
jl 0x657686
push 0x9549d8
mov dword [0x9cdca4], edi
call fcn.005ae130
test eax, eax
jne 0x6577fc
push esi
push 0x725c98
push str._TestTrack__Error_:_Unable_to_choose_track__s__d___n
call fcn.00587340
add esp, 0xc
jmp 0x6577f2
push 0x725c98
push str._TestTrack__Error_:_Unable_to_locate_track__s_n
jmp 0x6577ea
push eax
push 0x6e6344
call fcn.00587340
add esp, 8
mov dword [0x725c7c], esi
jmp 0x6577fc
cmp dword [0x725cd8], ebp
je 0x6576df
call fcn.006562e0
test eax, eax
jne 0x6576d2
push str._AutoTrack__Failed_to_load_track_list___aborting_soak_test_mode.
call fcn.00408d10
add esp, 4
mov dword [0x725c80], ebp
mov dword [0x725cd8], ebp
mov byte [0x725d1c], 0
test byte [0xb2dda0], 1
jne 0x657700
or dword [0xb2dda0], esi
call fcn.00590b60
push 0x681770
call fcn.004a9213
add esp, 4
mov edx, dword [0xb1763c]
xor ebx, ebx
cmp edx, ebp
jbe 0x657721
mov ecx, 0xb17640
mov eax, dword [ecx]
cmp eax, ebp
je 0x65771a
add ebx, dword [eax + 4]
add ecx, 4
sub edx, esi
jne 0x657711
xor esi, esi
or edi, 0xffffffff
cmp esi, ebx
jae 0x6577b3
push esi
mov eax, 0xb1763c
call fcn.00590750
cmp eax, ebp
je 0x6577a6
mov eax, dword [eax + 0x34]
push 0x40
push eax
lea ecx, [esp + 0x30]
push ecx
call fcn.004a9840
lea edx, [esp + 0x34]
add esp, 0xc
push edx
mov byte [esp + 0x6b], 0
call fcn.004aa53b
movzx eax, byte [0x725d1c]
add esp, 4
shl eax, 6
push 0x40
add eax, 0x725d1d
push eax
lea ecx, [esp + 0x30]
push ecx
call fcn.004a9780
add esp, 0xc
test eax, eax
jne 0x6577a6
movzx edx, byte [0x725d1c]
shl edx, 6
push esi
add edx, 0x725d1d
push edx
push str._AutoTrack__Found__s__track__d_n
call fcn.00587340
add esp, 0xc
mov edi, esi
add esi, 1
cmp edi, ebp
jl 0x657726
jmp 0x6577b7
cmp edi, ebp
jl 0x6577e0
push 0x9549d8
mov dword [0x9cdca4], edi
call fcn.005ae130
test eax, eax
jne 0x6577fc
push esi
push 0x725c98
push str._AutoTrack__Error_:_Unable_to_choose_track__s__d___n
call fcn.00587340
add esp, 0xc
jmp 0x6577f2
push 0x725c98
push str._AutoTrack__Error_:_Unable_to_locate_track__s_n
call fcn.00587340
add esp, 8
mov dword [0x725c7c], 1
mov ecx, dword [esp + 0x6c]
call fcn.006531b0
xor ebx, ebx
cmp dword [0x939f0c], ebx
mov ebp, eax
mov dword [esp + 0x14], ebp
je 0x65783b
mov eax, 0x6e6370
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x657820
sub eax, edx
push eax
mov ecx, 0x6e6370
call fcn.00544b70
add esp, 4
jmp 0x65783e
or eax, 0xffffffff
mov edi, eax
call fcn.0061af70
mov esi, eax
lea eax, [esi - 1]
cmp eax, 3
mov dword [esp + 0x24], esi
ja case.default.0x657857
jmp dword [eax*4 + 0x657d54]
push ebx
push ebx
push 1
mov eax, 0x9540a8
mov dword [esp + 0x20], 2
call fcn.005affe0
cmp esi, 2
jne 0x65788f
push 0xb17630
mov ecx, 0x6e6388
call fcn.00592540
mov ecx, 0x6e63a0
jmp 0x6578ad
mov edi, 0x955050
call fcn.005929f0
push 0xb17630
mov ecx, str.ID_CAR_DELTA_HF
call fcn.00592540
mov ecx, str.ID_CAR_ST205
push 0xb17630
mov dword [esp + 0x1c], eax
call fcn.00592540
mov dword [esp + 0x1c], eax
xor ebp, ebp
mov esi, dword [esp + 0x18]
mov edi, ebp
imul edi, edi, 0xec8
add edi, 0x9549d8
cmp ebp, ebx
je 0x6578db
mov esi, dword [esp + 0x1c]
mov eax, esi
call fcn.005aef10
mov edx, 0xb1763c
call fcn.00591310
test byte [0xb2dda0], 1
mov eax, dword [eax + 0x44]
mov ecx, dword [eax]
mov dword [edi + 0xc], ecx
mov dword [edi + 4], ebx
jne 0x657919
or dword [0xb2dda0], 1
call fcn.00590b60
push 0x681770
call fcn.004a9213
add esp, 4
mov edx, dword [str.Gravel]
push edx
push str.Player_Variant_Choice:__s_n
call fcn.00408d10
add ebp, 1
add esp, 8
cmp ebp, 2
mov dword [edi + 8], ebx
jb 0x6578c1
jmp 0x657c97
mov esi, 1
cmp ebp, esi
jbe 0x657c97
mov ebp, dword [esp + 0x14]
mov ebx, 0x9558a0
push 0
push 0
push esi
mov eax, 0x9540a8
call fcn.005affe0
mov edi, dword [0x9549e8]
push ebx
call fcn.005ae130
mov dword [ebx + 8], 0
add esi, 1
add ebx, 0xec8
cmp esi, ebp
jb 0x657953
jmp 0x657c97
cmp dword [0x7262f8], ebx
jne 0x657ad6
call fcn.00591b20
mov esi, dword [0x7262e8]
mov edi, eax
mov eax, 0x95bd54
mov dword [esp + 0x18], edi
call fcn.00612f00
mov ecx, dword [0x7262ec]
mov edx, dword [0x7262f0]
imul ecx, ecx, 0xb98
imul edx, edx, 0x218
add eax, ecx
lea ecx, [eax + edx + 0x160]
mov eax, dword [0x7262f4]
lea eax, [eax + eax*2]
mov dword [esp + 0x20], ecx
shl eax, 5
mov ecx, dword [eax + ecx + 0x58]
mov ecx, dword [ecx + 0x18]
push edi
call fcn.00592500
mov dword [esp + 0x1c], eax
xor ebx, ebx
push 0
push 0
push ebx
mov eax, 0x9540a8
call fcn.005affe0
mov edi, dword [esp + 0x1c]
mov ebp, ebx
imul ebp, ebp, 0xec8
add ebp, 0x9549d8
push ebp
mov dword [ebp + 0x1c], 7
call fcn.005ae130
test ebx, ebx
jne 0x657a95
push 0x726260
call fcn.005d2950
add esp, 4
push ebx
push 0x955050
mov esi, eax
call fcn.00592090
mov eax, esi
mov edi, ebp
call fcn.005aef10
mov edx, dword [esp + 0x18]
call fcn.00592460
cmp eax, 1
lea ecx, [ebx + 4]
je 0x657a5d
mov ecx, dword [0x7262e0]
mov eax, ebp
call fcn.005ae0d0
mov edx, dword [esp + 0x18]
add edx, 0xc
call fcn.00591310
mov edx, dword [eax + 0x44]
mov eax, dword [edx]
mov dword [ebp + 0xc], eax
mov eax, ebp
mov edi, 0x9549d8
call fcn.005ae2b0
add ebx, 1
cmp ebx, 6
jb 0x6579f1
jmp 0x657c97
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + 0x210]
mov eax, dword [edx + 0x30]
mov esi, dword [eax + ebx*4 - 4]
test esi, esi
je 0x657aaf
mov eax, dword [esi + 0xc]
jmp 0x657abe
mov ecx, dword [esp + 0x18]
push 0xffffffffffffffff
add ecx, 0xc
push ecx
call fcn.005926c0
mov edi, ebp
call fcn.005aef10
mov ecx, dword [esi]
mov eax, ebp
call fcn.005ae0d0
mov edx, dword [esi + 4]
mov dword [ebp + 0xc], edx
jmp 0x657a84
xor ebx, ebx
test ebp, ebp
jbe 0x657c97
mov ebp, 0x9549d8
push 0
push 0
push ebx
mov eax, 0x9540a8
call fcn.005affe0
mov edi, dword [0x9549e8]
push ebp
call fcn.005ae130
push 0x726260
mov dword [ebp + 8], 0
call fcn.005d2950
add esp, 4
push 0
push 0x955050
mov esi, eax
call fcn.00592090
mov eax, esi
mov edi, ebp
call fcn.005aef10
mov edx, 0xb1763c
call fcn.00591310
xor ecx, ecx
test eax, eax
je 0x657b58
cmp dword [eax + 0x24], ecx
je 0x657b45
mov ecx, 1
cmp dword [eax + 0x28], 0
je 0x657b4e
add ecx, 1
cmp ecx, 1
mov ecx, 4
je 0x657b5e
mov ecx, dword [0x7262e0]
mov eax, ebp
call fcn.005ae0d0
mov edx, 0xb1763c
call fcn.00591310
mov eax, dword [eax + 0x44]
mov ecx, dword [eax]
mov dword [ebp + 0xc], ecx
add ebx, 1
add ebp, 0xec8
cmp ebx, dword [esp + 0x14]
jb 0x657ae5
jmp 0x657c97
cmp dword [0x725c88], ebx
je 0x657ba4
mov dword [esp + 0x14], 1
jmp 0x657c97
mov ebx, 1
cmp ebp, ebx
jbe 0x657c97
mov ebp, 0x9558a0
push 0
push 0
push ebx
mov eax, 0x9540a8
call fcn.005affe0
mov edi, dword [0x9549e8]
push ebp
call fcn.005ae130
lea eax, [ebx - 1]
cmp eax, 4
mov dword [ebp + 8], 0
ja case.default.0x657be0
jmp dword [eax*4 + 0x657d64]
push 0xb17630
mov ecx, 0x6e63d8
call fcn.00592540
jmp 0x657c5b
push 0xb17630
mov ecx, str.ID_CAR_206
call fcn.00592540
jmp 0x657c5b
push 0xb17630
mov ecx, str.ID_CAR_RSFOCUS
call fcn.00592540
jmp 0x657c5b
push 0xb17630
mov ecx, str.ID_CAR_MITSUBISHIEVO
call fcn.00592540
jmp 0x657c5b
push 0xb17630
mov ecx, str.ID_CAR_XSARA
call fcn.00592540
jmp 0x657c5b
push 1
mov eax, 0x14
mov ecx, str.ID_CAR_SUBARUIMPREZA
call fcn.00582ed0
add esp, 4
push eax
mov ecx, 0xb1763c
call fcn.00591360
add dword [esp + 0x1c], 1
mov edi, ebp
mov esi, eax
call fcn.005aef10
xor ecx, ecx
mov eax, ebp
call fcn.005ae0d0
mov edx, 0xb1763c
call fcn.00591310
mov edx, dword [eax + 0x44]
mov eax, dword [edx]
mov dword [ebp + 0xc], eax
add ebx, 1
add ebp, 0xec8
cmp ebx, dword [esp + 0x14]
jb 0x657bb6
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x24]
push esi
push ecx
push str.Demo_mode___Type__d___d_Cars_n
call fcn.00408d10
mov edx, dword [esp + 0x78]
add esp, 0xc
mov ecx, 0x725550
mov dword [edx + 8], esi
call fcn.006531b0
xor edx, edx
cmp eax, edx
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], 1
mov dword [esp + 0x30], 2
mov dword [esp + 0x34], 3
mov dword [esp + 0x38], 4
mov dword [esp + 0x3c], 5
mov dword [esp + 0x40], 6
mov dword [esp + 0x44], 7
jbe 0x657d43
jmp 0x657d10
mov ecx, dword [esp + edx*4 + 0x28]
imul ecx, ecx, 0xec8
add ecx, 0x954708
je 0x657d3c
mov esi, eax
sub esi, edx
lea esi, [esi*4 - 4]
xor esi, dword [ecx + 0xec0]
and esi, 0x3c
xor dword [ecx + 0xec0], esi
add edx, 1
cmp edx, eax
jb 0x657d10
pop edi
pop esi
pop ebp
mov eax, 0xc
pop ebx
add esp, 0x58
ret 4