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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xb98
mov eax, dword [0x1009400c]
xor eax, esp
mov dword [esp + 0xb94], eax
cmp byte [0x1009410b], 0
mov eax, dword [0x101f4218]
push esi
push edi
mov edi, ecx
mov dword [esp + 0x6c], eax
je 0x10041081
call dword [0x101db674]
mov esi, eax
test esi, esi
je 0x10041081
mov edx, dword [esi]
mov ecx, esi
mov edx, dword [edx + 0x150]
call edx
mov ecx, dword [0x101f3f18]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x8c]
push eax
lea eax, [esp + 0x94]
mov edx, dword [ecx]
push eax
lea eax, [esp + 0x7c]
push eax
push 0
push ecx
call dword [edx + 0x194]
mov eax, dword [0x101f3f18]
lea edx, [esp + 0x70]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x160]
mov eax, dword [0x101f3f18]
lea edx, [esp + 0xa0]
push edx
push 0xf
push eax
mov ecx, dword [eax]
call dword [ecx + 0xe8]
mov eax, dword [0x101f3f18]
lea edx, [esp + 0x80]
push edx
push 0x13
push eax
mov ecx, dword [eax]
call dword [ecx + 0xe8]
mov eax, dword [0x101f3f18]
lea edx, [esp + 0x84]
push edx
push 0x14
push eax
mov ecx, dword [eax]
call dword [ecx + 0xe8]
mov eax, dword [0x101f3f18]
lea edx, [esp + 0x88]
push edx
push 0xab
push eax
mov ecx, dword [eax]
call dword [ecx + 0xe8]
mov eax, dword [0x101f3f18]
lea edx, [esp + 0x78]
push edx
push 0x16
push eax
mov ecx, dword [eax]
call dword [ecx + 0xe8]
mov eax, dword [0x101f3f18]
lea edx, [esp + 0x7c]
push edx
push 0xe
push eax
mov ecx, dword [eax]
call dword [ecx + 0xe8]
mov eax, dword [0x101f3f18]
push 0
push 0xf
push eax
mov ecx, dword [eax]
call dword [ecx + 0xe4]
mov eax, dword [0x101f3f18]
push 1
push 0x1b
push eax
mov ecx, dword [eax]
call dword [ecx + 0xe4]
mov eax, dword [0x101f3f18]
push 5
push 0x13
push eax
mov ecx, dword [eax]
call dword [ecx + 0xe4]
mov eax, dword [0x101f3f18]
push 2
push 0x14
push eax
mov ecx, dword [eax]
call dword [ecx + 0xe4]
mov eax, dword [0x101f3f18]
push 1
push 0xab
push eax
mov ecx, dword [eax]
call dword [ecx + 0xe4]
mov eax, dword [0x101f3f18]
push 0
push 7
push eax
mov ecx, dword [eax]
call dword [ecx + 0xe4]
mov eax, dword [0x101f3f18]
push 0
push 0xe
push eax
mov ecx, dword [eax]
call dword [ecx + 0xe4]
mov eax, dword [0x101f3f18]
push 3
push 0x16
push eax
mov ecx, dword [eax]
call dword [ecx + 0xe4]
mov eax, dword [0x101f3f18]
push dword [0x101f4250]
push 0
mov ecx, dword [eax]
push eax
call dword [ecx + 0x94]
mov eax, dword [0x101f3f18]
push 0
mov ecx, dword [eax]
push ecx
mov dword [esp], 0
push 0
push 1
push 0
push 0
push eax
call dword [ecx + 0xac]
mov eax, dword [0x101f42fc]
push 0x101f45e8
push str.g_mProjection
push eax
mov ecx, dword [eax]
call dword [ecx + 0x98]
mov eax, dword [0x101f42fc]
movss xmm0, dword [0x101f424c]
mov ecx, dword [eax]
push ecx
movss dword [esp], xmm0
push str.g_fFarClip
push eax
call dword [ecx + 0x78]
mov eax, dword [0x101f4240]
lea edx, [esp + 0x20]
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1008bb80]
mov eax, dword [0x101f4244]
cvtpd2ps xmm0, xmm0
movss dword [esp + 0x20], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1008bb80]
mov eax, dword [0x101f42fc]
cvtpd2ps xmm0, xmm0
movss dword [esp + 0x24], xmm0
mov ecx, dword [eax]
push edx
push str.g_fScreenSize
push eax
call dword [ecx + 0x88]
movss xmm0, dword [edi + 0x28]
mov ecx, esi
mov eax, dword [esi]
movss dword [esp + 0x1c], xmm0
movss xmm0, dword [edi + 0x2c]
movss dword [esp + 0x14], xmm0
movss xmm0, dword [edi + 0x30]
mov eax, dword [eax]
movss dword [esp + 0x68], xmm0
call eax
cmp byte [0x101db604], 0
mov edi, dword [sym.imp.d3dx9_43.dll_D3DXMatrixMultiply]
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
movq qword [esp + 0x50], xmm0
mov dword [esp + 0x58], eax
je 0x1003faca
mov eax, dword [0x101f42fc]
push str.RenderOverlayWells
push eax
mov ecx, dword [eax]
call dword [ecx + 0xe8]
mov eax, dword [0x101f42fc]
push 0
push 0x101f4264
push eax
mov ecx, dword [eax]
call dword [ecx + 0xfc]
mov eax, dword [0x101f42fc]
push 0
push eax
mov ecx, dword [eax]
call dword [ecx + 0x100]
mov eax, dword [0x101f3f18]
push dword [0x101f41a0]
push 0
mov ecx, dword [eax]
push eax
call dword [ecx + 0x104]
push dword [esp + 0x6c]
call dword [sym.imp.Common.dll_struct_Universe::IZone_const____cdecl_Universe::first_zone_unsigned_int_]
mov esi, eax
add esp, 4
test esi, esi
je 0x1003fa9c
nop dword [eax]
test dword [esi + 0x40], 0x800000
je 0x1003fa88
mov eax, dword [esi + 0x3c]
cmp eax, 1
jne 0x1003f63e
movq xmm0, qword [esi + 0x30]
sub esp, 0xc
mov eax, dword [esi + 0x38]
movq qword [esp + 0x104], xmm0
movss xmm0, dword [esp + 0x104]
subss xmm0, dword [esp + 0x28]
mov dword [esp + 0x10c], eax
mov dword [esp + 0x70], eax
lea eax, [esp + 0x11c]
movss dword [esp + 0xa4], xmm0
movss xmm0, dword [esp + 0x108]
subss xmm0, dword [esp + 0x20]
movss dword [esp + 0xa0], xmm0
movss xmm0, dword [esp + 0x10c]
subss xmm0, dword [esp + 0x74]
movss dword [esp + 0xa8], xmm0
movq xmm0, qword [esi + 0x30]
movq qword [esp + 0x68], xmm0
movss xmm0, dword [esp + 0x68]
subss xmm0, dword [esp + 0x5c]
movss dword [esp + 0x24], xmm0
movss xmm0, dword [esp + 0x6c]
subss xmm0, dword [esp + 0x60]
movss dword [esp + 0x58], xmm0
movss xmm0, dword [esp + 0x70]
subss xmm0, dword [esp + 0x64]
movss dword [esp + 0x18], xmm0
movss xmm0, dword [esi + 0x44]
addss xmm0, xmm0
movss dword [esp + 8], xmm0
movss dword [esp + 4], xmm0
movss dword [esp], xmm0
push eax
call dword [sym.imp.d3dx9_43.dll_D3DXMatrixScaling]
movss xmm0, dword [esi + 0x34]
lea eax, [esp + 0x190]
sub esp, 0xc
movss dword [esp + 8], xmm0
movss xmm0, dword [esi + 0x38]
movss dword [esp + 4], xmm0
movss xmm0, dword [esi + 0x30]
movss dword [esp], xmm0
push eax
call dword [sym.imp.d3dx9_43.dll_D3DXMatrixTranslation]
lea eax, [esp + 0x190]
push eax
lea eax, [esp + 0x114]
push eax
lea eax, [esp + 0xb8]
push eax
call edi
movaps xmm0, xmmword [esp + 0xb0]
movss xmm1, dword [esp + 0x94]
movaps xmmword [esp + 0x150], xmm0
movaps xmm0, xmmword [esp + 0xc0]
movaps xmmword [esp + 0x160], xmm0
movaps xmm0, xmmword [esp + 0xd0]
movaps xmmword [esp + 0x170], xmm0
movaps xmm0, xmmword [esp + 0xe0]
movaps xmmword [esp + 0x180], xmm0
movss xmm0, dword [esp + 0x98]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm1, xmm0
movss xmm0, dword [esp + 0x9c]
mulss xmm0, xmm0
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x1003f5c5
sqrtsd xmm0, xmm0
jmp 0x1003f5ca
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
movss xmm1, dword [esi + 0x44]
cvtps2pd xmm1, xmm1
comisd xmm1, xmm0
movss xmm1, dword [esp + 0x4c]
movss xmm0, dword [esp + 0x18]
mulss xmm0, xmm0
seta byte [esp + 0xb]
mulss xmm1, xmm1
addss xmm1, xmm0
movss xmm0, dword [esp + 0xc]
mulss xmm0, xmm0
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x1003f625
sqrtsd xmm0, xmm0
movss xmm1, dword [esi + 0x44]
cvtps2pd xmm1, xmm1
comisd xmm1, xmm0
seta al
jmp 0x1003f9eb
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
movss xmm1, dword [esi + 0x44]
cvtps2pd xmm1, xmm1
comisd xmm1, xmm0
seta al
jmp 0x1003f9eb
cmp eax, 5
jne 0x1003fa03
movss xmm1, dword [esi + 0x44]
lea eax, [esp + 0x1d8]
movss xmm0, dword [esi + 0x4c]
addss xmm1, xmm1
sub esp, 0xc
movss dword [esp + 8], xmm0
movss dword [esp + 4], xmm1
movss dword [esp], xmm1
push eax
call dword [sym.imp.d3dx9_43.dll_D3DXMatrixScaling]
movss xmm0, dword [esi + 0x34]
lea eax, [esp + 0x218]
sub esp, 0xc
movss dword [esp + 8], xmm0
movss xmm0, dword [esi + 0x38]
movss dword [esp + 4], xmm0
movss xmm0, dword [esi + 0x30]
movss dword [esp], xmm0
push eax
call dword [sym.imp.d3dx9_43.dll_D3DXMatrixTranslation]
movss xmm0, dword [esi + 0xc]
lea eax, [esp + 0x110]
movss dword [esp + 0xb0], xmm0
movss xmm0, dword [esi + 0x14]
movss dword [esp + 0xc0], xmm0
movss xmm0, dword [esi + 0x10]
movss dword [esp + 0xd0], xmm0
movss xmm0, dword [esi + 0x24]
movss dword [esp + 0xb4], xmm0
movss xmm0, dword [esi + 0x2c]
movss dword [esp + 0xc4], xmm0
movss xmm0, dword [esi + 0x28]
movss dword [esp + 0xd4], xmm0
movss xmm0, dword [esi + 0x18]
movss dword [esp + 0xb8], xmm0
movss xmm0, dword [esi + 0x20]
movss dword [esp + 0xc8], xmm0
movss xmm0, dword [esi + 0x1c]
movss dword [esp + 0xd8], xmm0
mov dword [esp + 0xbc], 0
movaps xmm0, xmmword [esp + 0xb0]
movaps xmmword [esp + 0x110], xmm0
push eax
mov dword [esp + 0xd0], 0
lea eax, [esp + 0x1dc]
movaps xmm0, xmmword [esp + 0xc4]
movaps xmmword [esp + 0x124], xmm0
mov dword [esp + 0xe0], 0
movaps xmm0, xmmword [esp + 0xd4]
push eax
mov dword [esp + 0xf0], 0
lea eax, [esp + 0x260]
mov dword [esp + 0xec], 0
mov dword [esp + 0xe8], 0
mov dword [esp + 0xf4], 0x3f800000
movaps xmmword [esp + 0x138], xmm0
movaps xmm0, xmmword [esp + 0xe8]
push eax
movaps xmmword [esp + 0x14c], xmm0
call edi
lea eax, [esp + 0x218]
push eax
lea eax, [esp + 0x25c]
push eax
lea eax, [esp + 0xb8]
push eax
call edi
movaps xmm0, xmmword [esp + 0xb0]
lea eax, [esp + 0x150]
movaps xmmword [esp + 0x150], xmm0
movaps xmm0, xmmword [esp + 0xc0]
movaps xmmword [esp + 0x160], xmm0
movaps xmm0, xmmword [esp + 0xd0]
push eax
movaps xmmword [esp + 0x174], xmm0
lea eax, [esp + 0x194]
movaps xmm0, xmmword [esp + 0xe4]
push 0
push eax
movaps xmmword [esp + 0x18c], xmm0
call dword [sym.imp.d3dx9_43.dll_D3DXMatrixInverse]
movss xmm0, dword [esp + 0x1c]
lea eax, [esp + 0x190]
push eax
movss dword [esp + 0xa8], xmm0
lea eax, [esp + 0xa8]
movss xmm0, dword [esp + 0x6c]
push eax
movss dword [esp + 0xb0], xmm0
lea eax, [esp + 0x28]
movss xmm0, dword [esp + 0x1c]
push eax
movss dword [esp + 0xb8], xmm0
call dword [sym.imp.d3dx9_43.dll_D3DXVec3Transform]
movss xmm1, dword [esp + 0x2c]
movss xmm2, dword [0x1008b888]
divss xmm2, xmm1
movss xmm3, dword [esp + 0x20]
movss xmm0, dword [esp + 0x24]
movss xmm4, dword [esp + 0x28]
mulss xmm0, xmm2
mulss xmm3, xmm2
movss dword [esp + 0x24], xmm0
mulss xmm0, xmm0
movss dword [esp + 0x20], xmm3
mulss xmm3, xmm3
mulss xmm1, xmm2
addss xmm0, xmm3
mulss xmm4, xmm2
movss dword [esp + 0x2c], xmm1
movss xmm1, dword [0x1008b850]
movss dword [esp + 0x28], xmm4
comiss xmm1, xmm0
jbe 0x1003f912
push ecx
movss dword [esp], xmm4
call fcn.10009960
movss xmm0, dword [0x1008b864]
add esp, 4
fstp dword [esp + 0xc]
comiss xmm0, dword [esp + 0xc]
mov byte [esp + 0xb], 1
ja 0x1003f917
mov byte [esp + 0xb], 0
movss xmm0, dword [esp + 0x50]
lea eax, [esp + 0x190]
push eax
movss dword [esp + 0x108], xmm0
lea eax, [esp + 0x108]
movss xmm0, dword [esp + 0x5c]
push eax
movss dword [esp + 0x110], xmm0
lea eax, [esp + 0x28]
movss xmm0, dword [esp + 0x5c]
push eax
movss dword [esp + 0x118], xmm0
call dword [sym.imp.d3dx9_43.dll_D3DXVec3Transform]
movss xmm1, dword [esp + 0x2c]
movss xmm2, dword [0x1008b888]
divss xmm2, xmm1
movss xmm3, dword [esp + 0x20]
movss xmm0, dword [esp + 0x24]
movss xmm4, dword [esp + 0x28]
mulss xmm0, xmm2
mulss xmm3, xmm2
movss dword [esp + 0x24], xmm0
mulss xmm0, xmm0
movss dword [esp + 0x20], xmm3
mulss xmm3, xmm3
mulss xmm1, xmm2
addss xmm0, xmm3
mulss xmm4, xmm2
movss dword [esp + 0x2c], xmm1
movss xmm1, dword [0x1008b850]
movss dword [esp + 0x28], xmm4
comiss xmm1, xmm0
jbe 0x1003f9e9
push ecx
movss dword [esp], xmm4
call fcn.10009960
movss xmm0, dword [0x1008b864]
add esp, 4
fstp dword [esp + 0xc]
comiss xmm0, dword [esp + 0xc]
jbe 0x1003f9e9
mov al, 1
jmp 0x1003f9eb
xor al, al
cmp byte [esp + 0xb], 0
jne 0x1003fa88
test al, al
je 0x1003fa03
movaps xmm0, xmmword [0x1008bab0]
jmp 0x1003fa0a
movaps xmm0, xmmword [0x1008bb10]
mov eax, dword [0x101f42fc]
lea edx, [esp + 0x30]
push edx
movups xmmword [esp + 0x34], xmm0
push str.g_fOverlayColor
mov ecx, dword [eax]
push eax
call dword [ecx + 0x88]
push 0x101f4568
lea eax, [esp + 0x154]
push eax
lea eax, [esp + 0x260]
push eax
call edi
mov eax, dword [0x101f42fc]
lea edx, [esp + 0x258]
push edx
push str.g_mWorldView
push eax
mov ecx, dword [eax]
call dword [ecx + 0x98]
mov eax, dword [0x101f42fc]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x104]
mov eax, dword [esi + 0x3c]
cmp eax, 1
jne 0x1003fa76
mov eax, dword [0x101f42f4]
jmp 0x1003fa80
cmp eax, 5
jne 0x1003fa88
mov eax, dword [0x101f42d4]
mov ecx, dword [eax]
push 0
push eax
call dword [ecx + 0xc]
push esi
call dword [sym.imp.Common.dll_struct_Universe::IZone_const____cdecl_Universe::next_zone_struct_Universe::IZone_const__]
mov esi, eax
add esp, 4
test esi, esi
jne 0x1003f410
mov eax, dword [0x101f3f18]
push 3
push 0x16
push eax
mov ecx, dword [eax]
call dword [ecx + 0xe4]
mov eax, dword [0x101f42fc]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x108]
mov eax, dword [0x101f42fc]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x10c]
cmp byte [0x101db605], 0
mov esi, dword [sym.imp.Common.dll_public:_static_struct_CObject____cdecl_CObject::FindFirst_enum_CObject::Class_]
je 0x10040006
mov eax, dword [0x101f42fc]
push str.RenderOverlayWeaponCones
push eax
mov ecx, dword [eax]
call dword [ecx + 0xe8]
mov eax, dword [0x101f42fc]
push 0
push 0x101f4264
push eax
mov ecx, dword [eax]
call dword [ecx + 0xfc]
mov eax, dword [0x101f42fc]
push 0
push eax
mov ecx, dword [eax]
call dword [ecx + 0x100]
mov eax, dword [0x101f3f18]
push dword [0x101f41a0]
push 0
mov ecx, dword [eax]
push eax
call dword [ecx + 0x104]
push 0x503
call esi
mov esi, eax
add esp, 4
test esi, esi
je 0x1003ffe4
nop
push dword [esp + 0x10]
mov ecx, esi
call dword [sym.imp.Common.dll_public:_float___thiscall_CEqObj::attitude_towards_struct_CEqObj_const__const]
mov ecx, esi
fstp dword [esp + 0xc]
call dword [sym.imp.Common.dll_public:_struct_Archetype::Ship_const____thiscall_CShip::shiparch_void_const]
movss xmm0, dword [esp + 0xc]
mov ecx, eax
mov ax, word [0x101db606]
movss xmm1, dword [0x1008ba10]
test al, 1
je 0x1003fb77
comiss xmm1, xmm0
jae 0x1003fbac
mov edx, dword [esp + 0x10]
test al, 2
je 0x1003fb97
cmp esi, edx
je 0x1003fb97
comiss xmm0, xmm1
movss xmm1, dword [0x1008b860]
jbe 0x1003fb9f
comiss xmm1, xmm0
ja 0x1003fbac
jmp 0x1003fb9f
movss xmm1, dword [0x1008b860]
test al, 4
je 0x1003fbc7
comiss xmm0, xmm1
jae 0x1003fbac
cmp esi, edx
jne 0x1003fbc7
mov ecx, dword [ecx + 0xf8]
mov edx, 1
add ecx, 3
cwde
shl edx, cl
test eax, edx
jne 0x1003fbd1
mov ax, word [0x101db606]
test al, al
jns 0x1003fbd5
cmp esi, dword [esp + 0x10]
jne 0x1003fbd5
mov al, 1
jmp 0x1003fbd7
xor al, al
test al, al
je 0x1003ffd4
push 0xffffffffffffffff
lea ecx, [esp + 0x39c]
call dword [sym.imp.Common.dll_public:_void___thiscall_CEquipTraverser::constructor_int_]
lea eax, [esi + 0xe4]
lea ecx, [esp + 0x398]
mov dword [esp + 0x4c], eax
push ecx
mov ecx, eax
call dword [sym.imp.Common.dll_public:_class_CEquip____thiscall_CEquipManager::Traverse_class_CEquipTraverser__]
mov esi, eax
test esi, esi
je 0x1003ffd4
mov ecx, esi
call dword [sym.imp.Common.dll_public:_struct_Archetype::Equipment_const____thiscall_CEquip::EquipArch_void_const]
mov edi, eax
mov ecx, edi
mov edx, dword [edi]
mov edx, dword [edx + 0x10]
call edx
cmp eax, 0x11
jne 0x1003ffb2
mov eax, dword [edi]
mov ecx, edi
mov eax, dword [eax + 0x24]
call eax
test al, al
je 0x1003ffb2
push 0
push 0x101da6cc
push 0x101da6e0
push 0
push esi
call sub.VCRUNTIME140.dll___RTDynamicCast
mov esi, eax
add esp, 0x14
test esi, esi
je 0x1003ffb2
mov ecx, esi
call dword [sym.imp.Common.dll_public:_struct_Archetype::Munition_const____thiscall_CEGun::MunitionArch_void_const]
mov edx, dword [esi]
mov ecx, esi
mov dword [esp + 0x18], eax
mov edx, dword [edx + 4]
call edx
test al, al
je 0x1003ffb2
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 8]
call eax
test al, al
jne 0x1003ffb2
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 0x10]
call eax
test al, al
jne 0x1003ffb2
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 0xc]
call eax
test al, al
je 0x1003ffb2
mov ecx, edi
call dword [sym.imp.Common.dll_public:_float___thiscall_Archetype::Gun::get_munition_range_void_const]
movss xmm0, dword [edi + 0xa0]
lea eax, [esp + 0xa4]
movss xmm1, dword [0x1008b82c]
addss xmm0, xmm0
fstp dword [esp + 0x14]
push eax
mov ecx, esi
maxss xmm1, xmm0
mulss xmm1, dword [esp + 0x18]
movss dword [esp + 0x10], xmm1
call dword [sym.imp.Common.dll_public:_class_Vector___thiscall_CELauncher::GetAvgBarrelDirWS_void_]
lea eax, [esp + 0xa4]
push eax
lea eax, [esp + 0xb4]
push eax
call dword [sym.imp.Common.dll_class_Matrix___cdecl_LookMatrix_class_Vector_const__]
add esp, 8
mov ecx, esi
movups xmm0, xmmword [eax]
movaps xmmword [esp + 0x30], xmm0
movups xmm0, xmmword [eax + 0x10]
mov eax, dword [eax + 0x20]
mov dword [esp + 0x170], eax
lea eax, [esp + 0x104]
push eax
movaps xmmword [esp + 0x24], xmm0
call dword [sym.imp.Common.dll_public:_class_Vector___thiscall_CELauncher::GetAvgBarrelPosWS_void_]
push ecx
lea eax, [esp + 0x25c]
mov dword [esp], 0x3fc90fdb
push eax
call dword [sym.imp.d3dx9_43.dll_D3DXMatrixRotationX]
movss xmm0, dword [esp + 0x14]
lea eax, [esp + 0x218]
sub esp, 0xc
movss dword [esp + 8], xmm0
movss xmm0, dword [esp + 0x18]
movss dword [esp + 4], xmm0
movss dword [esp], xmm0
push eax
call dword [sym.imp.d3dx9_43.dll_D3DXMatrixScaling]
movss xmm0, dword [esp + 0x108]
lea eax, [esp + 0x190]
sub esp, 0xc
movss dword [esp + 8], xmm0
movss xmm0, dword [esp + 0x118]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0x110]
movss dword [esp], xmm0
push eax
call dword [sym.imp.d3dx9_43.dll_D3DXMatrixTranslation]
movaps xmm1, xmmword [esp + 0x30]
movaps xmm2, xmmword [esp + 0x20]
movaps xmm0, xmm1
shufps xmm0, xmm1, 0xaa
movss dword [esp + 0xc0], xmm0
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
movss dword [esp + 0xd0], xmm0
movaps xmm0, xmm2
shufps xmm0, xmm2, 0xaa
movss dword [esp + 0xb4], xmm0
movss xmm0, dword [esp + 0x170]
movss dword [esp + 0xc4], xmm0
movaps xmm0, xmm2
shufps xmm0, xmm2, 0xff
movss dword [esp + 0xd4], xmm0
movaps xmm0, xmm2
movss dword [esp + 0xb0], xmm1
shufps xmm1, xmm1, 0xff
shufps xmm0, xmm2, 0x55
movss dword [esp + 0xb8], xmm1
movss dword [esp + 0xc8], xmm0
movss dword [esp + 0xd8], xmm2
mov dword [esp + 0xe8], 0
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe0], 0
mov dword [esp + 0xdc], 0
mov dword [esp + 0xcc], 0
mov edi, dword [sym.imp.d3dx9_43.dll_D3DXMatrixMultiply]
lea eax, [esp + 0x258]
mov dword [esp + 0xbc], 0
movaps xmm0, xmmword [esp + 0xb0]
movaps xmmword [esp + 0x110], xmm0
movaps xmm0, xmmword [esp + 0xc0]
push eax
movaps xmmword [esp + 0x124], xmm0
lea eax, [esp + 0x21c]
movaps xmm0, xmmword [esp + 0xd4]
push eax
mov dword [esp + 0xf4], 0x3f800000
lea eax, [esp + 0x1e0]
movaps xmmword [esp + 0x138], xmm0
movaps xmm0, xmmword [esp + 0xe8]
push eax
movaps xmmword [esp + 0x14c], xmm0
call edi
lea eax, [esp + 0x110]
push eax
lea eax, [esp + 0x1dc]
push eax
lea eax, [esp + 0xb8]
push eax
call edi
lea eax, [esp + 0x190]
push eax
lea eax, [esp + 0xb4]
push eax
lea eax, [esp + 0x2e0]
push eax
call edi
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x30]
push edx
push str.g_fOverlayColor
movss xmm0, dword [eax + 0x80]
comiss xmm0, dword [eax + 0x84]
mov eax, dword [0x101f42fc]
push eax
jbe 0x1003ff4f
movaps xmm0, xmmword [0x1008bab0]
jmp 0x1003ff56
movaps xmm0, xmmword [0x1008bb10]
movups xmmword [esp + 0x3c], xmm0
mov ecx, dword [eax]
call dword [ecx + 0x88]
push 0x101f4568
lea eax, [esp + 0x2dc]
push eax
lea eax, [esp + 0x1e0]
push eax
call edi
mov eax, dword [0x101f42fc]
lea edx, [esp + 0x1d8]
push edx
push str.g_mWorldView
push eax
mov ecx, dword [eax]
call dword [ecx + 0x98]
mov eax, dword [0x101f42fc]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x104]
mov eax, dword [0x101f42e8]
push 0
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
jmp 0x1003ffb8
mov edi, dword [sym.imp.d3dx9_43.dll_D3DXMatrixMultiply]
mov ecx, dword [esp + 0x4c]
lea eax, [esp + 0x398]
push eax
call dword [sym.imp.Common.dll_public:_class_CEquip____thiscall_CEquipManager::Traverse_class_CEquipTraverser__]
mov esi, eax
test esi, esi
jne 0x1003fc12
call dword [sym.imp.Common.dll_public:_static_struct_CObject____cdecl_CObject::FindNext_void_]
mov esi, eax
test esi, esi
jne 0x1003fb40
mov eax, dword [0x101f42fc]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x108]
mov eax, dword [0x101f42fc]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x10c]
mov esi, dword [sym.imp.Common.dll_public:_static_struct_CObject____cdecl_CObject::FindFirst_enum_CObject::Class_]
cmp byte [0x101db608], 0
je 0x100404ab
mov eax, dword [0x101f42fc]
push str.RenderOverlayWeaponCones
push eax
mov ecx, dword [eax]
call dword [ecx + 0xe8]
mov eax, dword [0x101f42fc]
push 0
push 0x101f4264
push eax
mov ecx, dword [eax]
call dword [ecx + 0xfc]
mov eax, dword [0x101f42fc]
push 0
push eax
mov ecx, dword [eax]
call dword [ecx + 0x100]
mov eax, dword [0x101f3f18]
push dword [0x101f41a0]
push 0
mov ecx, dword [eax]
push eax
call dword [ecx + 0x104]
push 0x503
call esi
mov esi, eax
add esp, 4
test esi, esi
je 0x1004048f
mov ecx, esi
call dword [sym.imp.Common.dll_public:_struct_IObjRW____thiscall_CShip::get_target_void_const]
mov dword [esp + 0x14], eax
cmp esi, dword [esp + 0x10]
je 0x1004047f
test eax, eax
je 0x1004047f
mov ecx, esi
call dword [sym.imp.Common.dll_public:_class_Vector_const____thiscall_EngineObject::get_position_void_const]
mov ecx, dword [esp + 0x14]
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
mov dword [esp + 0x64], eax
mov eax, dword [ecx]
movq qword [esp + 0x5c], xmm0
mov eax, dword [eax]
call eax
mov ecx, dword [esp + 0x14]
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
movq qword [esp + 0xa4], xmm0
movss xmm0, dword [esp + 0xa4]
subss xmm0, dword [esp + 0x5c]
mov dword [esp + 0xac], eax
mov eax, dword [ecx]
movss dword [esp + 0xf8], xmm0
movss xmm0, dword [esp + 0xa8]
subss xmm0, dword [esp + 0x60]
mov eax, dword [eax + 0x150]
movss dword [esp + 0xfc], xmm0
movss xmm0, dword [esp + 0xac]
subss xmm0, dword [esp + 0x64]
movss dword [esp + 0x100], xmm0
call eax
mov ecx, eax
call dword [sym.imp.Common.dll_public:_float___thiscall_EngineObject::get_radius_void_const]
movss xmm1, dword [esp + 0xfc]
movss xmm0, dword [esp + 0xf8]
mulss xmm0, xmm0
mulss xmm1, xmm1
fstp dword [esp + 0xc]
addss xmm1, xmm0
movss xmm0, dword [esp + 0x100]
mulss xmm0, xmm0
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x10040170
sqrtsd xmm0, xmm0
jmp 0x10040175
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movss xmm0, dword [esp + 0xc]
movss dword [esp + 0xc], xmm0
divss xmm0, dword [0x1008b974]
movss dword [esp + 0x18], xmm1
comiss xmm1, xmm0
jbe 0x1004047f
lea eax, [esp + 0xf8]
push eax
lea eax, [esp + 0xb4]
push eax
call dword [sym.imp.Common.dll_class_Matrix___cdecl_LookMatrix_class_Vector_const__]
movss xmm1, dword [esp + 0x14]
add esp, 4
mulss xmm1, dword [0x1008b850]
movups xmm0, xmmword [eax]
mov dword [esp], 0x3fc90fdb
movaps xmmword [esp + 0x34], xmm0
movups xmm0, xmmword [eax + 0x10]
mov eax, dword [eax + 0x20]
mov dword [esp + 0x174], eax
lea eax, [esp + 0x2dc]
movaps xmmword [esp + 0x24], xmm0
movss xmm0, dword [0x1008b9a0]
minss xmm0, xmm1
push eax
movss dword [esp + 0x14], xmm0
call dword [sym.imp.d3dx9_43.dll_D3DXMatrixRotationX]
movss xmm0, dword [esp + 0x18]
lea eax, [esp + 0x258]
sub esp, 0xc
movss dword [esp + 8], xmm0
movss xmm0, dword [esp + 0x18]
movss dword [esp + 4], xmm0
movss dword [esp], xmm0
push eax
call dword [sym.imp.d3dx9_43.dll_D3DXMatrixScaling]
movss xmm0, dword [esp + 0x60]
lea eax, [esp + 0x1d8]
sub esp, 0xc
movss dword [esp + 8], xmm0
movss xmm0, dword [esp + 0x70]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0x68]
movss dword [esp], xmm0
push eax
call dword [sym.imp.d3dx9_43.dll_D3DXMatrixTranslation]
movaps xmm1, xmmword [esp + 0x30]
lea eax, [esp + 0x2d8]
movaps xmm2, xmmword [esp + 0x20]
movaps xmm0, xmm1
shufps xmm0, xmm1, 0xaa
movss dword [esp + 0xc0], xmm0
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
movss dword [esp + 0xd0], xmm0
movaps xmm0, xmm2
shufps xmm0, xmm2, 0xaa
movss dword [esp + 0xb4], xmm0
movss xmm0, dword [esp + 0x170]
movss dword [esp + 0xc4], xmm0
movaps xmm0, xmm2
shufps xmm0, xmm2, 0xff
movss dword [esp + 0xd4], xmm0
movaps xmm0, xmm2
shufps xmm0, xmm2, 0x55
movss dword [esp + 0xb0], xmm1
movss dword [esp + 0xc8], xmm0
shufps xmm1, xmm1, 0xff
movss dword [esp + 0xb8], xmm1
mov dword [esp + 0xbc], 0
movaps xmm0, xmmword [esp + 0xb0]
movaps xmmword [esp + 0x110], xmm0
mov dword [esp + 0xcc], 0
movaps xmm0, xmmword [esp + 0xc0]
movaps xmmword [esp + 0x120], xmm0
movss dword [esp + 0xd8], xmm2
mov dword [esp + 0xdc], 0
movaps xmm0, xmmword [esp + 0xd0]
mov dword [esp + 0xe8], 0
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe0], 0
mov dword [esp + 0xec], 0x3f800000
movaps xmmword [esp + 0x130], xmm0
movaps xmm0, xmmword [esp + 0xe0]
push eax
movaps xmmword [esp + 0x144], xmm0
lea eax, [esp + 0x25c]
push eax
lea eax, [esp + 0x220]
push eax
call edi
lea eax, [esp + 0x110]
push eax
lea eax, [esp + 0x21c]
push eax
lea eax, [esp + 0x198]
push eax
call edi
lea eax, [esp + 0x1d8]
push eax
lea eax, [esp + 0x194]
push eax
lea eax, [esp + 0x2a0]
push eax
call edi
push dword [esp + 0x10]
mov ecx, esi
call dword [sym.imp.Common.dll_public:_float___thiscall_CEqObj::attitude_towards_struct_CEqObj_const__const]
movss xmm1, dword [0x1008ba10]
fstp dword [esp + 0xc]
movss xmm0, dword [esp + 0xc]
comiss xmm1, xmm0
jbe 0x100403fc
movaps xmm0, xmmword [0x1008bab0]
jmp 0x10040415
comiss xmm0, dword [0x1008b860]
jbe 0x1004040e
movaps xmm0, xmmword [0x1008bac0]
jmp 0x10040415
movaps xmm0, xmmword [0x1008baf0]
mov eax, dword [0x101f42fc]
lea edx, [esp + 0x30]
push edx
movups xmmword [esp + 0x34], xmm0
push str.g_fOverlayColor
mov ecx, dword [eax]
push eax
call dword [ecx + 0x88]
push 0x101f4568
lea eax, [esp + 0x29c]
push eax
lea eax, [esp + 0x220]
push eax
call edi
mov eax, dword [0x101f42fc]
lea edx, [esp + 0x218]
push edx
push str.g_mWorldView
push eax
mov ecx, dword [eax]
call dword [ecx + 0x98]
mov eax, dword [0x101f42fc]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x104]
mov eax, dword [0x101f42e8]
push 0
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
call dword [sym.imp.Common.dll_public:_static_struct_CObject____cdecl_CObject::FindNext_void_]
mov esi, eax
test esi, esi
jne 0x10040075
mov eax, dword [0x101f42fc]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x108]
mov eax, dword [0x101f42fc]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x10c]
cmp byte [0x101db609], 0
je 0x10040894
mov eax, dword [0x101f42fc]
push str.RenderOverlayWeaponCones
push eax
mov ecx, dword [eax]
call dword [ecx + 0xe8]
mov eax, dword [0x101f42fc]
push 0
push 0x101f4264
push eax
mov ecx, dword [eax]
call dword [ecx + 0xfc]
mov eax, dword [0x101f42fc]
push 0
push eax
mov ecx, dword [eax]
call dword [ecx + 0x100]
mov eax, dword [0x101f3f18]
push dword [0x101f41a0]
push 0
mov ecx, dword [eax]
push eax
call dword [ecx + 0x104]
push 0xa7
call dword [sym.imp.Common.dll_public:_static_struct_CObject____cdecl_CObject::FindFirst_enum_CObject::Class_]
mov esi, eax
add esp, 4
test esi, esi
je 0x10040878
nop
mov ecx, esi
call dword [sym.imp.Common.dll_public:_class_Vector_const____thiscall_EngineObject::get_position_void_const]
mov ecx, esi
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
movq qword [esp + 0xa4], xmm0
xorps xmm0, xmm0
mov dword [esp + 0xac], eax
movss dword [esp + 0x10], xmm0
movss dword [esp + 0x1c], xmm0
call dword [sym.imp.Common.dll_public:_struct_Archetype::Projectile_const____thiscall_CProjectile::projarch_void_const]
mov esi, eax
mov ecx, esi
mov edx, dword [esi]
mov edx, dword [edx + 0x10]
call edx
cmp eax, 0x1f
je 0x10040571
movss xmm0, dword [esp + 0x10]
jmp 0x10040611
cmp byte [esi + 0xac], 0
je 0x10040583
movaps xmm0, xmmword [0x1008bb00]
jmp 0x100405a4
movss xmm0, dword [0x1008b84c]
comiss xmm0, dword [esi + 0xa0]
jbe 0x1004059d
movaps xmm0, xmmword [0x1008bae0]
jmp 0x100405a4
movaps xmm0, xmmword [0x1008bad0]
mov eax, dword [0x101f42fc]
lea edx, [esp + 0x30]
push edx
movups xmmword [esp + 0x34], xmm0
push str.g_fOverlayColor
mov ecx, dword [eax]
push eax
call dword [ecx + 0x88]
movss xmm0, dword [esi + 0xa4]
push ecx
movss dword [esp], xmm0
call fcn.10036bb0
mov eax, dword [esi + 0x24]
add esp, 4
mov dword [esp + 0x398], eax
lea eax, [esp + 0x398]
fstp dword [esp + 0x14]
push eax
call dword [sym.imp.Common.dll_struct_Archetype::Explosion____cdecl_Archetype::GetExplosion_struct_ID_String_const__]
add esp, 4
test eax, eax
je 0x10040605
movss xmm0, dword [eax + 4]
movss dword [esp + 0x1c], xmm0
movss xmm0, dword [esp + 0x14]
movss dword [esp + 0x10], xmm0
comiss xmm0, dword [0x1008b820]
jbe 0x10040868
movss xmm0, dword [esp + 0xa8]
lea eax, [esp + 0x150]
sub esp, 0xc
movss dword [esp + 8], xmm0
movss xmm0, dword [esp + 0xb8]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0xb0]
movss dword [esp], xmm0
push eax
call dword [sym.imp.d3dx9_43.dll_D3DXMatrixTranslation]
movss xmm1, dword [esp + 0x1c]
comiss xmm1, dword [0x1008b820]
jbe 0x10040774
movaps xmm0, xmm1
lea eax, [esp + 0x190]
addss xmm0, xmm1
sub esp, 0xc
movss dword [esp + 8], xmm0
movss dword [esp + 4], xmm0
movss dword [esp], xmm0
push eax
call dword [sym.imp.d3dx9_43.dll_D3DXMatrixScaling]
lea eax, [esp + 0x150]
push eax
lea eax, [esp + 0x194]
push eax
lea eax, [esp + 0x118]
push eax
call edi
movaps xmm0, xmmword [esp + 0x110]
lea eax, [esp + 0xb0]
movaps xmmword [esp + 0xb0], xmm0
movaps xmm0, xmmword [esp + 0x120]
movaps xmmword [esp + 0xc0], xmm0
movaps xmm0, xmmword [esp + 0x130]
push 0x101f4568
push eax
movaps xmmword [esp + 0xd8], xmm0
lea eax, [esp + 0x2a0]
movaps xmm0, xmmword [esp + 0x148]
push eax
movaps xmmword [esp + 0xec], xmm0
call edi
mov eax, dword [0x101f42fc]
lea edx, [esp + 0x298]
push edx
push str.g_mWorldView
push eax
mov ecx, dword [eax]
call dword [ecx + 0x98]
mov eax, dword [0x101f42fc]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x104]
mov eax, dword [0x101f42f4]
push 0
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
mov eax, dword [0x101f42fc]
lea edx, [esp + 0x30]
movaps xmm0, xmmword [0x1008bb20]
push edx
movups xmmword [esp + 0x34], xmm0
mov ecx, dword [eax]
push str.g_fOverlayColor
push eax
call dword [ecx + 0x88]
mov eax, dword [0x101f3f18]
push 6
push 0x14
push eax
mov ecx, dword [eax]
call dword [ecx + 0xe4]
movss xmm0, dword [esp + 0x10]
lea eax, [esp + 0x190]
addss xmm0, xmm0
sub esp, 0xc
movss dword [esp + 8], xmm0
movss dword [esp + 4], xmm0
movss dword [esp], xmm0
push eax
call dword [sym.imp.d3dx9_43.dll_D3DXMatrixScaling]
lea eax, [esp + 0x150]
push eax
lea eax, [esp + 0x194]
push eax
lea eax, [esp + 0x118]
push eax
call edi
movaps xmm0, xmmword [esp + 0x110]
lea eax, [esp + 0xb0]
movaps xmmword [esp + 0xb0], xmm0
movaps xmm0, xmmword [esp + 0x120]
movaps xmmword [esp + 0xc0], xmm0
movaps xmm0, xmmword [esp + 0x130]
push 0x101f4568
push eax
movaps xmmword [esp + 0xd8], xmm0
lea eax, [esp + 0x2a0]
movaps xmm0, xmmword [esp + 0x148]
push eax
movaps xmmword [esp + 0xec], xmm0
call edi
mov eax, dword [0x101f42fc]
lea edx, [esp + 0x298]
push edx
push str.g_mWorldView
push eax
mov ecx, dword [eax]
call dword [ecx + 0x98]
mov eax, dword [0x101f42fc]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x104]
mov eax, dword [0x101f42f4]
push 0
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
movss xmm0, dword [esp + 0x1c]
comiss xmm0, dword [0x1008b820]
jbe 0x10040868
mov eax, dword [0x101f3f18]
push 2
push 0x14
push eax
mov ecx, dword [eax]
call dword [ecx + 0xe4]
call dword [sym.imp.Common.dll_public:_static_struct_CObject____cdecl_CObject::FindNext_void_]
mov esi, eax
test esi, esi
jne 0x10040520
mov eax, dword [0x101f42fc]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x108]
mov eax, dword [0x101f42fc]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x10c]
mov eax, dword [0x101f3f18]
push dword [0x101f4260]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x15c]
mov eax, dword [0x101f3f18]
push 0x20
push 0
push dword [0x101f4268]
mov ecx, dword [eax]
push 0
push eax
call dword [ecx + 0x190]
mov eax, dword [0x101f3f18]
push dword [0x101f425c]
push 0
mov ecx, dword [eax]
push eax
call dword [ecx + 0x94]
mov eax, dword [0x101f42fc]
movss xmm0, dword [0x101f4d84]
mov ecx, dword [eax]
push ecx
movss dword [esp], xmm0
push str.g_fDistortOffset
push eax
call dword [ecx + 0x78]
mov ecx, dword [0x101f42fc]
mov eax, str.SceneAdd
cmp dword [0x10094114], 0
mov esi, str.SceneAddNoBloom
cmove eax, esi
mov edx, dword [ecx]
push eax
push ecx
call dword [edx + 0xe8]
mov eax, dword [0x101f42fc]
push 0
push 0x101f4264
push eax
mov ecx, dword [eax]
call dword [ecx + 0xfc]
mov eax, dword [0x101f42fc]
push 0
push eax
mov ecx, dword [eax]
call dword [ecx + 0x100]
mov eax, dword [0x101f3f18]
push dword [0x101f4248]
push 0
mov ecx, dword [eax]
push eax
call dword [ecx + 0x104]
mov eax, dword [0x101f3f18]
push 2
push 0
push 5
mov ecx, dword [eax]
push eax
call dword [ecx + 0x144]
mov eax, dword [0x101f42fc]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x108]
mov eax, dword [0x101f42fc]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x10c]
push dword [esp + 0x6c]
xor al, al
mov byte [esp + 0xf], al
call dword [sym.imp.Common.dll_struct_Universe::IZone_const____cdecl_Universe::first_zone_unsigned_int_]
mov esi, eax
add esp, 4
test esi, esi
je 0x10040f37
test dword [esi + 0x40], 0x800000
je 0x10040dcd
mov eax, dword [esi + 0x3c]
cmp eax, 1
jne 0x10040b1d
movq xmm0, qword [esi + 0x30]
sub esp, 0xc
mov eax, dword [esi + 0x38]
movq qword [esp + 0xb0], xmm0
movss xmm0, dword [esp + 0xb0]
subss xmm0, dword [esp + 0x5c]
mov dword [esp + 0xb8], eax
lea eax, [esp + 0x2e4]
movss dword [esp + 0x24], xmm0
movss xmm0, dword [esp + 0xb4]
subss xmm0, dword [esp + 0x60]
movss dword [esp + 0x18], xmm0
movss xmm0, dword [esp + 0xb8]
subss xmm0, dword [esp + 0x64]
movss dword [esp + 0x58], xmm0
movss xmm0, dword [esi + 0x44]
addss xmm0, xmm0
movss dword [esp + 8], xmm0
movss dword [esp + 4], xmm0
movss dword [esp], xmm0
push eax
call dword [sym.imp.d3dx9_43.dll_D3DXMatrixScaling]
movss xmm0, dword [esi + 0x34]
lea eax, [esp + 0x298]
sub esp, 0xc
movss dword [esp + 8], xmm0
movss xmm0, dword [esi + 0x38]
movss dword [esp + 4], xmm0
movss xmm0, dword [esi + 0x30]
movss dword [esp], xmm0
push eax
call dword [sym.imp.d3dx9_43.dll_D3DXMatrixTranslation]
lea eax, [esp + 0x298]
push eax
lea eax, [esp + 0x2dc]
push eax
lea eax, [esp + 0x118]
push eax
call edi
movaps xmm0, xmmword [esp + 0x110]
movss xmm1, dword [esp + 0xc]
movaps xmmword [esp + 0x150], xmm0
movaps xmm0, xmmword [esp + 0x120]
movaps xmmword [esp + 0x160], xmm0
movaps xmm0, xmmword [esp + 0x130]
movaps xmmword [esp + 0x170], xmm0
movaps xmm0, xmmword [esp + 0x140]
movaps xmmword [esp + 0x180], xmm0
movss xmm0, dword [esp + 0x18]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm1, xmm0
movss xmm0, dword [esp + 0x4c]
mulss xmm0, xmm0
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x10040b00
sqrtsd xmm0, xmm0
jmp 0x10040b05
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
movss xmm1, dword [esi + 0x44]
cvtps2pd xmm1, xmm1
comisd xmm1, xmm0
seta al
mov byte [esp + 0xb], al
jmp 0x10040dc9
cmp eax, 5
jne 0x10040dc5
movss xmm1, dword [esi + 0x44]
lea eax, [esp + 0x258]
movss xmm0, dword [esi + 0x4c]
addss xmm1, xmm1
sub esp, 0xc
movss dword [esp + 8], xmm0
movss dword [esp + 4], xmm1
movss dword [esp], xmm1
push eax
call dword [sym.imp.d3dx9_43.dll_D3DXMatrixScaling]
movss xmm0, dword [esi + 0x34]
lea eax, [esp + 0x218]
sub esp, 0xc
movss dword [esp + 8], xmm0
movss xmm0, dword [esi + 0x38]
movss dword [esp + 4], xmm0
movss xmm0, dword [esi + 0x30]
movss dword [esp], xmm0
push eax
call dword [sym.imp.d3dx9_43.dll_D3DXMatrixTranslation]
movss xmm0, dword [esi + 0xc]
lea eax, [esp + 0x190]
movss dword [esp + 0xb0], xmm0
movss xmm0, dword [esi + 0x14]
movss dword [esp + 0xc0], xmm0
movss xmm0, dword [esi + 0x10]
movss dword [esp + 0xd0], xmm0
movss xmm0, dword [esi + 0x24]
movss dword [esp + 0xb4], xmm0
movss xmm0, dword [esi + 0x2c]
movss dword [esp + 0xc4], xmm0
movss xmm0, dword [esi + 0x28]
movss dword [esp + 0xd4], xmm0
movss xmm0, dword [esi + 0x18]
movss dword [esp + 0xb8], xmm0
movss xmm0, dword [esi + 0x20]
movss dword [esp + 0xc8], xmm0
movss xmm0, dword [esi + 0x1c]
movss dword [esp + 0xd8], xmm0
mov dword [esp + 0xbc], 0
movaps xmm0, xmmword [esp + 0xb0]
movaps xmmword [esp + 0x190], xmm0
push eax
mov dword [esp + 0xd0], 0
lea eax, [esp + 0x25c]
movaps xmm0, xmmword [esp + 0xc4]
movaps xmmword [esp + 0x1a4], xmm0
mov dword [esp + 0xe0], 0
movaps xmm0, xmmword [esp + 0xd4]
push eax
mov dword [esp + 0xf0], 0
lea eax, [esp + 0x1e0]
mov dword [esp + 0xec], 0
mov dword [esp + 0xe8], 0
mov dword [esp + 0xf4], 0x3f800000
movaps xmmword [esp + 0x1b8], xmm0
movaps xmm0, xmmword [esp + 0xe8]
push eax
movaps xmmword [esp + 0x1cc], xmm0
call edi
lea eax, [esp + 0x218]
push eax
lea eax, [esp + 0x1dc]
push eax
lea eax, [esp + 0xb8]
push eax
call edi
movaps xmm0, xmmword [esp + 0xb0]
lea eax, [esp + 0x150]
movaps xmmword [esp + 0x150], xmm0
movaps xmm0, xmmword [esp + 0xc0]
movaps xmmword [esp + 0x160], xmm0
movaps xmm0, xmmword [esp + 0xd0]
push eax
movaps xmmword [esp + 0x174], xmm0
lea eax, [esp + 0x31c]
movaps xmm0, xmmword [esp + 0xe4]
push 0
push eax
movaps xmmword [esp + 0x18c], xmm0
call dword [sym.imp.d3dx9_43.dll_D3DXMatrixInverse]
movss xmm0, dword [esp + 0x50]
lea eax, [esp + 0x318]
push eax
movss dword [esp + 0x108], xmm0
lea eax, [esp + 0x108]
movss xmm0, dword [esp + 0x5c]
push eax
movss dword [esp + 0x110], xmm0
lea eax, [esp + 0x100]
movss xmm0, dword [esp + 0x5c]
push eax
movss dword [esp + 0x118], xmm0
call dword [sym.imp.d3dx9_43.dll_D3DXVec3TransformCoord]
movss xmm0, dword [esp + 0xf8]
movss xmm1, dword [esp + 0xfc]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm1, xmm0
movss xmm0, dword [0x1008b850]
comiss xmm0, xmm1
jbe 0x10040dbe
movss xmm0, dword [esp + 0x100]
push ecx
movss dword [esp], xmm0
call fcn.10009960
movss xmm0, dword [0x1008b864]
add esp, 4
fstp dword [esp + 0xc]
comiss xmm0, dword [esp + 0xc]
ja 0x10040deb
mov byte [esp + 0xb], 0
jmp 0x10040dcd
mov al, byte [esp + 0xb]
test al, al
jne 0x10040deb
push esi
call dword [sym.imp.Common.dll_struct_Universe::IZone_const____cdecl_Universe::next_zone_struct_Universe::IZone_const__]
mov esi, eax
add esp, 4
test esi, esi
jne 0x100409a2
cmp byte [esp + 0xb], al
je 0x10040f37
sub esp, 0xc
lea eax, [esp + 0x1e4]
mov dword [esp + 8], 0
mov dword [esp + 4], 0x3f666666
mov dword [esp], 0x3eb33333
push eax
call dword [sym.imp.d3dx9_43.dll_D3DXMatrixTranslation]
mov eax, dword [0x101f4244]
sub esp, 0xc
movss xmm2, dword [0x1008b9ac]
movaps xmm1, xmm2
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
mov dword [esp + 8], 0x3f800000
addsd xmm0, qword [eax*8 + 0x1008bb80]
mov eax, dword [0x101f4240]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
movss dword [esp + 4], xmm1
addsd xmm0, qword [eax*8 + 0x1008bb80]
lea eax, [esp + 0xbc]
cvtpd2ps xmm0, xmm0
divss xmm2, xmm0
movss dword [esp], xmm2
push eax
call dword [sym.imp.d3dx9_43.dll_D3DXMatrixScaling]
lea eax, [esp + 0x1d8]
push eax
lea eax, [esp + 0xb4]
push eax
lea eax, [esp + 0x360]
push eax
call edi
mov eax, dword [0x101f42fc]
lea edx, [esp + 0x358]
push edx
push str.g_mElementMatrix
push eax
mov ecx, dword [eax]
call dword [ecx + 0x98]
mov eax, dword [0x101f42fc]
push str.RenderElement
push eax
mov ecx, dword [eax]
call dword [ecx + 0xe8]
mov eax, dword [0x101f42fc]
push 0
push 0x101f4264
push eax
mov ecx, dword [eax]
call dword [ecx + 0xfc]
mov eax, dword [0x101f42fc]
push 0
push eax
mov ecx, dword [eax]
call dword [ecx + 0x100]
mov eax, dword [0x101f3f18]
push dword [0x101f42f8]
push 0
mov ecx, dword [eax]
push eax
call dword [ecx + 0x104]
mov eax, dword [0x101f3f18]
push 2
push 0
push 5
mov ecx, dword [eax]
push eax
call dword [ecx + 0x144]
mov eax, dword [0x101f42fc]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x108]
mov eax, dword [0x101f42fc]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x10c]
mov eax, dword [0x101f4244]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1008bb80]
cvtpd2ps xmm1, xmm0
movss xmm0, dword [0x101f4254]
mulss xmm0, dword [0x1008b974]
divss xmm0, xmm1
addss xmm0, dword [0x101f4d84]
comiss xmm0, xmm1
movss dword [0x101f4d84], xmm0
jbe 0x10040f89
subss xmm0, xmm1
movss dword [0x101f4d84], xmm0
cmp dword [0x10094114], 0
je 0x10040fad
push 0
push str.SceneAddOverlay
push ecx
mov ecx, dword [0x101f4248]
mov edx, str.DownSampleOverlay
call fcn.1004d060
add esp, 0xc
mov eax, dword [0x101f3f18]
push dword [esp + 0xa0]
push 0xf
mov ecx, dword [eax]
push eax
call dword [ecx + 0xe4]
mov eax, dword [0x101f3f18]
push dword [esp + 0x78]
push 0x16
mov ecx, dword [eax]
push eax
call dword [ecx + 0xe4]
mov eax, dword [0x101f3f18]
push dword [esp + 0x7c]
push 0xe
mov ecx, dword [eax]
push eax
call dword [ecx + 0xe4]
mov eax, dword [0x101f3f18]
push dword [esp + 0x80]
push 0x13
mov ecx, dword [eax]
push eax
call dword [ecx + 0xe4]
mov eax, dword [0x101f3f18]
push dword [esp + 0x84]
push 0x14
mov ecx, dword [eax]
push eax
call dword [ecx + 0xe4]
mov eax, dword [0x101f3f18]
push dword [esp + 0x88]
push 0xab
mov ecx, dword [eax]
push eax
call dword [ecx + 0xe4]
mov eax, dword [0x101f3f18]
push dword [esp + 0x70]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x15c]
mov eax, dword [esp + 0x70]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov edx, dword [esp + 0x74]
test edx, edx
je 0x10041081
push dword [esp + 0x8c]
mov eax, dword [0x101f3f18]
push dword [esp + 0x94]
push edx
mov ecx, dword [eax]
push 0
push eax
call dword [ecx + 0x190]
mov eax, dword [esp + 0x74]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov ecx, dword [esp + 0xb9c]
pop edi
pop esi
xor ecx, esp
call fcn.1004d763
mov esp, ebp
pop ebp
ret