Function at 0x4153f0
Capabilities:
Print debug messages

Disassembly:
sub esp, 0xcc
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x20], eax
mov al, byte [0x5be208]
test al, al
jne 0x415413
cmp dword [0x475ce8], 4
jne 0x41541e
mov dword [esp + 0xd0], 0
fld dword [0x5c1370]
fadd dword [esp + 0xd0]
mov ecx, dword [0x5c1378]
mov dword [0x5c1374], ecx
fcom dword [0x46234c]
fst dword [0x5c1370]
fnstsw ax
test ah, 0x41
jne 0x415572
fsub dword [0x46234c]
inc ecx
fcom dword [0x46234c]
fnstsw ax
test ah, 0x41
je 0x41544e
fstp dword [0x5c1370]
mov dword [0x5c1378], ecx
call fcn.00426490
call fcn.00426490
call fcn.0041d7f0
push str.BuildRoadBuffers
call fcn.00426490
add esp, 4
call fcn.00426490
mov al, byte [0x5be208]
test al, al
mov eax, dword [0x475ce8]
jne 0x4154a9
cmp eax, 4
je 0x4154a9
mov byte [0x5c1338], 1
cmp eax, 5
jne 0x4154be
cmp dword [0x469910], 0xffffffff
je 0x4154be
mov byte [0x5c1338], 0
push esi
push edi
mov ecx, 0x11
xor eax, eax
lea edi, [esp + 0x50]
lea edx, [esp + 0x50]
rep stosd dword es:[edi], eax
mov eax, dword [0x5c1350]
mov dword [esp + 0x60], 0x3f800000
mov dword [esp + 0x50], 0x3f800000
mov dword [esp + 0x64], 0x3f800000
mov dword [esp + 0x54], 0x3f800000
mov dword [esp + 0x68], 0x3f800000
mov dword [esp + 0x58], 0x3f800000
mov dword [esp + 0x6c], 0x3f800000
mov dword [esp + 0x5c], 0x3f800000
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0xa8]
mov eax, dword [0x5c1350]
push 0
push 0x3f800000
push 0xff323296
mov ecx, dword [eax]
push 2
push 0
push 0
push eax
call dword [ecx + 0x90]
fld dword [0x5c138c]
fmul dword [esp + 0xd8]
fadd dword [0x5c1388]
fst dword [0x5c1388]
fcomp dword [0x462348]
fnstsw ax
test ah, 0x41
jne 0x415579
mov dword [0x5c1388], 0x43340000
jmp 0x415596
fstp st(0)
jmp 0x41546e
fld dword [0x5c1388]
fcomp dword [0x462234]
fnstsw ax
test ah, 1
je 0x4155a0
mov dword [0x5c1388], 0
mov dword [0x5c138c], 0
fld dword [0x5c1388]
fmul dword [0x46224c]
fcos
fmul dword [0x462238]
fsubr dword [0x462238]
fst dword [esp + 0x10]
fmul dword [0x462344]
fsubr dword [0x462340]
fmul dword [0x46224c]
fstp dword [esp + 0x14]
call fcn.004277c7
mov dword [esp + 8], eax
fild dword [esp + 8]
fmul dword [0x46233c]
fmul dword [0x5c139c]
fld dword [0x5c139c]
fmul dword [0x462238]
fsubp st(1)
fadd dword [0x47ee30]
fstp dword [esp + 0x1c]
call fcn.004277c7
mov dword [esp + 8], eax
fild dword [esp + 8]
fmul dword [0x46233c]
fmul dword [0x5c139c]
fld dword [0x5c139c]
fmul dword [0x462238]
fsubp st(1)
fld dword [esp + 0x10]
fmul dword [0x462338]
faddp st(1)
fsub dword [0x462334]
fstp dword [esp + 0xc]
call fcn.004277c7
mov dword [esp + 8], eax
mov eax, dword [0x48dbd4]
fild dword [esp + 8]
mov esi, 3
cmp eax, esi
fmul dword [0x46233c]
fmul dword [0x5c139c]
fld dword [0x5c139c]
fmul dword [0x462238]
fsubp st(1)
fld dword [esp + 0x10]
fmul dword [0x4622f0]
fadd dword [0x462330]
fsubp st(1)
fstp dword [esp + 8]
je 0x415699
cmp dword [0x48dd04], esi
jne 0x4157e8
fld dword [0x5c1394]
fmul dword [0x462238]
push ecx
fstp dword [esp]
push 0x16
push 0
call fcn.00425450
fstp dword [esp + 4]
add esp, 4
push 0x17
push 0
call fcn.00425450
fstp dword [esp + 4]
add esp, 4
call fcn.00425260
fsub dword [0x46232c]
add esp, 8
fstp dword [esp + 0x14]
fld dword [0x5c1394]
fmul dword [0x462238]
fstp dword [esp]
push 0x19
push 0
call fcn.00425450
fstp dword [esp + 4]
add esp, 4
push 0x1a
push 0
call fcn.00425450
fstp dword [esp + 4]
add esp, 4
call fcn.00425260
fsub dword [0x46232c]
add esp, 8
fstp dword [esp + 0x1c]
fld dword [0x5c1394]
fmul dword [0x462238]
fstp dword [esp]
push 0x16
push 0
call fcn.004254f0
fstp dword [esp + 4]
add esp, 4
push 0x17
push 0
call fcn.004254f0
fstp dword [esp + 4]
add esp, 4
call fcn.00425260
fadd dword [0x46232c]
add esp, 8
fstp dword [esp + 0x24]
fld dword [0x5c1394]
fmul dword [0x462238]
fstp dword [esp]
push 0x19
push 0
call fcn.004254f0
fstp dword [esp + 4]
add esp, 4
push 0x1a
push 0
call fcn.004254f0
fstp dword [esp + 4]
add esp, 4
call fcn.00425260
fadd dword [0x46232c]
add esp, 0xc
fstp dword [esp + 0x24]
fld dword [esp + 0x1c]
fcom dword [esp + 0x10]
fnstsw ax
test ah, 1
je 0x4157b3
fstp st(0)
fld dword [esp + 0x10]
fcom dword [esp + 0x18]
fnstsw ax
test ah, 1
je 0x4157c4
fstp st(0)
fld dword [esp + 0x18]
fcom dword [esp + 0x20]
fnstsw ax
test ah, 0x41
jne 0x4157d5
fstp st(0)
fld dword [esp + 0x20]
fcom dword [esp + 0x24]
fnstsw ax
test ah, 0x41
jne 0x4157ec
fstp st(0)
fld dword [esp + 0x24]
jmp 0x4157ec
fld dword [esp + 0x1c]
fst dword [esp + 0x44]
fld dword [esp + 0x14]
fsin
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [esp + 0x3c], edx
lea ecx, [esp + 0x2c]
mov dword [esp + 0x40], eax
lea edx, [esp + 0x44]
push ecx
lea eax, [esp + 0x3c]
push edx
push eax
push 0x4769e8
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0x3f800000
mov dword [esp + 0x44], 0
fadd dword [esp + 0x1c]
fstp dword [esp + 0x58]
fld dword [esp + 0x24]
fcos
fadd dword [esp + 0x18]
fstp dword [esp + 0x5c]
fstp dword [esp + 0x48]
call fcn.00433673
mov eax, dword [0x5c1350]
push 0x4769e8
push 2
push eax
mov ecx, dword [eax]
call dword [ecx + 0x94]
fld dword [0x46aa4c]
fcomp dword [0x462328]
fld dword [0x46aa4c]
fnstsw ax
test ah, 1
je 0x415947
fadd st(0), st(0)
sub esp, 8
fcos
fadd dword [0x462248]
fmul dword [0x462238]
fsubr dword [0x462248]
fmul dword [0x462244]
fst dword [esp + 0x10]
fstp qword [esp]
push 0x46e220
push 0x479c08
call fcn.00426959
add esp, 0x10
push 0x479c08
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push 0x42c80000
push 0x3f800000
mov ecx, 0x5bdd90
call fcn.00402db0
mov dword [esp + 0x14], eax
mov ecx, 0x5bdd90
fild dword [esp + 0x14]
fstp dword [esp + 0x1c]
call fcn.00402df0
mov dword [esp + 0x14], eax
push ecx
fild dword [esp + 0x18]
lea edx, [esp + 0xa0]
fdivr dword [esp + 0x20]
fstp dword [esp]
fld dword [esp + 0x14]
fmul dword [0x462324]
push ecx
fstp dword [esp]
push edx
call fcn.004337bb
mov eax, dword [0x5c1350]
lea edx, [esp + 0x94]
push edx
push esi
mov ecx, dword [eax]
push eax
call dword [ecx + 0x94]
fld dword [0x46aa4c]
fadd dword [esp + 0xd8]
fstp dword [0x46aa4c]
jmp 0x4159c1
fcomp dword [0x462334]
fnstsw ax
test ah, 1
je 0x4159c1
push 0x42c80000
push 0x3f800000
mov ecx, 0x5bdd90
call fcn.00402db0
mov dword [esp + 0x10], eax
mov ecx, 0x5bdd90
fild dword [esp + 0x10]
fstp dword [esp + 0x14]
call fcn.00402df0
mov dword [esp + 0x10], eax
push ecx
fild dword [esp + 0x14]
lea eax, [esp + 0xa0]
fdivr dword [esp + 0x18]
fstp dword [esp]
push 0x3f490fdb
push eax
call fcn.004337bb
mov eax, dword [0x5c1350]
lea edx, [esp + 0x94]
push edx
push esi
mov ecx, dword [eax]
push eax
call dword [ecx + 0x94]
mov dword [0x46aa4c], 0x41200000
fld dword [esp + 0xd8]
fmul dword [0x462238]
fsubr dword [0x5c139c]
fcom dword [0x462234]
fnstsw ax
test ah, 0x41
jne 0x4159e9
fstp dword [0x5c139c]
jmp 0x4159f5
fstp st(0)
mov dword [0x5c139c], 0
push str.Initialise
call fcn.00426490
mov eax, dword [0x5c1350]
add esp, 4
mov ecx, dword [eax]
push eax
call dword [ecx + 0x88]
test eax, eax
jl 0x415c5e
mov eax, dword [0x5c1350]
push 0x252
push eax
mov edx, dword [eax]
call dword [edx + 0x130]
mov eax, dword [0x5c1350]
push 1
push 0x89
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
call fcn.00426490
mov esi, dword [esp + 0xd8]
push esi
call fcn.00415c90
push str.DrawRoad
call fcn.00426490
call fcn.00426490
push esi
call fcn.00418940
push str.DrawOil
call fcn.00426490
call fcn.00426490
call fcn.00416070
push str.DrawCars
call fcn.00426490
call fcn.00426490
push esi
call fcn.00417500
push str.DrawExplosions
call fcn.00426490
call fcn.00426490
mov edi, dword [esp + 0x44]
push edi
call fcn.00417c50
push str.DrawSplashes
call fcn.00426490
call fcn.00426490
call fcn.00417fe0
push str.DrawBullets
call fcn.00426490
call fcn.00426490
call fcn.00418c20
push str.DrawObjects
call fcn.00426490
call fcn.00426490
push esi
call fcn.00418110
push str.DrawSmoke
call fcn.00426490
call fcn.00426490
push esi
call fcn.00418350
push str.DrawMissile
call fcn.00426490
call fcn.00426490
call fcn.00417120
push str.DrawHelicopter
call fcn.00426490
add esp, 0x40
call fcn.00426490
push edi
call fcn.00419890
push str.Draw2D
call fcn.00426490
mov al, byte [0x5be208]
add esp, 8
test al, al
jne 0x415b47
mov eax, dword [0x475ce8]
cmp eax, 4
jne 0x415b55
push esi
call fcn.0041afa0
mov eax, dword [0x475ce8]
add esp, 4
cmp eax, 1
je 0x415b5f
cmp eax, 4
jne 0x415b6d
push edi
call fcn.0041ac90
mov eax, dword [0x475ce8]
add esp, 4
cmp eax, 6
jne 0x415b80
push edi
call fcn.0041b410
mov eax, dword [0x475ce8]
add esp, 4
cmp eax, 2
jne 0x415b8e
push edi
call fcn.0041b1a0
add esp, 4
mov eax, dword [0x5c1350]
push 0xffffffffffffffff
push 0x8b
push eax
mov edx, dword [eax]
call dword [edx + 0xc8]
mov eax, dword [0x5c1350]
push 5
push 0x13
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x5c1350]
push 2
push 0x14
push eax
mov edx, dword [eax]
call dword [edx + 0xc8]
mov eax, dword [0x5c1350]
push 1
push 0x1b
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x5c1350]
push 0
push 0x1c
push eax
mov edx, dword [eax]
call dword [edx + 0xc8]
mov eax, dword [0x5c1350]
push 2
push 4
push 0
mov ecx, dword [eax]
push eax
call dword [ecx + 0xfc]
mov eax, dword [0x5c1350]
push 0
push 5
push 0
mov edx, dword [eax]
push eax
call dword [edx + 0xfc]
mov eax, dword [0x5c1350]
mov ecx, 0x47d778
push eax
call fcn.00403880
mov ecx, dword [0x5c1350]
push ecx
mov ecx, 0x5c0eb8
call fcn.00403880
fld dword [0x5c1384]
fcomp dword [0x462234]
fnstsw ax
test ah, 0x40
jne 0x415c50
push edi
call fcn.0041aa20
add esp, 4
mov eax, dword [0x5c1350]
push eax
mov edx, dword [eax]
call dword [edx + 0x8c]
mov eax, dword [0x5c1350]
push 0
push 0
push 0
mov ecx, dword [eax]
push 0
push eax
call dword [ecx + 0x3c]
mov ecx, 0x4794f8
call fcn.00403220
mov edx, dword [eax]
push eax
call dword [edx + 0x44]
pop edi
pop esi
add esp, 0xcc
ret