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

Disassembly:
sub esp, 0x714
push ebx
push ebp
push esi
push edi
xor edi, edi
mov esi, ecx
xor ebp, ebp
lea ecx, [esp + 0x84]
mov byte [esp + 0x1f], 0
mov byte [esp + 0x10c], 0
mov byte [esp + 0x424], 0
mov dword [esp + 0x40c], edi
mov dword [esp + 0x420], edi
mov dword [esp + 0x418], edi
mov dword [esp + 0x41c], edi
mov byte [esp + 0x410], 1
mov dword [esp + 0x34], ebp
call fcn.005648e0
mov ecx, esi
call fcn.00401710
mov ecx, esi
call fcn.00401420
mov eax, dword [esp + 0x728]
push edi
push 0xc9405
push eax
lea ecx, [esp + 0x90]
mov byte [esi + 0x200], 1
call fcn.00564a80
test al, al
mov byte [esp + 0x27], al
je 0x404dae
mov edx, dword [esp + 0x84]
mov eax, dword [edx + 0x24]
push 0x300
lea ecx, [esp + 0x428]
push ecx
lea ecx, [esp + 0x8c]
call eax
test eax, eax
je 0x404d97
lea esp, [esp]
lea ecx, [esp + 0x424]
push str._Features_
push ecx
call fcn.00588710
add esp, 8
test eax, eax
je 0x403b5a
mov eax, dword [esp + 0x84]
push 0x300
lea edx, [esp + 0x428]
push edx
mov edx, dword [eax + 0x24]
lea ecx, [esp + 0x8c]
call edx
test eax, eax
je 0x403b53
jmp 0x403a20
lea ecx, [esp + 0x10c]
call fcn.00564e10
cmp eax, 1
je 0x403b53
test eax, eax
jne 0x403b2b
push eax
push eax
push eax
lea eax, [esi + 0x1e0]
push eax
push str.pitlanes
lea ecx, [esp + 0x120]
call fcn.00565360
push 0
push 0
push 0
lea ebp, [esi + 0x1e4]
push ebp
push str.startinggrid
lea ecx, [esp + 0x120]
call fcn.00565360
cmp dword [ebp], 0x68
jge 0x403a83
mov dword [ebp], 0x68
push 0
push 0
push 0
lea ebp, [esi + 0x1e8]
push ebp
push str.pitspots
lea ecx, [esp + 0x120]
call fcn.00565360
test eax, eax
je 0x403ab2
cmp dword [ebp], 0x34
jge 0x403ab2
mov dword [ebp], 0x34
push 0
push 0
push 0
lea ebp, [esi + 0x1ec]
push ebp
push str.garagespots
lea ecx, [esp + 0x120]
call fcn.00565360
test eax, eax
je 0x403ae1
cmp dword [ebp], 3
jge 0x403ae1
mov dword [ebp], 3
push 0
push 0
push 0
lea ebp, [esi + 0x1dc]
push ebp
push str.auxspots
lea ecx, [esp + 0x120]
call fcn.00565360
test eax, eax
je 0x403b10
cmp dword [ebp], 8
jge 0x403b10
mov dword [ebp], 8
push 0
push 0
push 0
lea ecx, [esi + 0x14]
push ecx
push str.waypointspan
lea ecx, [esp + 0x120]
call fcn.00565470
mov eax, dword [esp + 0x84]
push 0x300
lea edx, [esp + 0x428]
push edx
mov edx, dword [eax + 0x24]
lea ecx, [esp + 0x8c]
call edx
test eax, eax
jne 0x403a20
mov ecx, esi
call fcn.00401420
lea eax, [esp + 0x424]
push str._GRID_
push eax
call fcn.00588710
add esp, 8
or ebx, 0xffffffff
test eax, eax
je 0x403cb0
mov edx, dword [esp + 0x84]
mov eax, dword [edx + 0x24]
push 0x300
lea ecx, [esp + 0x428]
push ecx
lea ecx, [esp + 0x8c]
mov dword [esp + 0x18], ebx
call eax
test eax, eax
je 0x403cb0
jmp 0x403bb0
lea ecx, [esp + 0x10c]
call fcn.00564e10
cmp eax, 1
je 0x403cb0
test eax, eax
jne 0x403c88
push eax
push eax
push eax
lea ecx, [esp + 0x1c]
push ecx
push str.GridIndex
lea ecx, [esp + 0x120]
call fcn.00565360
test eax, eax
jne 0x403c88
push eax
lea edx, [esp + 0x48]
push edx
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x48]
push ecx
push 0x5adbac
lea ecx, [esp + 0x120]
call fcn.00565470
test eax, eax
je 0x403c30
mov eax, dword [esp + 0x10]
cmp eax, 0x67
ja 0x403c88
lea edx, [eax*8]
sub edx, eax
mov eax, dword [esi + 0x1c8]
lea eax, [eax + edx*4]
jmp 0x403c72
push 0
lea ecx, [esp + 0x48]
push ecx
lea edx, [esp + 0x48]
push edx
lea eax, [esp + 0x48]
push eax
push 0x5adba8
lea ecx, [esp + 0x120]
call fcn.00565470
test eax, eax
je 0x403c88
mov eax, dword [esp + 0x10]
cmp eax, 0x67
ja 0x403c88
mov edx, dword [esi + 0x1c8]
lea ecx, [eax*8]
sub ecx, eax
lea eax, [edx + ecx*4 + 0xc]
fld dword [esp + 0x40]
fld dword [esp + 0x44]
fld dword [esp + 0x3c]
fstp dword [eax]
fxch st(1)
fstp dword [eax + 4]
fstp dword [eax + 8]
mov edx, dword [esp + 0x84]
push 0x300
lea eax, [esp + 0x428]
push eax
mov eax, dword [edx + 0x24]
lea ecx, [esp + 0x8c]
call eax
test eax, eax
jne 0x403bb0
lea ecx, [esp + 0x424]
push str._ALTGRID_
push ecx
call fcn.00588710
add esp, 8
test eax, eax
je 0x403e00
mov eax, dword [esp + 0x84]
push 0x300
lea edx, [esp + 0x428]
push edx
mov edx, dword [eax + 0x24]
lea ecx, [esp + 0x8c]
mov dword [esp + 0x18], ebx
call edx
test eax, eax
je 0x403e00
lea esp, [esp]
lea ecx, [esp + 0x10c]
call fcn.00564e10
cmp eax, 1
je 0x403e00
test eax, eax
jne 0x403dd8
push eax
push eax
push eax
lea eax, [esp + 0x1c]
push eax
push str.GridIndex
lea ecx, [esp + 0x120]
call fcn.00565360
test eax, eax
jne 0x403dd8
push eax
lea ecx, [esp + 0x60]
push ecx
lea edx, [esp + 0x60]
push edx
lea eax, [esp + 0x60]
push eax
push 0x5adbac
lea ecx, [esp + 0x120]
call fcn.00565470
test eax, eax
je 0x403d80
mov eax, dword [esp + 0x10]
cmp eax, 0x67
ja 0x403dd8
mov edx, dword [esi + 0x1cc]
lea ecx, [eax*8]
sub ecx, eax
lea eax, [edx + ecx*4]
jmp 0x403dc2
push 0
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0x60]
push ecx
lea edx, [esp + 0x60]
push edx
push 0x5adba8
lea ecx, [esp + 0x120]
call fcn.00565470
test eax, eax
je 0x403dd8
mov eax, dword [esp + 0x10]
cmp eax, 0x67
ja 0x403dd8
mov edx, dword [esi + 0x1cc]
lea ecx, [eax*8]
sub ecx, eax
lea eax, [edx + ecx*4 + 0xc]
fld dword [esp + 0x58]
fld dword [esp + 0x5c]
fld dword [esp + 0x54]
fstp dword [eax]
fxch st(1)
fstp dword [eax + 4]
fstp dword [eax + 8]
mov edx, dword [esp + 0x84]
push 0x300
lea eax, [esp + 0x428]
push eax
mov eax, dword [edx + 0x24]
lea ecx, [esp + 0x8c]
call eax
test eax, eax
jne 0x403d00
lea ecx, [esp + 0x424]
push str._AUX_
push ecx
call fcn.00588710
add esp, 8
test eax, eax
je 0x403f5e
mov eax, dword [esp + 0x84]
push 0x300
lea edx, [esp + 0x428]
push edx
mov edx, dword [eax + 0x24]
lea ecx, [esp + 0x8c]
mov dword [esp + 0x18], ebx
call edx
test eax, eax
je 0x403f5e
lea esp, [esp]
lea ecx, [esp + 0x10c]
call fcn.00564e10
cmp eax, 1
je 0x403f5e
test eax, eax
jne 0x403f36
push eax
push eax
push eax
lea eax, [esp + 0x1c]
push eax
push str.LocationIndex
lea ecx, [esp + 0x120]
call fcn.00565360
test eax, eax
jne 0x403f36
push eax
lea ecx, [esp + 0x70]
push ecx
lea edx, [esp + 0x70]
push edx
lea eax, [esp + 0x70]
push eax
push 0x5adbac
lea ecx, [esp + 0x120]
call fcn.00565470
test eax, eax
je 0x403ed7
mov eax, dword [esp + 0x10]
test eax, eax
jl 0x403f36
cmp eax, dword [esi + 0x1dc]
jge 0x403f36
mov edx, dword [esi + 0x1c4]
lea ecx, [eax*8]
sub ecx, eax
lea eax, [edx + ecx*4]
jmp 0x403f20
push 0
lea eax, [esp + 0x70]
push eax
lea ecx, [esp + 0x70]
push ecx
lea edx, [esp + 0x70]
push edx
push 0x5adba8
lea ecx, [esp + 0x120]
call fcn.00565470
test eax, eax
je 0x403f36
mov eax, dword [esp + 0x10]
test eax, eax
jl 0x403f36
cmp eax, dword [esi + 0x1dc]
jge 0x403f36
mov edx, dword [esi + 0x1c4]
lea ecx, [eax*8]
sub ecx, eax
lea eax, [edx + ecx*4 + 0xc]
fld dword [esp + 0x68]
fld dword [esp + 0x6c]
fld dword [esp + 0x64]
fstp dword [eax]
fxch st(1)
fstp dword [eax + 4]
fstp dword [eax + 8]
mov edx, dword [esp + 0x84]
push 0x300
lea eax, [esp + 0x428]
push eax
mov eax, dword [edx + 0x24]
lea ecx, [esp + 0x8c]
call eax
test eax, eax
jne 0x403e50
lea ecx, [esp + 0x424]
push str._TELEPORT_
push ecx
call fcn.00588710
add esp, 8
test eax, eax
je 0x4040b0
mov eax, dword [esp + 0x84]
push 0x300
lea edx, [esp + 0x428]
push edx
mov edx, dword [eax + 0x24]
lea ecx, [esp + 0x8c]
mov dword [esp + 0x18], ebx
call edx
test eax, eax
je 0x4040b0
jmp 0x403fb0
lea ecx, [esp + 0x10c]
call fcn.00564e10
cmp eax, 1
je 0x4040b0
test eax, eax
jne 0x404088
push eax
push eax
push eax
lea eax, [esp + 0x1c]
push eax
push str.GridIndex
lea ecx, [esp + 0x120]
call fcn.00565360
test eax, eax
jne 0x404088
push eax
lea ecx, [esp + 0x54]
push ecx
lea edx, [esp + 0x54]
push edx
lea eax, [esp + 0x54]
push eax
push 0x5adbac
lea ecx, [esp + 0x120]
call fcn.00565470
test eax, eax
je 0x404030
mov eax, dword [esp + 0x10]
cmp eax, 0x67
ja 0x404088
mov edx, dword [esi + 0x1d8]
lea ecx, [eax*8]
sub ecx, eax
lea eax, [edx + ecx*4]
jmp 0x404072
push 0
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x54]
push ecx
lea edx, [esp + 0x54]
push edx
push 0x5adba8
lea ecx, [esp + 0x120]
call fcn.00565470
test eax, eax
je 0x404088
mov eax, dword [esp + 0x10]
cmp eax, 0x67
ja 0x404088
mov edx, dword [esi + 0x1d8]
lea ecx, [eax*8]
sub ecx, eax
lea eax, [edx + ecx*4 + 0xc]
fld dword [esp + 0x4c]
fld dword [esp + 0x50]
fld dword [esp + 0x48]
fstp dword [eax]
fxch st(1)
fstp dword [eax + 4]
fstp dword [eax + 8]
mov edx, dword [esp + 0x84]
push 0x300
lea eax, [esp + 0x428]
push eax
mov eax, dword [edx + 0x24]
lea ecx, [esp + 0x8c]
call eax
test eax, eax
jne 0x403fb0
lea ecx, [esp + 0x424]
push str._PITS_
push ecx
call fcn.00588710
add esp, 8
test eax, eax
je 0x4042a4
mov eax, dword [esp + 0x84]
push 0x300
lea edx, [esp + 0x428]
push edx
mov edx, dword [eax + 0x24]
lea ecx, [esp + 0x8c]
mov dword [esp + 0x18], ebx
call edx
test eax, eax
je 0x4042a4
lea esp, [esp]
lea ecx, [esp + 0x10c]
call fcn.00564e10
cmp eax, 1
je 0x4042a4
test eax, eax
jne 0x40427c
push eax
push eax
push eax
lea eax, [esp + 0x1c]
push eax
push str.TeamIndex
lea ecx, [esp + 0x120]
call fcn.00565360
test eax, eax
jne 0x40427c
push eax
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x34]
push edx
lea eax, [esp + 0x34]
push eax
push str.PitPos
lea ecx, [esp + 0x120]
call fcn.00565470
test eax, eax
je 0x404187
mov eax, dword [esp + 0x10]
cmp eax, 0x33
ja 0x40427c
mov edx, dword [esi + 0x1d0]
lea ecx, [eax*8]
sub ecx, eax
lea eax, [edx + ecx*4]
jmp 0x404266
push 0
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x34]
push edx
push str.PitOri
lea ecx, [esp + 0x120]
call fcn.00565470
test eax, eax
je 0x4041c5
mov eax, dword [esp + 0x10]
cmp eax, 0x33
ja 0x40427c
mov edx, dword [esi + 0x1d0]
jmp 0x404259
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x30]
push ecx
lea edx, [esp + 0x30]
push edx
lea eax, [esp + 0x44]
push eax
push str.GarPos
lea ecx, [esp + 0x120]
call fcn.00565470
test eax, eax
je 0x404216
fld dword [esp + 0x38]
call fcn.00588a90
imul eax, dword [esi + 0x1e8]
add eax, dword [esp + 0x10]
mov edx, dword [esi + 0x1d4]
lea ecx, [eax*8]
sub ecx, eax
lea eax, [edx + ecx*4]
jmp 0x404266
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x30]
push ecx
lea edx, [esp + 0x30]
push edx
lea eax, [esp + 0x44]
push eax
push str.GarOri
lea ecx, [esp + 0x120]
call fcn.00565470
test eax, eax
je 0x40427c
fld dword [esp + 0x38]
call fcn.00588a90
imul eax, dword [esi + 0x1e8]
add eax, dword [esp + 0x10]
mov edx, dword [esi + 0x1d4]
lea ecx, [eax*8]
sub ecx, eax
lea eax, [edx + ecx*4 + 0xc]
fld dword [esp + 0x2c]
fld dword [esp + 0x30]
fld dword [esp + 0x28]
fstp dword [eax]
fxch st(1)
fstp dword [eax + 4]
fstp dword [eax + 8]
mov edx, dword [esp + 0x84]
push 0x300
lea eax, [esp + 0x428]
push eax
mov eax, dword [edx + 0x24]
lea ecx, [esp + 0x8c]
call eax
test eax, eax
jne 0x404100
lea ecx, [esp + 0x10c]
call fcn.00564e10
test eax, eax
jne 0x404d68
push eax
push eax
push eax
lea ecx, [esp + 0x2c]
push ecx
push str.number_waypoints
lea ecx, [esp + 0x120]
call fcn.00565360
test eax, eax
je 0x40433f
mov eax, dword [esp + 0x20]
mov ebp, eax
xor ecx, ecx
mov edx, 0x1b4
mul edx
seto cl
neg ecx
or ecx, eax
xor eax, eax
add ecx, 4
setb al
neg eax
or eax, ecx
push eax
call fcn.00587be5
add esp, 4
test eax, eax
je 0x40431c
push 0x51e280
push ebp
lea edi, [eax + 4]
push 0x1b4
push edi
mov dword [eax], ebp
call fcn.004011a0
jmp 0x40431e
xor edi, edi
test edi, edi
mov dword [esi + 0x1a8], edi
je 0x404332
mov ecx, dword [esp + 0x20]
mov dword [esi + 0x1a4], ecx
mov dword [esp + 0x34], 0
jmp 0x40462f
push 0
push 0
push 0
lea edx, [esi + 0x34]
push edx
push str.PitExtensionsStart
lea ecx, [esp + 0x120]
call fcn.00565360
test eax, eax
jne 0x40462f
push eax
push eax
push eax
lea eax, [esi + 0x30]
push eax
push str.drivinglines
lea ecx, [esp + 0x120]
call fcn.00565360
test eax, eax
jne 0x40462f
push eax
push eax
lea ecx, [esi + 0x1fc]
push ecx
lea edx, [esi + 0x1f8]
push edx
push str.pitlanepaths
lea ecx, [esp + 0x120]
call fcn.00565360
test eax, eax
jne 0x40462f
push eax
push eax
push eax
lea eax, [esp + 0x2c]
push eax
push str.LeftHandedPits
lea ecx, [esp + 0x120]
call fcn.00565360
test eax, eax
je 0x4043db
cmp dword [esp + 0x20], 0
setne cl
mov byte [esi + 0x200], cl
jmp 0x40462f
push 0
push 0
push 0
lea ebx, [esi + 0x194]
push ebx
push 0x5adae0
lea ecx, [esp + 0x120]
call fcn.00565470
test eax, eax
je 0x40441b
fld dword [ebx]
fld dword [0x5adadc]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x40462d
fstp dword [ebx]
jmp 0x40462f
push 0
push 0
push 0
lea edx, [esi + 0x198]
push edx
push str.MidAdjust
lea ecx, [esp + 0x120]
call fcn.00565470
test eax, eax
jne 0x40462f
push eax
push eax
push eax
lea ebx, [esi + 0x19c]
push ebx
push 0x5adac4
lea ecx, [esp + 0x120]
call fcn.00565470
test eax, eax
je 0x40447e
fld dword [ebx]
fld dword [0x5adac0]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x40462d
fstp dword [ebx]
jmp 0x40462f
push 0
push 0
push 0
lea eax, [esi + 0x1a0]
push eax
push str.RaceQualRatio
lea ecx, [esp + 0x120]
call fcn.00565470
test eax, eax
jne 0x40462f
push eax
push eax
push eax
lea ecx, [esi + 0xc]
push ecx
push str.ultracarefulyellow
lea ecx, [esp + 0x120]
call fcn.00565360
test eax, eax
jne 0x40462f
lea eax, [esi + 0x18c]
push eax
lea ecx, [esi + 0x188]
push ecx
lea ebx, [esi + 0x184]
push ebx
lea ebp, [esi + 0x180]
push ebp
push 0x5ada94
lea ecx, [esp + 0x120]
call fcn.00565470
test eax, eax
je 0x4045f1
fld dword [ebp]
mov byte [esp + 0x1f], 1
fldz
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
je 0x404526
fld dword [ebp]
fld dword [0x5ada90]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x40452c
fld st(0)
jmp 0x40453f
fld dword [0x5ada90]
fld dword [ebp]
fcomp st(2)
fnstsw ax
test ah, 5
jp 0x40453c
fld st(1)
jmp 0x40453f
fld dword [ebp]
fstp dword [ebp]
fld dword [ebx]
fcomp st(2)
fnstsw ax
test ah, 5
jnp 0x40455a
fcom dword [ebx]
fnstsw ax
test ah, 5
jp 0x40455a
fld st(0)
jmp 0x40456b
fld dword [ebx]
fcomp st(2)
fnstsw ax
test ah, 5
jp 0x404569
fld st(1)
jmp 0x40456b
fld dword [ebx]
fstp dword [ebx]
fld dword [esi + 0x188]
fcomp st(2)
fnstsw ax
test ah, 5
jnp 0x40458d
fcom dword [esi + 0x188]
fnstsw ax
test ah, 5
jp 0x40458d
fld st(0)
jmp 0x4045a6
fld dword [esi + 0x188]
fcomp st(2)
fnstsw ax
test ah, 5
jp 0x4045a0
fld st(1)
jmp 0x4045a6
fld dword [esi + 0x188]
fstp dword [esi + 0x188]
fld dword [esi + 0x18c]
fcomp st(2)
fnstsw ax
test ah, 5
jnp 0x4045d2
fcom dword [esi + 0x18c]
fnstsw ax
test ah, 5
jp 0x4045d2
fstp st(1)
fstp dword [esi + 0x18c]
jmp 0x40462f
fstp st(0)
fcom dword [esi + 0x18c]
fnstsw ax
test ah, 0x41
je 0x4045e9
fstp st(0)
fld dword [esi + 0x18c]
fstp dword [esi + 0x18c]
jmp 0x40462f
push 0
push 0
push 0
lea edx, [esi + 0x17c]
push edx
push str.AIRange
lea ecx, [esp + 0x120]
call fcn.00565470
test eax, eax
jne 0x40462f
push eax
push eax
push eax
lea eax, [esi + 4]
push eax
push str.AIDraftStickiness
lea ecx, [esp + 0x120]
call fcn.00565470
jmp 0x40462f
fstp st(0)
push 0
push 0
push 0
lea ebx, [esi + 0x10]
push ebx
push str.slowwhenpushed
lea ecx, [esp + 0x120]
call fcn.00565470
test eax, eax
je 0x40468b
fld dword [ebx]
fld1
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jnp 0x404675
fld dword [ebx]
fldz
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x404673
fstp st(1)
jmp 0x404a33
fstp st(0)
fcom dword [ebx]
fnstsw ax
test ah, 5
jnp 0x404a33
fstp st(0)
fld dword [ebx]
jmp 0x404a33
push 0
push 0
push 0
lea ecx, [esi + 0x1b0]
push ecx
push str.lap_length
lea ecx, [esp + 0x120]
call fcn.00565470
test eax, eax
jne 0x404a35
push eax
push eax
push eax
lea edx, [esi + 0x1b4]
push edx
push str.sector_1_length
lea ecx, [esp + 0x120]
call fcn.00565470
test eax, eax
jne 0x404a35
push eax
push eax
push eax
lea eax, [esi + 0x1b8]
push eax
push str.sector_2_length
lea ecx, [esp + 0x120]
call fcn.00565470
test eax, eax
jne 0x404a35
push eax
lea ecx, [esi + 0x24]
push ecx
lea edx, [esi + 0x20]
push edx
lea eax, [esi + 0x1c]
push eax
push str.AIBrakingStiffness
lea ecx, [esp + 0x120]
call fcn.00565470
test eax, eax
jne 0x404a35
push eax
push eax
push eax
lea ecx, [esi + 0x1c0]
push ecx
push str.FuelUse
lea ecx, [esp + 0x120]
call fcn.00565470
test eax, eax
jne 0x404a35
push eax
push eax
push eax
lea edx, [esp + 0x2c]
push edx
push str.DelayPitCrewLoad
lea ecx, [esp + 0x120]
call fcn.00565360
test eax, eax
je 0x404769
mov eax, dword [esp + 0x20]
mov dword [esi + 0x58], eax
jmp 0x404a35
push 0
push 0
push 0
lea ecx, [esp + 0x84]
push ecx
push str.LaneSpacing
lea ecx, [esp + 0x120]
call fcn.00565470
test eax, eax
je 0x40479b
fld dword [esp + 0x78]
fstp dword [0x671560]
jmp 0x404a35
push 0
push 0
push 0
lea edx, [esi + 0x60]
push edx
push str.GrooveWidth
lea ecx, [esp + 0x120]
call fcn.00565470
test eax, eax
jne 0x404a35
push eax
push eax
push eax
lea eax, [esi + 0x44]
push eax
push str.GrooveHeightOffset
lea ecx, [esp + 0x120]
call fcn.00565470
test eax, eax
jne 0x404a35
push eax
push eax
push eax
lea ecx, [esi + 0x64]
push ecx
push str.GrooveWidthWet
lea ecx, [esp + 0x120]
call fcn.00565470
test eax, eax
jne 0x404a35
push eax
push eax
push eax
lea edx, [esp + 0x20]
push edx
push str.IntermediateFogLevel
lea ecx, [esp + 0x120]
call fcn.00565470
test eax, eax
je 0x404832
fld dword [esp + 0x14]
push ecx
mov ecx, 0xa46bc0
fstp dword [esp]
call fcn.005207a0
jmp 0x404a35
push 0
push 0
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x20]
push ecx
push str.IntermediateFogPlanes
lea ecx, [esp + 0x120]
call fcn.00565470
test eax, eax
je 0x40486e
fld dword [esp + 0x14]
fstp dword [0xa46cbc]
fld dword [esp + 0x18]
fstp dword [0xa46cc0]
jmp 0x404a35
push 0
push 0
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x20]
push eax
push str.RainyFogPlanes
lea ecx, [esp + 0x120]
call fcn.00565470
test eax, eax
je 0x4048aa
fld dword [esp + 0x14]
fstp dword [0xa46cc8]
fld dword [esp + 0x18]
fstp dword [0xa46ccc]
jmp 0x404a35
push 0
lea ecx, [esp + 0x64]
push ecx
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x20]
push eax
push 0x5ad974
lea ecx, [esp + 0x120]
call fcn.00565470
test eax, eax
je 0x4048ff
fld dword [esp + 0x14]
fld dword [0x5ad970]
fmul st(1), st(0)
fxch st(1)
fstp dword [0xa46c98]
fld dword [esp + 0x18]
fmul st(1)
fstp dword [0xa46c9c]
fmul dword [esp + 0x60]
fstp dword [0xa46ca0]
jmp 0x404a35
push 0
lea ecx, [esp + 0x64]
push ecx
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x20]
push eax
push str.RainyFogColor
lea ecx, [esp + 0x120]
call fcn.00565470
test eax, eax
je 0x404954
fld dword [esp + 0x14]
fld dword [0x5ad970]
fmul st(1), st(0)
fxch st(1)
fstp dword [0xa46ca4]
fld dword [esp + 0x18]
fmul st(1)
fstp dword [0xa46ca8]
fmul dword [esp + 0x60]
fstp dword [0xa46cac]
jmp 0x404a35
push 0
push 0
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x20]
push edx
push str.FogDensity
lea ecx, [esp + 0x120]
call fcn.00565470
test eax, eax
je 0x404990
fld dword [esp + 0x14]
fstp dword [0xa46cc4]
fld dword [esp + 0x18]
fstp dword [0xa46cd0]
jmp 0x404a35
push 0
push 0
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x20]
push ecx
push str.RainyDarkness
lea ecx, [esp + 0x120]
call fcn.00565470
test eax, eax
je 0x4049d1
fld dword [esp + 0x18]
sub esp, 8
fstp dword [esp + 4]
mov ecx, 0xa46bc0
fld dword [esp + 0x1c]
fstp dword [esp]
call fcn.00520800
jmp 0x404a35
push 0
push 0
lea ebx, [esi + 0x40]
push ebx
lea ebp, [esi + 0x3c]
push ebp
push 0x5ad92c
lea ecx, [esp + 0x120]
call fcn.00565470
test eax, eax
je 0x404a35
fld1
fcom dword [ebp]
fnstsw ax
test ah, 5
jnp 0x404a22
fldz
fcom dword [ebp]
fnstsw ax
test ah, 0x41
je 0x404a20
fxch st(1)
fcomp dword [ebx]
fnstsw ax
test ah, 5
jnp 0x404a22
fcomp dword [ebx]
fnstsw ax
test ah, 0x41
jne 0x404a35
jmp 0x404a24
fstp st(0)
fstp st(0)
fld dword [0x5ad928]
fstp dword [ebp]
fld dword [str.33s_]
fstp dword [ebx]
test edi, edi
je 0x404d6d
push 0
push 0
push 0
lea edx, [edi + 0x1a4]
push edx
push str.wp_branchID
lea ecx, [esp + 0x120]
call fcn.00565360
push 0
push 0
lea eax, [edi + 0x2c]
push eax
lea ecx, [edi + 0x28]
push ecx
push str.wp_path
lea ecx, [esp + 0x120]
call fcn.00565470
push 0
push 0
push 0
lea eax, [edi + 0x1a8]
push eax
push str.wp_cheat
lea ecx, [esp + 0x120]
call fcn.00565470
push 0
push 0
lea edx, [esp + 0x28]
push edx
lea ebp, [edi + 0x1ac]
push ebp
push str.wp_wpse
lea ecx, [esp + 0x120]
call fcn.00565360
test eax, eax
je 0x404af4
mov eax, dword [ebp]
cmp eax, 1
je 0x404ad4
cmp eax, 7
je 0x404ad4
mov dword [edi + 0x1b0], 0
jmp 0x404ae5
mov dword [ebp], 1
mov dword [edi + 0x1b0], 0xa1920c
cmp dword [ebp], 1
jne 0x404af4
fld dword [0x5ad798]
fstp dword [edi + 0x70]
push 0
lea ebp, [edi + 0x18]
push ebp
lea ebx, [edi + 0x14]
push ebx
lea eax, [edi + 0x10]
push eax
push str.wp_pos
lea ecx, [esp + 0x120]
call fcn.00565470
test eax, eax
je 0x404b31
fld dword [edi + 0x10]
fstp dword [edi + 0xc8]
fld dword [ebx]
fstp dword [edi + 0xcc]
fld dword [ebp]
fstp dword [edi + 0xd0]
xor ebx, ebx
push ebx
push ebx
push ebx
lea eax, [edi + 0x19c]
push eax
push str.wp_galpha
lea ecx, [esp + 0x120]
call fcn.00565470
push ebx
push ebx
push ebx
lea ecx, [edi + 0x1a0]
push ecx
push str.wp_groove_lat
lea ecx, [esp + 0x120]
call fcn.00565470
push ebx
push ebx
push ebx
lea eax, [edi + 0x1a8]
push eax
push str.wp_test_speed
lea ecx, [esp + 0x120]
call fcn.00565470
push ebx
push ebx
lea edx, [edi + 0x84]
push edx
lea eax, [esp + 0x7c]
push eax
push str.wp_score
lea ecx, [esp + 0x120]
call fcn.00565470
test eax, eax
je 0x404bb6
fld dword [esp + 0x70]
call fcn.00588a90
mov dword [edi + 0x80], eax
push ebx
lea ecx, [edi + 0x44]
push ecx
lea edx, [edi + 0x40]
push edx
lea eax, [edi + 0x3c]
push eax
push str.wp_perp
lea ecx, [esp + 0x120]
call fcn.00565470
push ebx
lea ecx, [edi + 0x50]
push ecx
lea edx, [edi + 0x4c]
push edx
lea eax, [edi + 0x48]
push eax
push str.wp_normal
lea ecx, [esp + 0x120]
call fcn.00565470
lea ecx, [edi + 0x60]
push ecx
lea edx, [edi + 0x5c]
push edx
lea eax, [edi + 0x58]
push eax
lea ecx, [edi + 0x54]
push ecx
push str.wp_width
lea ecx, [esp + 0x120]
call fcn.00565470
lea edx, [edi + 0xa0]
push edx
lea eax, [edi + 0x9c]
push eax
lea ecx, [edi + 0x98]
push ecx
lea edx, [edi + 0x94]
push edx
push str.wp_dwidth
lea ecx, [esp + 0x120]
call fcn.00565470
push ebx
push ebx
push ebx
lea eax, [edi + 0x38]
push eax
push str.wp_lockedLats
lea ecx, [esp + 0x120]
call fcn.00565360
push ebx
push ebx
lea ecx, [edi + 0x34]
push ecx
lea edx, [edi + 0x30]
push edx
push str.wp_multipathlat
lea ecx, [esp + 0x120]
call fcn.00565470
push ebx
push ebx
push ebx
lea eax, [edi + 0x74]
push eax
push str.wp_pitlane
lea ecx, [esp + 0x120]
call fcn.00565360
push ebx
lea ecx, [esp + 0x78]
push ecx
lea edx, [esp + 0x88]
push edx
lea eax, [esp + 0x88]
push eax
push str.wp_ptrs
lea ecx, [esp + 0x120]
call fcn.00565360
test eax, eax
je 0x404d6d
mov eax, dword [esp + 0x80]
cmp eax, 0xffffffff
jle 0x404ce2
cmp eax, dword [esi + 0x1a4]
jge 0x404ce2
imul eax, eax, 0x1b4
add eax, dword [esi + 0x1a8]
mov dword [edi + 0x194], eax
jmp 0x404ce8
mov dword [edi + 0x194], ebx
mov eax, dword [esp + 0x7c]
cmp eax, 0xffffffff
jle 0x404d0d
cmp eax, dword [esi + 0x1a4]
jge 0x404d0d
imul eax, eax, 0x1b4
add eax, dword [esi + 0x1a8]
mov dword [edi + 0x190], eax
jmp 0x404d13
mov dword [edi + 0x190], ebx
mov eax, dword [esp + 0x74]
cmp eax, 0xffffffff
jle 0x404d38
cmp eax, dword [esi + 0x1a4]
jge 0x404d38
imul eax, eax, 0x1b4
add eax, dword [esi + 0x1a8]
mov dword [edi + 0x198], eax
jmp 0x404d3e
mov dword [edi + 0x198], ebx
mov eax, dword [esp + 0x34]
cmp eax, dword [esi + 0x1a4]
jge 0x404dda
mov dword [edi + 0xc], eax
add eax, 1
mov dword [esp + 0x34], eax
imul eax, eax, 0x1b4
add eax, dword [esi + 0x1a8]
mov edi, eax
jmp 0x404d6d
cmp eax, 4
je 0x404d95
mov edx, dword [esp + 0x84]
mov eax, dword [edx + 0x24]
push 0x300
lea ecx, [esp + 0x428]
push ecx
lea ecx, [esp + 0x8c]
call eax
test eax, eax
jne 0x4039d0
xor edi, edi
mov edx, dword [esp + 0x84]
mov eax, dword [edx + 0x14]
lea ecx, [esp + 0x84]
call eax
mov ebp, dword [esp + 0x34]
mov ecx, esi
call fcn.00401780
cmp byte [esp + 0x1f], 0
jne 0x404e03
cmp dword [esi + 0x30], 1
fldz
fst dword [esi + 0x180]
fst dword [esi + 0x18c]
jle 0x404df5
fld1
fstp dword [esi + 0x184]
jmp 0x404dfd
lea ecx, [esp + 0x84]
call fcn.00564980
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x714
ret 4
fstp dword [esi + 0x184]
fld1
fstp dword [esi + 0x188]
cmp ebp, edi
jle 0x404e28
xor ebx, ebx
lea esp, [esp]
mov ecx, dword [esi + 0x1a8]
add ecx, ebx
call fcn.0051d9d0
add ebx, 0x1b4
sub ebp, 1
jne 0x404e10
xor esi, esi
cmp dword [0x680a78], edi
jle 0x404e4d
mov ecx, dword [esi*4 + 0x680a80]
cmp ecx, edi
je 0x404e42
call fcn.004267a0
add esi, 1
cmp esi, dword [0x680a78]
jl 0x404e32
lea ecx, [esp + 0x84]
call fcn.00564980
mov al, byte [esp + 0x27]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x714
ret 4