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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x698
push esi
push edi
mov dword [esp + 0x94], ecx
movzx eax, byte [ebp + 8]
test eax, eax
jne 0x1014a2e7
mov ecx, dword [esp + 0x94]
movzx edx, byte [ecx + 7]
test edx, edx
jne 0x1014a2d1
jmp 0x1014c639
push 0x7a
mov edx, dword [esp + 0x98]
add edx, 7
mov ecx, 0x101a146c
call fcn.10097590
xor eax, eax
mov byte [esp + 0xe], al
xor ecx, ecx
mov byte [esp + 0xf], cl
xor edx, edx
mov byte [esp + 0x2b], dl
movss xmm0, dword [0x101ca554]
movss dword [esp + 0x364], xmm0
movss xmm0, dword [0x101ca57c]
movss dword [esp + 0x368], xmm0
lea edx, [esp + 0x364]
mov ecx, str.list
call fcn.10112f90
movzx eax, al
test eax, eax
je 0x1014be0a
mov dword [esp + 0x394], 0x101a0644
mov dword [esp + 0x398], 0x101a063c
mov dword [esp + 0x39c], 0x101a0a10
mov dword [esp + 0x3a0], 0x101a0a18
mov dword [esp + 0x3a4], str.Loot_Crates
mov dword [esp + 0x3a8], str.Other_Entities
mov dword [esp + 0x10], 0
jmp 0x1014a38e
mov ecx, dword [esp + 0x10]
add ecx, 1
mov dword [esp + 0x10], ecx
cmp dword [esp + 0x10], 6
jae 0x1014be05
mov edx, dword [0x101e5054]
cmp edx, dword [esp + 0x10]
jne 0x1014a4bd
mov eax, dword [0x101d83fc]
mov dword [esp + 0x98], eax
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x320], ecx
mov edx, dword [esp + 0x98]
mov dword [esp + 0x50], edx
mov eax, dword [esp + 0x50]
add eax, 1
mov dword [esp + 0x358], eax
mov ecx, dword [esp + 0x50]
mov dl, byte [ecx]
mov byte [esp + 0x3f], dl
add dword [esp + 0x50], 1
cmp byte [esp + 0x3f], 0
jne 0x1014a3dc
mov eax, dword [esp + 0x50]
sub eax, dword [esp + 0x358]
mov dword [esp + 0x130], eax
mov ecx, dword [esp + 0x130]
mov dword [esp + 0x324], ecx
mov edx, dword [esp + 0x320]
mov eax, dword [esp + 0x324]
mov dword [esp + 0x328], edx
mov dword [esp + 0x32c], eax
sub esp, 8
mov dword [esp + 0xa4], esp
mov ecx, dword [esp + 0xa4]
mov dword [ecx], 0x101a2f9c
mov dword [esp + 0x5c], 0x101a2f9c
mov edx, dword [esp + 0x5c]
add edx, 1
mov dword [esp + 0x13c], edx
mov eax, dword [esp + 0x5c]
mov cl, byte [eax]
mov byte [esp + 0x48], cl
add dword [esp + 0x5c], 1
cmp byte [esp + 0x48], 0
jne 0x1014a45b
mov edx, dword [esp + 0x5c]
sub edx, dword [esp + 0x13c]
mov dword [esp + 0x140], edx
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0x140]
mov dword [eax + 4], ecx
mov edx, dword [esp + 0x334]
push edx
mov eax, dword [esp + 0x334]
push eax
call fcn.1005fc00
mov byte [esp + 0x41], al
movzx ecx, byte [esp + 0x41]
test ecx, ecx
je 0x1014a4bd
mov byte [esp + 0x26], 1
jmp 0x1014a4c2
mov byte [esp + 0x26], 0
xorps xmm0, xmm0
movss dword [esp + 0x36c], xmm0
xorps xmm0, xmm0
movss dword [esp + 0x370], xmm0
lea edx, [esp + 0x36c]
mov dword [esp + 0x13c], edx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + eax*4 + 0x394]
mov dword [esp + 0x140], ecx
mov edx, dword [esp + 0x13c]
push edx
push 0
mov dl, byte [esp + 0x2e]
mov ecx, dword [esp + 0x148]
call fcn.101126b0
movzx eax, al
test eax, eax
je 0x1014a52f
mov ecx, dword [esp + 0x10]
mov dword [0x101e5054], ecx
mov dword [0x101d83fc], 0x101a2f9c
xor ecx, ecx
call fcn.100a64d0
movzx edx, al
test edx, edx
je 0x1014a6a4
mov eax, dword [esp + 0x10]
mov dword [esp + 0xa0], eax
cmp dword [esp + 0xa0], 3
ja case.default.0x1014a561
mov ecx, dword [esp + 0xa0]
jmp dword [ecx*4 + 0x1014c644]
push 2
push 0x1b4
push 0x101a2f9c
mov edx, dword [esp + 0x1c]
push edx
lea ecx, [esp + 0x1f]
call fcn.1014c8f0
mov edx, eax
mov ecx, str.Player
call fcn.100a6830
jmp 0x1014a69f
mov eax, dword [0x101d84bc]
mov dword [esp + 0x144], eax
mov ecx, dword [esp + 0x144]
add ecx, 0x1ba0
mov dword [esp + 0x148], ecx
push 0x101a2f9c
lea ecx, [esp + 0x47c]
call fcn.10012e10
push 2
push 0xbc
lea edx, [esp + 0x480]
push edx
lea eax, [esp + 0x46c]
push eax
mov ecx, dword [esp + 0x158]
call fcn.1006dc60
mov edx, dword [eax]
add edx, 0x20
mov ecx, 0x101a0654
call fcn.100a6830
lea ecx, [esp + 0x478]
call fcn.10016640
jmp 0x1014a69f
mov ecx, dword [0x101d84bc]
mov dword [esp + 0x14c], ecx
mov edx, dword [esp + 0x14c]
add edx, 0x1bc0
mov dword [esp + 0x150], edx
push 0x101a2f9c
lea ecx, [esp + 0x494]
call fcn.10012e10
push 2
push 0x114
lea eax, [esp + 0x498]
push eax
lea ecx, [esp + 0x474]
push ecx
mov ecx, dword [esp + 0x160]
call fcn.1006db10
mov edx, dword [eax]
add edx, 0x20
mov ecx, str.Projectile
call fcn.100a6830
lea ecx, [esp + 0x490]
call fcn.10016640
jmp 0x1014a69f
push 2
push 0xa4
push 0x101a2f9c
mov edx, dword [esp + 0x1c]
push edx
lea ecx, [esp + 0x1e]
call fcn.1014c6f0
mov edx, eax
mov ecx, str.Entity
call fcn.100a6830
call fcn.100a67f0
call fcn.100a6980
movzx eax, al
test eax, eax
je 0x1014acd4
xor edx, edx
mov ecx, str.Player
call fcn.100a6aa0
mov dword [esp + 0xa4], eax
cmp dword [esp + 0xa4], 0
je 0x1014a824
mov ecx, dword [esp + 0xa4]
mov edx, dword [ecx]
mov dword [esp + 0x78], edx
mov eax, dword [esp + 0x10]
mov dword [esp + 0xa8], eax
cmp dword [esp + 0xa8], 3
ja case.default.0x1014a702
mov ecx, dword [esp + 0xa8]
jmp dword [ecx*4 + 0x1014c654]
mov edx, dword [esp + 0x78]
push edx
push 0x101a2f9c
mov eax, dword [esp + 0x18]
push eax
lea ecx, [esp + 0x1b]
call fcn.1014c8f0
mov ecx, eax
call fcn.1014d500
jmp 0x1014a824
mov ecx, dword [0x101d84bc]
mov dword [esp + 0x154], ecx
mov edx, dword [esp + 0x154]
add edx, 0x1ba0
mov dword [esp + 0x158], edx
push 0x101a2f9c
lea ecx, [esp + 0x4ac]
call fcn.10012e10
mov eax, dword [esp + 0x78]
push eax
lea ecx, [esp + 0x4ac]
push ecx
lea edx, [esp + 0x478]
push edx
mov ecx, dword [esp + 0x164]
call fcn.1006dc60
mov ecx, dword [eax]
add ecx, 0x20
call fcn.1014d660
lea ecx, [esp + 0x4a8]
call fcn.10016640
jmp 0x1014a824
mov eax, dword [0x101d84bc]
mov dword [esp + 0x15c], eax
mov ecx, dword [esp + 0x15c]
add ecx, 0x1bc0
mov dword [esp + 0x160], ecx
push 0x101a2f9c
lea ecx, [esp + 0x4c4]
call fcn.10012e10
mov edx, dword [esp + 0x78]
push edx
lea eax, [esp + 0x4c4]
push eax
lea ecx, [esp + 0x3c8]
push ecx
mov ecx, dword [esp + 0x16c]
call fcn.1006db10
mov ecx, dword [eax]
add ecx, 0x20
call fcn.1014d660
lea ecx, [esp + 0x4c0]
call fcn.10016640
jmp 0x1014a824
mov edx, dword [esp + 0x78]
push edx
push 0x101a2f9c
mov eax, dword [esp + 0x18]
push eax
lea ecx, [esp + 0x1a]
call fcn.1014c6f0
mov ecx, eax
call fcn.1014d660
xor edx, edx
mov ecx, 0x101a0654
call fcn.100a6aa0
mov dword [esp + 0xac], eax
cmp dword [esp + 0xac], 0
je 0x1014a9c4
mov ecx, dword [esp + 0xac]
mov edx, dword [ecx]
mov dword [esp + 0x58], edx
mov eax, dword [esp + 0x10]
mov dword [esp + 0xb0], eax
cmp dword [esp + 0xb0], 3
ja case.default.0x1014a872
mov ecx, dword [esp + 0xb0]
jmp dword [ecx*4 + 0x1014c664]
mov edx, dword [esp + 0x58]
push edx
push 0x101a2f9c
mov eax, dword [esp + 0x18]
push eax
lea ecx, [esp + 0x1b]
call fcn.1014c8f0
mov ecx, eax
call fcn.1014d660
jmp 0x1014a9c4
mov ecx, dword [0x101d84bc]
mov dword [esp + 0x164], ecx
mov edx, dword [esp + 0x164]
add edx, 0x1ba0
mov dword [esp + 0x168], edx
push 0x101a2f9c
lea ecx, [esp + 0x4dc]
call fcn.10012e10
lea eax, [esp + 0x4d8]
push eax
lea ecx, [esp + 0x3cc]
push ecx
mov ecx, dword [esp + 0x170]
call fcn.1006dc60
mov edx, dword [eax]
add edx, 0x20
mov dword [esp + 0xb4], edx
mov eax, dword [esp + 0x58]
push eax
mov ecx, dword [esp + 0xb8]
call fcn.1014d660
mov esi, dword [esp + 0x58]
add esi, 0xa4
mov edi, dword [esp + 0xb4]
add edi, 0xa4
mov ecx, 5
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x4d8]
call fcn.10016640
jmp 0x1014a9c4
mov ecx, dword [0x101d84bc]
mov dword [esp + 0x16c], ecx
mov edx, dword [esp + 0x16c]
add edx, 0x1bc0
mov dword [esp + 0x170], edx
push 0x101a2f9c
lea ecx, [esp + 0x4f4]
call fcn.10012e10
mov eax, dword [esp + 0x58]
push eax
lea ecx, [esp + 0x4f4]
push ecx
lea edx, [esp + 0x3d8]
push edx
mov ecx, dword [esp + 0x17c]
call fcn.1006db10
mov ecx, dword [eax]
add ecx, 0x20
call fcn.1014d660
lea ecx, [esp + 0x4f0]
call fcn.10016640
jmp 0x1014a9c4
mov eax, dword [esp + 0x58]
push eax
push 0x101a2f9c
mov ecx, dword [esp + 0x18]
push ecx
lea ecx, [esp + 0x1a]
call fcn.1014c6f0
mov ecx, eax
call fcn.1014d660
xor edx, edx
mov ecx, str.Projectile
call fcn.100a6aa0
mov dword [esp + 0xb8], eax
cmp dword [esp + 0xb8], 0
je 0x1014ab60
mov edx, dword [esp + 0xb8]
mov eax, dword [edx]
mov dword [esp + 0x5c], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xbc], ecx
cmp dword [esp + 0xbc], 3
ja case.default.0x1014aa12
mov edx, dword [esp + 0xbc]
jmp dword [edx*4 + 0x1014c674]
mov eax, dword [esp + 0x5c]
push eax
push 0x101a2f9c
mov ecx, dword [esp + 0x18]
push ecx
lea ecx, [esp + 0x1b]
call fcn.1014c8f0
mov ecx, eax
call fcn.1014d660
jmp 0x1014ab60
mov edx, dword [0x101d84bc]
mov dword [esp + 0x174], edx
mov eax, dword [esp + 0x174]
add eax, 0x1ba0
mov dword [esp + 0x178], eax
push 0x101a2f9c
lea ecx, [esp + 0x50c]
call fcn.10012e10
mov ecx, dword [esp + 0x5c]
push ecx
lea edx, [esp + 0x50c]
push edx
lea eax, [esp + 0x3e0]
push eax
mov ecx, dword [esp + 0x184]
call fcn.1006dc60
mov ecx, dword [eax]
add ecx, 0x20
call fcn.1014d660
lea ecx, [esp + 0x508]
call fcn.10016640
jmp 0x1014ab60
mov ecx, dword [0x101d84bc]
mov dword [esp + 0x17c], ecx
mov edx, dword [esp + 0x17c]
add edx, 0x1bc0
mov dword [esp + 0x180], edx
push 0x101a2f9c
lea ecx, [esp + 0x524]
call fcn.10012e10
lea eax, [esp + 0x520]
push eax
lea ecx, [esp + 0x3e4]
push ecx
mov ecx, dword [esp + 0x188]
call fcn.1006db10
mov edx, dword [eax]
add edx, 0x20
mov dword [esp + 0xc0], edx
mov eax, dword [esp + 0x5c]
push eax
mov ecx, dword [esp + 0xc4]
call fcn.1014d660
mov esi, dword [esp + 0x5c]
add esi, 0xa4
mov edi, dword [esp + 0xc0]
add edi, 0xa4
mov ecx, 0x1c
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x520]
call fcn.10016640
jmp 0x1014ab60
mov ecx, dword [esp + 0x5c]
push ecx
push 0x101a2f9c
mov edx, dword [esp + 0x18]
push edx
lea ecx, [esp + 0x1a]
call fcn.1014c6f0
mov ecx, eax
call fcn.1014d660
xor edx, edx
mov ecx, str.Entity
call fcn.100a6aa0
mov dword [esp + 0xc4], eax
cmp dword [esp + 0xc4], 0
je 0x1014accf
mov eax, dword [esp + 0xc4]
mov ecx, dword [eax]
mov dword [esp + 0x7c], ecx
mov edx, dword [esp + 0x10]
mov dword [esp + 0xc8], edx
cmp dword [esp + 0xc8], 3
ja case.default.0x1014abae
mov eax, dword [esp + 0xc8]
jmp dword [eax*4 + 0x1014c684]
mov ecx, dword [esp + 0x7c]
push ecx
push 0x101a2f9c
mov edx, dword [esp + 0x18]
push edx
lea ecx, [esp + 0x1b]
call fcn.1014c8f0
mov ecx, eax
call fcn.1014d660
jmp 0x1014accf
mov eax, dword [0x101d84bc]
mov dword [esp + 0x184], eax
mov ecx, dword [esp + 0x184]
add ecx, 0x1ba0
mov dword [esp + 0x188], ecx
push 0x101a2f9c
lea ecx, [esp + 0x53c]
call fcn.10012e10
mov edx, dword [esp + 0x7c]
push edx
lea eax, [esp + 0x53c]
push eax
lea ecx, [esp + 0x3f0]
push ecx
mov ecx, dword [esp + 0x194]
call fcn.1006dc60
mov ecx, dword [eax]
add ecx, 0x20
call fcn.1014d660
lea ecx, [esp + 0x538]
call fcn.10016640
jmp 0x1014accf
mov edx, dword [0x101d84bc]
mov dword [esp + 0x18c], edx
mov eax, dword [esp + 0x18c]
add eax, 0x1bc0
mov dword [esp + 0x190], eax
push 0x101a2f9c
lea ecx, [esp + 0x554]
call fcn.10012e10
mov ecx, dword [esp + 0x7c]
push ecx
lea edx, [esp + 0x554]
push edx
lea eax, [esp + 0x3f8]
push eax
mov ecx, dword [esp + 0x19c]
call fcn.1006db10
mov ecx, dword [eax]
add ecx, 0x20
call fcn.1014d660
lea ecx, [esp + 0x550]
call fcn.10016640
jmp 0x1014accf
mov ecx, dword [esp + 0x7c]
push ecx
push 0x101a2f9c
mov edx, dword [esp + 0x18]
push edx
lea ecx, [esp + 0x1a]
call fcn.1014c6f0
mov ecx, eax
call fcn.1014d660
call fcn.100a6ea0
mov ecx, dword [esp + 0x10]
call fcn.1009c9d0
xorps xmm0, xmm0
call fcn.1009d600
mov eax, dword [esp + 0x10]
push eax
lea ecx, [esp + 0x30]
push ecx
lea ecx, [esp + 0x9a]
call fcn.1014ca70
push 0x101a2f9c
mov edx, dword [esp + 0x14]
push edx
lea ecx, [esp + 0x16]
call fcn.1014c6f0
mov al, byte [eax]
mov byte [esp + 0x28], al
mov dword [esp + 0x14], 0
jmp 0x1014ad29
mov ecx, dword [esp + 0x14]
add ecx, 1
mov dword [esp + 0x14], ecx
lea edx, [esp + 0x2c]
mov dword [esp + 0xcc], edx
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0xcc]
mov edx, dword [eax + 4]
sub edx, dword [ecx]
sar edx, 2
cmp dword [esp + 0x14], edx
jae 0x1014bdea
movzx eax, byte [esp + 0x28]
test eax, eax
je 0x1014ada2
lea ecx, [esp + 0x2c]
mov dword [esp + 0x194], ecx
mov edx, dword [esp + 0x194]
mov eax, dword [edx]
mov ecx, dword [esp + 0x14]
lea edx, [eax + ecx*4]
mov dword [esp + 0x198], edx
mov eax, dword [esp + 0x198]
mov ecx, dword [eax]
push ecx
mov edx, dword [esp + 0x14]
push edx
lea ecx, [esp + 0x16]
call fcn.1014c6f0
movzx eax, byte [eax]
test eax, eax
je 0x1014b9bb
mov ecx, dword [0x101e5054]
cmp ecx, dword [esp + 0x10]
jne 0x1014af0d
movzx edx, byte [0x101e50b8]
test edx, edx
jne 0x1014af0d
mov eax, dword [0x101d83fc]
mov dword [esp + 0xd0], eax
mov ecx, dword [esp + 0xd0]
mov dword [esp + 0x330], ecx
mov edx, dword [esp + 0xd0]
mov dword [esp + 0x60], edx
mov eax, dword [esp + 0x60]
add eax, 1
mov dword [esp + 0x19c], eax
mov ecx, dword [esp + 0x60]
mov dl, byte [ecx]
mov byte [esp + 0x42], dl
add dword [esp + 0x60], 1
cmp byte [esp + 0x42], 0
jne 0x1014adf4
mov eax, dword [esp + 0x60]
sub eax, dword [esp + 0x19c]
mov dword [esp + 0x1a0], eax
mov ecx, dword [esp + 0x1a0]
mov dword [esp + 0x334], ecx
mov edx, dword [esp + 0x330]
mov eax, dword [esp + 0x334]
mov dword [esp + 0x338], edx
mov dword [esp + 0x33c], eax
lea ecx, [esp + 0x2c]
mov dword [esp + 0x1a4], ecx
mov edx, dword [esp + 0x1a4]
mov eax, dword [edx]
mov ecx, dword [esp + 0x14]
lea edx, [eax + ecx*4]
mov dword [esp + 0x1a8], edx
mov eax, dword [esp + 0x1a8]
mov ecx, dword [eax]
mov dword [esp + 0xd4], ecx
sub esp, 8
mov dword [esp + 0xe0], esp
mov edx, dword [esp + 0xe0]
mov eax, dword [esp + 0xdc]
mov dword [edx], eax
mov ecx, dword [esp + 0xdc]
mov dword [esp + 0x6c], ecx
mov edx, dword [esp + 0x6c]
add edx, 1
mov dword [esp + 0x1b4], edx
mov eax, dword [esp + 0x6c]
mov cl, byte [eax]
mov byte [esp + 0x4b], cl
add dword [esp + 0x6c], 1
cmp byte [esp + 0x4b], 0
jne 0x1014aeab
mov edx, dword [esp + 0x6c]
sub edx, dword [esp + 0x1b4]
mov dword [esp + 0x1b8], edx
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0x1b8]
mov dword [eax + 4], ecx
mov edx, dword [esp + 0x344]
push edx
mov eax, dword [esp + 0x344]
push eax
call fcn.1005fc00
mov byte [esp + 0x39], al
movzx ecx, byte [esp + 0x39]
test ecx, ecx
je 0x1014af0d
mov byte [esp + 0x27], 1
jmp 0x1014af12
mov byte [esp + 0x27], 0
xorps xmm0, xmm0
movss dword [esp + 0x374], xmm0
xorps xmm0, xmm0
movss dword [esp + 0x378], xmm0
lea edx, [esp + 0x374]
mov dword [esp + 0x1b8], edx
lea eax, [esp + 0x2c]
mov dword [esp + 0x1b4], eax
mov ecx, dword [esp + 0x1b4]
mov edx, dword [ecx]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + eax*4]
mov dword [esp + 0x1bc], ecx
mov edx, dword [esp + 0x1b8]
push edx
push 0
mov dl, byte [esp + 0x2f]
mov ecx, dword [esp + 0x1c4]
call fcn.101126b0
movzx eax, al
test eax, eax
je 0x1014afac
mov ecx, dword [esp + 0x10]
mov dword [0x101e5054], ecx
lea edx, [esp + 0x2c]
mov dword [esp + 0x1c0], edx
mov eax, dword [esp + 0x1c0]
mov ecx, dword [eax]
mov edx, dword [esp + 0x14]
mov eax, dword [ecx + edx*4]
mov dword [0x101d83fc], eax
mov byte [0x101e50b8], 0
xor ecx, ecx
call fcn.100a64d0
movzx ecx, al
test ecx, ecx
je 0x1014b19c
mov edx, dword [esp + 0x10]
mov dword [esp + 0xdc], edx
cmp dword [esp + 0xdc], 3
ja case.default.0x1014afde
mov eax, dword [esp + 0xdc]
jmp dword [eax*4 + 0x1014c694]
lea ecx, [esp + 0x2c]
mov dword [esp + 0x1c4], ecx
mov edx, dword [esp + 0x1c4]
mov eax, dword [edx]
mov ecx, dword [esp + 0x14]
lea edx, [eax + ecx*4]
mov dword [esp + 0x1c8], edx
push 2
push 0x1b4
mov eax, dword [esp + 0x1d0]
mov ecx, dword [eax]
push ecx
mov edx, dword [esp + 0x1c]
push edx
lea ecx, [esp + 0x1f]
call fcn.1014c8f0
mov edx, eax
mov ecx, str.Player
call fcn.100a6830
jmp 0x1014b197
mov eax, dword [0x101d84bc]
mov dword [esp + 0x1cc], eax
mov ecx, dword [esp + 0x1cc]
add ecx, 0x1ba0
mov dword [esp + 0x1d4], ecx
lea edx, [esp + 0x2c]
mov dword [esp + 0x1d0], edx
mov eax, dword [esp + 0x1d0]
mov ecx, dword [eax]
mov edx, dword [esp + 0x14]
mov eax, dword [ecx + edx*4]
push eax
lea ecx, [esp + 0x56c]
call fcn.10012e10
push 2
push 0xbc
lea ecx, [esp + 0x570]
push ecx
lea edx, [esp + 0x404]
push edx
mov ecx, dword [esp + 0x1e4]
call fcn.1006dc60
mov edx, dword [eax]
add edx, 0x20
mov ecx, 0x101a0654
call fcn.100a6830
lea ecx, [esp + 0x568]
call fcn.10016640
jmp 0x1014b197
mov eax, dword [0x101d84bc]
mov dword [esp + 0x1d8], eax
mov ecx, dword [esp + 0x1d8]
add ecx, 0x1bc0
mov dword [esp + 0x1e0], ecx
lea edx, [esp + 0x2c]
mov dword [esp + 0x1dc], edx
mov eax, dword [esp + 0x1dc]
mov ecx, dword [eax]
mov edx, dword [esp + 0x14]
mov eax, dword [ecx + edx*4]
push eax
lea ecx, [esp + 0x584]
call fcn.10012e10
push 2
push 0x114
lea ecx, [esp + 0x588]
push ecx
lea edx, [esp + 0x40c]
push edx
mov ecx, dword [esp + 0x1f0]
call fcn.1006db10
mov edx, dword [eax]
add edx, 0x20
mov ecx, str.Projectile
call fcn.100a6830
lea ecx, [esp + 0x580]
call fcn.10016640
jmp 0x1014b197
lea eax, [esp + 0x2c]
mov dword [esp + 0x1e4], eax
mov ecx, dword [esp + 0x1e4]
mov edx, dword [ecx]
mov eax, dword [esp + 0x14]
lea ecx, [edx + eax*4]
mov dword [esp + 0x1e8], ecx
push 2
push 0xa4
mov edx, dword [esp + 0x1f0]
mov eax, dword [edx]
push eax
mov ecx, dword [esp + 0x1c]
push ecx
lea ecx, [esp + 0x1e]
call fcn.1014c6f0
mov edx, eax
mov ecx, str.Entity
call fcn.100a6830
call fcn.100a67f0
call fcn.100a6980
movzx edx, al
test edx, edx
je 0x1014b9bb
xor edx, edx
mov ecx, str.Player
call fcn.100a6aa0
mov dword [esp + 0x104], eax
cmp dword [esp + 0x104], 0
je 0x1014b3a7
mov eax, dword [esp + 0x104]
mov ecx, dword [eax]
mov dword [esp + 0x80], ecx
mov edx, dword [esp + 0x10]
mov dword [esp + 0xe0], edx
cmp dword [esp + 0xe0], 3
ja case.default.0x1014b1fd
mov eax, dword [esp + 0xe0]
jmp dword [eax*4 + 0x1014c6a4]
lea ecx, [esp + 0x2c]
mov dword [esp + 0x1ec], ecx
mov edx, dword [esp + 0x1ec]
mov eax, dword [edx]
mov ecx, dword [esp + 0x14]
lea edx, [eax + ecx*4]
mov dword [esp + 0x1f0], edx
mov eax, dword [esp + 0x80]
push eax
mov ecx, dword [esp + 0x1f4]
mov edx, dword [ecx]
push edx
mov eax, dword [esp + 0x18]
push eax
lea ecx, [esp + 0x1b]
call fcn.1014c8f0
mov ecx, eax
call fcn.1014d500
jmp 0x1014b3a7
mov ecx, dword [0x101d84bc]
mov dword [esp + 0x1f4], ecx
mov edx, dword [esp + 0x1f4]
add edx, 0x1ba0
mov dword [esp + 0x1fc], edx
lea eax, [esp + 0x2c]
mov dword [esp + 0x1f8], eax
mov ecx, dword [esp + 0x1f8]
mov edx, dword [ecx]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + eax*4]
push ecx
lea ecx, [esp + 0x59c]
call fcn.10012e10
mov edx, dword [esp + 0x80]
push edx
lea eax, [esp + 0x59c]
push eax
lea ecx, [esp + 0x410]
push ecx
mov ecx, dword [esp + 0x208]
call fcn.1006dc60
mov ecx, dword [eax]
add ecx, 0x20
call fcn.1014d660
lea ecx, [esp + 0x598]
call fcn.10016640
jmp 0x1014b3a7
mov edx, dword [0x101d84bc]
mov dword [esp + 0x200], edx
mov eax, dword [esp + 0x200]
add eax, 0x1bc0
mov dword [esp + 0x208], eax
lea ecx, [esp + 0x2c]
mov dword [esp + 0x204], ecx
mov edx, dword [esp + 0x204]
mov eax, dword [edx]
mov ecx, dword [esp + 0x14]
mov edx, dword [eax + ecx*4]
push edx
lea ecx, [esp + 0x5b4]
call fcn.10012e10
mov eax, dword [esp + 0x80]
push eax
lea ecx, [esp + 0x5b4]
push ecx
lea edx, [esp + 0x418]
push edx
mov ecx, dword [esp + 0x214]
call fcn.1006db10
mov ecx, dword [eax]
add ecx, 0x20
call fcn.1014d660
lea ecx, [esp + 0x5b0]
call fcn.10016640
jmp 0x1014b3a7
lea eax, [esp + 0x2c]
mov dword [esp + 0x20c], eax
mov ecx, dword [esp + 0x20c]
mov edx, dword [ecx]
mov eax, dword [esp + 0x14]
lea ecx, [edx + eax*4]
mov dword [esp + 0x210], ecx
mov edx, dword [esp + 0x80]
push edx
mov eax, dword [esp + 0x214]
mov ecx, dword [eax]
push ecx
mov edx, dword [esp + 0x18]
push edx
lea ecx, [esp + 0x1a]
call fcn.1014c6f0
mov ecx, eax
call fcn.1014d660
xor edx, edx
mov ecx, 0x101a0654
call fcn.100a6aa0
mov dword [esp + 0xe4], eax
cmp dword [esp + 0xe4], 0
je 0x1014b5c2
mov eax, dword [esp + 0xe4]
mov ecx, dword [eax]
mov dword [esp + 0x68], ecx
mov edx, dword [esp + 0x10]
mov dword [esp + 0xe8], edx
cmp dword [esp + 0xe8], 3
ja case.default.0x1014b3f5
mov eax, dword [esp + 0xe8]
jmp dword [eax*4 + 0x1014c6b4]
lea ecx, [esp + 0x2c]
mov dword [esp + 0x214], ecx
mov edx, dword [esp + 0x214]
mov eax, dword [edx]
mov ecx, dword [esp + 0x14]
lea edx, [eax + ecx*4]
mov dword [esp + 0x218], edx
mov eax, dword [esp + 0x68]
push eax
mov ecx, dword [esp + 0x21c]
mov edx, dword [ecx]
push edx
mov eax, dword [esp + 0x18]
push eax
lea ecx, [esp + 0x1b]
call fcn.1014c8f0
mov ecx, eax
call fcn.1014d660
jmp 0x1014b5c2
mov ecx, dword [0x101d84bc]
mov dword [esp + 0x21c], ecx
mov edx, dword [esp + 0x21c]
add edx, 0x1ba0
mov dword [esp + 0x224], edx
lea eax, [esp + 0x2c]
mov dword [esp + 0x220], eax
mov ecx, dword [esp + 0x220]
mov edx, dword [ecx]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + eax*4]
push ecx
lea ecx, [esp + 0x5cc]
call fcn.10012e10
lea edx, [esp + 0x5c8]
push edx
lea eax, [esp + 0x41c]
push eax
mov ecx, dword [esp + 0x22c]
call fcn.1006dc60
mov ecx, dword [eax]
add ecx, 0x20
mov dword [esp + 0xec], ecx
mov edx, dword [esp + 0x68]
push edx
mov ecx, dword [esp + 0xf0]
call fcn.1014d660
mov esi, dword [esp + 0x68]
add esi, 0xa4
mov edi, dword [esp + 0xec]
add edi, 0xa4
mov ecx, 5
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x5c8]
call fcn.10016640
jmp 0x1014b5c2
mov eax, dword [0x101d84bc]
mov dword [esp + 0x228], eax
mov ecx, dword [esp + 0x228]
add ecx, 0x1bc0
mov dword [esp + 0x230], ecx
lea edx, [esp + 0x2c]
mov dword [esp + 0x22c], edx
mov eax, dword [esp + 0x22c]
mov ecx, dword [eax]
mov edx, dword [esp + 0x14]
mov eax, dword [ecx + edx*4]
push eax
lea ecx, [esp + 0x5e4]
call fcn.10012e10
mov ecx, dword [esp + 0x68]
push ecx
lea edx, [esp + 0x5e4]
push edx
lea eax, [esp + 0x428]
push eax
mov ecx, dword [esp + 0x23c]
call fcn.1006db10
mov ecx, dword [eax]
add ecx, 0x20
call fcn.1014d660
lea ecx, [esp + 0x5e0]
call fcn.10016640
jmp 0x1014b5c2
lea ecx, [esp + 0x2c]
mov dword [esp + 0x234], ecx
mov edx, dword [esp + 0x234]
mov eax, dword [edx]
mov ecx, dword [esp + 0x14]
lea edx, [eax + ecx*4]
mov dword [esp + 0x238], edx
mov eax, dword [esp + 0x68]
push eax
mov ecx, dword [esp + 0x23c]
mov edx, dword [ecx]
push edx
mov eax, dword [esp + 0x18]
push eax
lea ecx, [esp + 0x1a]
call fcn.1014c6f0
mov ecx, eax
call fcn.1014d660
xor edx, edx
mov ecx, str.Projectile
call fcn.100a6aa0
mov dword [esp + 0xf0], eax
cmp dword [esp + 0xf0], 0
je 0x1014b7bc
mov ecx, dword [esp + 0xf0]
mov edx, dword [ecx]
mov dword [esp + 0x84], edx
mov eax, dword [esp + 0x10]
mov dword [esp + 0xf4], eax
cmp dword [esp + 0xf4], 3
ja case.default.0x1014b613
mov ecx, dword [esp + 0xf4]
jmp dword [ecx*4 + 0x1014c6c4]
lea edx, [esp + 0x2c]
mov dword [esp + 0x23c], edx
mov eax, dword [esp + 0x23c]
mov ecx, dword [eax]
mov edx, dword [esp + 0x14]
lea eax, [ecx + edx*4]
mov dword [esp + 0x240], eax
mov ecx, dword [esp + 0x84]
push ecx
mov edx, dword [esp + 0x244]
mov eax, dword [edx]
push eax
mov ecx, dword [esp + 0x18]
push ecx
lea ecx, [esp + 0x1b]
call fcn.1014c8f0
mov ecx, eax
call fcn.1014d660
jmp 0x1014b7bc
mov edx, dword [0x101d84bc]
mov dword [esp + 0x244], edx
mov eax, dword [esp + 0x244]
add eax, 0x1ba0
mov dword [esp + 0x24c], eax
lea ecx, [esp + 0x2c]
mov dword [esp + 0x248], ecx
mov edx, dword [esp + 0x248]
mov eax, dword [edx]
mov ecx, dword [esp + 0x14]
mov edx, dword [eax + ecx*4]
push edx
lea ecx, [esp + 0x5fc]
call fcn.10012e10
mov eax, dword [esp + 0x84]
push eax
lea ecx, [esp + 0x5fc]
push ecx
lea edx, [esp + 0x430]
push edx
mov ecx, dword [esp + 0x258]
call fcn.1006dc60
mov ecx, dword [eax]
add ecx, 0x20
call fcn.1014d660
lea ecx, [esp + 0x5f8]
call fcn.10016640
jmp 0x1014b7bc
mov eax, dword [0x101d84bc]
mov dword [esp + 0x250], eax
mov ecx, dword [esp + 0x250]
add ecx, 0x1bc0
mov dword [esp + 0x258], ecx
lea edx, [esp + 0x2c]
mov dword [esp + 0x254], edx
mov eax, dword [esp + 0x254]
mov ecx, dword [eax]
mov edx, dword [esp + 0x14]
mov eax, dword [ecx + edx*4]
push eax
lea ecx, [esp + 0x614]
call fcn.10012e10
mov ecx, dword [esp + 0x84]
push ecx
lea edx, [esp + 0x614]
push edx
lea eax, [esp + 0x438]
push eax
mov ecx, dword [esp + 0x264]
call fcn.1006db10
mov ecx, dword [eax]
add ecx, 0x20
call fcn.1014d730
lea ecx, [esp + 0x610]
call fcn.10016640
jmp 0x1014b7bc
lea ecx, [esp + 0x2c]
mov dword [esp + 0x25c], ecx
mov edx, dword [esp + 0x25c]
mov eax, dword [edx]
mov ecx, dword [esp + 0x14]
lea edx, [eax + ecx*4]
mov dword [esp + 0x260], edx
mov eax, dword [esp + 0x84]
push eax
mov ecx, dword [esp + 0x264]
mov edx, dword [ecx]
push edx
mov eax, dword [esp + 0x18]
push eax
lea ecx, [esp + 0x1a]
call fcn.1014c6f0
mov ecx, eax
call fcn.1014d660
xor edx, edx
mov ecx, str.Entity
call fcn.100a6aa0
mov dword [esp + 0xf8], eax
cmp dword [esp + 0xf8], 0
je 0x1014b9b6
mov ecx, dword [esp + 0xf8]
mov edx, dword [ecx]
mov dword [esp + 0x88], edx
mov eax, dword [esp + 0x10]
mov dword [esp + 0xfc], eax
cmp dword [esp + 0xfc], 3
ja case.default.0x1014b80d
mov ecx, dword [esp + 0xfc]
jmp dword [ecx*4 + 0x1014c6d4]
lea edx, [esp + 0x2c]
mov dword [esp + 0x264], edx
mov eax, dword [esp + 0x264]
mov ecx, dword [eax]
mov edx, dword [esp + 0x14]
lea eax, [ecx + edx*4]
mov dword [esp + 0x268], eax
mov ecx, dword [esp + 0x88]
push ecx
mov edx, dword [esp + 0x26c]
mov eax, dword [edx]
push eax
mov ecx, dword [esp + 0x18]
push ecx
lea ecx, [esp + 0x1b]
call fcn.1014c8f0
mov ecx, eax
call fcn.1014d660
jmp 0x1014b9b6
mov edx, dword [0x101d84bc]
mov dword [esp + 0x26c], edx
mov eax, dword [esp + 0x26c]
add eax, 0x1ba0
mov dword [esp + 0x274], eax
lea ecx, [esp + 0x2c]
mov dword [esp + 0x270], ecx
mov edx, dword [esp + 0x270]
mov eax, dword [edx]
mov ecx, dword [esp + 0x14]
mov edx, dword [eax + ecx*4]
push edx
lea ecx, [esp + 0x62c]
call fcn.10012e10
mov eax, dword [esp + 0x88]
push eax
lea ecx, [esp + 0x62c]
push ecx
lea edx, [esp + 0x440]
push edx
mov ecx, dword [esp + 0x280]
call fcn.1006dc60
mov ecx, dword [eax]
add ecx, 0x20
call fcn.1014d660
lea ecx, [esp + 0x628]
call fcn.10016640
jmp 0x1014b9b6
mov eax, dword [0x101d84bc]
mov dword [esp + 0x278], eax
mov ecx, dword [esp + 0x278]
add ecx, 0x1bc0
mov dword [esp + 0x280], ecx
lea edx, [esp + 0x2c]
mov dword [esp + 0x27c], edx
mov eax, dword [esp + 0x27c]
mov ecx, dword [eax]
mov edx, dword [esp + 0x14]
mov eax, dword [ecx + edx*4]
push eax
lea ecx, [esp + 0x644]
call fcn.10012e10
mov ecx, dword [esp + 0x88]
push ecx
lea edx, [esp + 0x644]
push edx
lea eax, [esp + 0x448]
push eax
mov ecx, dword [esp + 0x28c]
call fcn.1006db10
mov ecx, dword [eax]
add ecx, 0x20
call fcn.1014d660
lea ecx, [esp + 0x640]
call fcn.10016640
jmp 0x1014b9b6
lea ecx, [esp + 0x2c]
mov dword [esp + 0x284], ecx
mov edx, dword [esp + 0x284]
mov eax, dword [edx]
mov ecx, dword [esp + 0x14]
lea edx, [eax + ecx*4]
mov dword [esp + 0x288], edx
mov eax, dword [esp + 0x88]
push eax
mov ecx, dword [esp + 0x28c]
mov edx, dword [ecx]
push edx
mov eax, dword [esp + 0x18]
push eax
lea ecx, [esp + 0x1a]
call fcn.1014c6f0
mov ecx, eax
call fcn.1014d660
call fcn.100a6ea0
cmp dword [esp + 0x10], 2
je 0x1014b9c7
jmp 0x1014ad1e
xorps xmm0, xmm0
call fcn.1009d600
mov ecx, dword [esp + 0x14]
push ecx
lea edx, [esp + 0x3b8]
push edx
lea ecx, [esp + 0x9b]
call fcn.1014cde0
lea eax, [esp + 0x2c]
mov dword [esp + 0x28c], eax
mov ecx, dword [esp + 0x28c]
mov edx, dword [ecx]
mov eax, dword [esp + 0x14]
lea ecx, [edx + eax*4]
mov dword [esp + 0x290], ecx
mov edx, dword [esp + 0x290]
mov eax, dword [edx]
push eax
mov ecx, dword [esp + 0x14]
push ecx
lea ecx, [esp + 0x16]
call fcn.1014c6f0
mov dl, byte [eax]
mov byte [esp + 0x3a], dl
lea eax, [esp + 0x3b4]
mov dword [esp + 0x100], eax
mov ecx, dword [esp + 0x100]
mov edx, dword [ecx]
mov dword [esp + 0x8c], edx
mov eax, dword [esp + 0x100]
mov ecx, dword [eax + 4]
mov dword [esp + 0x294], ecx
jmp 0x1014ba6a
mov edx, dword [esp + 0x8c]
add edx, 4
mov dword [esp + 0x8c], edx
mov eax, dword [esp + 0x8c]
cmp eax, dword [esp + 0x294]
je 0x1014bdd1
mov ecx, dword [esp + 0x8c]
mov edx, dword [ecx]
mov dword [esp + 0x4c], edx
mov eax, dword [0x101d84bc]
mov dword [esp + 0x298], eax
mov ecx, dword [esp + 0x298]
add ecx, 0x1ba0
mov dword [esp + 0x29c], ecx
mov edx, dword [esp + 0x4c]
push edx
lea ecx, [esp + 0x65c]
call fcn.10012e10
lea eax, [esp + 0x658]
push eax
lea ecx, [esp + 0x44c]
push ecx
mov ecx, dword [esp + 0x2a4]
call fcn.1006dc60
mov edx, dword [eax]
add edx, 0x20
mov dword [esp + 0x48], edx
lea ecx, [esp + 0x658]
call fcn.10016640
movzx eax, byte [esp + 0x28]
test eax, eax
jne 0x1014baff
movzx ecx, byte [esp + 0x3a]
test ecx, ecx
je 0x1014bb0f
mov edx, dword [esp + 0x48]
movzx eax, byte [edx]
test eax, eax
jne 0x1014bb0f
jmp 0x1014ba59
mov ecx, dword [0x101e5054]
cmp ecx, dword [esp + 0x10]
jne 0x1014bc42
movzx edx, byte [0x101e50b8]
test edx, edx
je 0x1014bc42
mov eax, dword [0x101d83fc]
mov dword [esp + 0x12c], eax
mov ecx, dword [esp + 0x12c]
mov dword [esp + 0x340], ecx
mov edx, dword [esp + 0x12c]
mov dword [esp + 0x6c], edx
mov eax, dword [esp + 0x6c]
add eax, 1
mov dword [esp + 0x2a0], eax
mov ecx, dword [esp + 0x6c]
mov dl, byte [ecx]
mov byte [esp + 0x3b], dl
add dword [esp + 0x6c], 1
cmp byte [esp + 0x3b], 0
jne 0x1014bb61
mov eax, dword [esp + 0x6c]
sub eax, dword [esp + 0x2a0]
mov dword [esp + 0x2a4], eax
mov ecx, dword [esp + 0x2a4]
mov dword [esp + 0x344], ecx
mov edx, dword [esp + 0x340]
mov eax, dword [esp + 0x344]
mov dword [esp + 0x348], edx
mov dword [esp + 0x34c], eax
sub esp, 8
mov dword [esp + 0x110], esp
mov ecx, dword [esp + 0x110]
mov edx, dword [esp + 0x54]
mov dword [ecx], edx
mov eax, dword [esp + 0x54]
mov dword [esp + 0x78], eax
mov ecx, dword [esp + 0x78]
add ecx, 1
mov dword [esp + 0x2b0], ecx
mov edx, dword [esp + 0x78]
mov al, byte [edx]
mov byte [esp + 0x44], al
add dword [esp + 0x78], 1
cmp byte [esp + 0x44], 0
jne 0x1014bbe0
mov ecx, dword [esp + 0x78]
sub ecx, dword [esp + 0x2b0]
mov dword [esp + 0x2b4], ecx
mov edx, dword [esp + 0x110]
mov eax, dword [esp + 0x2b4]
mov dword [edx + 4], eax
mov ecx, dword [esp + 0x354]
push ecx
mov edx, dword [esp + 0x354]
push edx
call fcn.1005fc00
mov byte [esp + 0x3d], al
movzx eax, byte [esp + 0x3d]
test eax, eax
je 0x1014bc42
mov byte [esp + 0x29], 1
jmp 0x1014bc47
mov byte [esp + 0x29], 0
xorps xmm0, xmm0
movss dword [esp + 0x37c], xmm0
xorps xmm0, xmm0
movss dword [esp + 0x380], xmm0
lea ecx, [esp + 0x37c]
push ecx
push 0
mov dl, byte [esp + 0x31]
mov ecx, dword [esp + 0x54]
call fcn.101126b0
movzx edx, al
test edx, edx
je 0x1014bc97
mov eax, dword [esp + 0x10]
mov dword [0x101e5054], eax
mov ecx, dword [esp + 0x4c]
mov dword [0x101d83fc], ecx
mov byte [0x101e50b8], 1
xor ecx, ecx
call fcn.100a64d0
movzx edx, al
test edx, edx
je 0x1014bcbf
push 2
push 0xbc
mov edx, dword [esp + 0x50]
mov ecx, 0x101a0654
call fcn.100a6830
call fcn.100a67f0
call fcn.100a6980
movzx eax, al
test eax, eax
je 0x1014bdcc
xor edx, edx
mov ecx, str.Player
call fcn.100a6aa0
mov dword [esp + 0x10c], eax
cmp dword [esp + 0x10c], 0
je 0x1014bd0d
mov ecx, dword [esp + 0x10c]
mov edx, dword [ecx]
mov dword [esp + 0x2b0], edx
mov eax, dword [esp + 0x2b0]
push eax
mov ecx, dword [esp + 0x4c]
call fcn.1014d660
xor edx, edx
mov ecx, 0x101a0654
call fcn.100a6aa0
mov dword [esp + 0x110], eax
cmp dword [esp + 0x110], 0
je 0x1014bd4b
mov ecx, dword [esp + 0x110]
mov edx, dword [ecx]
mov dword [esp + 0x2b4], edx
mov eax, dword [esp + 0x2b4]
push eax
mov ecx, dword [esp + 0x4c]
call fcn.1014d6f0
xor edx, edx
mov ecx, str.Projectile
call fcn.100a6aa0
mov dword [esp + 0x114], eax
cmp dword [esp + 0x114], 0
je 0x1014bd89
mov ecx, dword [esp + 0x114]
mov edx, dword [ecx]
mov dword [esp + 0x2b8], edx
mov eax, dword [esp + 0x2b8]
push eax
mov ecx, dword [esp + 0x4c]
call fcn.1014d660
xor edx, edx
mov ecx, str.Entity
call fcn.100a6aa0
mov dword [esp + 0x118], eax
cmp dword [esp + 0x118], 0
je 0x1014bdc7
mov ecx, dword [esp + 0x118]
mov edx, dword [ecx]
mov dword [esp + 0x2bc], edx
mov eax, dword [esp + 0x2bc]
push eax
mov ecx, dword [esp + 0x4c]
call fcn.1014d660
call fcn.100a6ea0
jmp 0x1014ba59
xorps xmm0, xmm0
call fcn.1009d6b0
lea ecx, [esp + 0x3b4]
call fcn.10025f40
jmp 0x1014ad1e
xorps xmm0, xmm0
call fcn.1009d6b0
call fcn.1009cab0
lea ecx, [esp + 0x2c]
call fcn.10025f40
jmp 0x1014a383
call fcn.10113580
movss xmm1, dword [0x101ca668]
xorps xmm0, xmm0
call fcn.1009d170
movss xmm0, dword [0x101ca5a4]
movss dword [esp + 0x384], xmm0
xorps xmm0, xmm0
movss dword [esp + 0x388], xmm0
push 8
push 0
lea edx, [esp + 0x38c]
mov ecx, 0x101b1f10
call fcn.100927a0
movzx ecx, al
test ecx, ecx
je 0x1014c627
mov edx, dword [0x101d83fc]
push edx
mov eax, dword [0x101e5054]
push eax
lea ecx, [esp + 0x16]
call fcn.1014c6f0
mov dword [esp + 0x20], eax
mov edx, dword [esp + 0x20]
mov ecx, str.Enabled
call fcn.100fa810
call fcn.1009dd70
movss dword [esp + 0x354], xmm1
movss dword [esp + 0x350], xmm0
mov ecx, dword [esp + 0x350]
mov edx, dword [esp + 0x354]
mov dword [esp + 0x38c], ecx
mov dword [esp + 0x390], edx
movss xmm0, dword [esp + 0x38c]
subss xmm0, dword [0x101ca578]
movss xmm1, dword [0x101ca668]
call fcn.1009d170
movss xmm0, dword [0x101ca578]
call fcn.1009d760
mov eax, dword [0x101d84bc]
mov dword [esp + 0x2c0], eax
mov ecx, dword [esp + 0x2c0]
add ecx, 0x39cc
mov dword [esp + 0x2c4], ecx
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 4]
mov dword [esp + 0x2c8], eax
mov ecx, dword [esp + 0x2c4]
mov dword [esp + 0x2cc], ecx
imul edx, dword [esp + 0x2c8], 0x18
mov eax, dword [esp + 0x2cc]
add edx, dword [eax]
mov dword [esp + 0x2d0], edx
mov ecx, dword [esp + 0x2d0]
call fcn.10016950
mov dword [esp + 0x2d4], eax
push 0
mov edx, dword [esp + 0x2d8]
mov ecx, str.font
call fcn.100fc9b0
movzx ecx, al
test ecx, ecx
je 0x1014c184
mov dword [esp + 0x44], 0
jmp 0x1014bf77
mov edx, dword [esp + 0x44]
add edx, 1
mov dword [esp + 0x44], edx
mov eax, dword [0x101d84bc]
mov dword [esp + 0x2d8], eax
mov ecx, dword [esp + 0x2d8]
add ecx, 0x39cc
mov dword [esp + 0x11c], ecx
mov edx, dword [esp + 0x11c]
mov eax, dword [esp + 0x11c]
mov ecx, dword [edx + 4]
sub ecx, dword [eax]
mov eax, ecx
cdq
mov ecx, 0x18
idiv ecx
cmp dword [esp + 0x44], eax
jae 0x1014c17f
mov edx, dword [0x101d84bc]
mov dword [esp + 0x2dc], edx
mov eax, dword [esp + 0x2dc]
add eax, 0x39cc
mov dword [esp + 0x2e0], eax
mov ecx, dword [esp + 0x2e0]
mov dword [esp + 0x2e4], ecx
imul edx, dword [esp + 0x44], 0x18
mov eax, dword [esp + 0x2e4]
add edx, dword [eax]
mov dword [esp + 0x2e8], edx
mov ecx, dword [esp + 0x20]
add ecx, 8
push ecx
mov ecx, dword [esp + 0x2ec]
call fcn.1002dee0
mov byte [esp + 0x2a], al
movss xmm0, dword [0x101ca57c]
movss dword [esp + 0x35c], xmm0
xorps xmm0, xmm0
movss dword [esp + 0x360], xmm0
mov edx, dword [0x101d84bc]
mov dword [esp + 0x2ec], edx
mov eax, dword [esp + 0x2ec]
add eax, 0x39cc
mov dword [esp + 0x2f0], eax
mov ecx, dword [esp + 0x2f0]
mov dword [esp + 0x2f4], ecx
imul edx, dword [esp + 0x44], 0x18
mov eax, dword [esp + 0x2f4]
add edx, dword [eax]
mov dword [esp + 0x2f8], edx
mov ecx, dword [esp + 0x2f8]
call fcn.10016950
mov dword [esp + 0x2fc], eax
lea ecx, [esp + 0x35c]
push ecx
push 0
mov dl, byte [esp + 0x32]
mov ecx, dword [esp + 0x304]
call fcn.101126b0
movzx edx, al
test edx, edx
je 0x1014c16c
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x44]
mov dword [eax + 4], ecx
mov edx, dword [0x101d84bc]
mov dword [esp + 0x300], edx
mov eax, dword [esp + 0x300]
add eax, 0x39cc
mov dword [esp + 0x304], eax
mov ecx, dword [esp + 0x304]
mov dword [esp + 0x308], ecx
imul edx, dword [esp + 0x44], 0x18
mov eax, dword [esp + 0x308]
add edx, dword [eax]
mov dword [esp + 0x120], edx
mov ecx, dword [esp + 0x20]
add ecx, 8
mov dword [esp + 0x124], ecx
mov edx, dword [esp + 0x124]
cmp edx, dword [esp + 0x120]
je 0x1014c13d
xor eax, eax
mov byte [esp + 0x3e], al
movzx ecx, byte [esp + 0x3e]
push ecx
mov edx, dword [esp + 0x124]
push edx
mov ecx, dword [esp + 0x12c]
call fcn.10038570
mov eax, dword [esp + 0x3ac]
mov dword [esp + 0x128], eax
mov ecx, dword [0x101d84bc]
mov dword [esp + 0x128], ecx
mov edx, dword [esp + 0x20]
add edx, 8
push edx
mov ecx, dword [esp + 0x12c]
call fcn.10010040
movzx eax, byte [esp + 0x2a]
test eax, eax
je 0x1014c17a
call fcn.1009c790
jmp 0x1014bf6c
call fcn.100fd700
call fcn.100fc5a0
mov dword [esp + 0x3b0], 0xaa
mov edx, dword [esp + 0x20]
add edx, 0x20
mov ecx, str.Tracer
call fcn.1007a0f0
movss xmm1, dword [0x101ca668]
xorps xmm0, xmm0
call fcn.1009d170
movss xmm0, dword [0x101ca518]
call fcn.1009d760
push 0xffffffffffffffff
push str.Bottom
mov edx, dword [esp + 0x28]
add edx, 0x3c
mov ecx, str.snapline
call fcn.100fd930
movss xmm1, dword [0x101ca668]
movss xmm0, dword [0x101ca568]
call fcn.1009d170
mov edx, dword [esp + 0x20]
add edx, 0x40
mov ecx, 0x101a0604
call fcn.1007a090
movss xmm1, dword [0x101ca668]
xorps xmm0, xmm0
call fcn.1009d170
mov edx, 1
mov ecx, str.espbox
call fcn.100f8510
movzx ecx, al
test ecx, ecx
je 0x1014c232
xor edx, edx
mov ecx, str.box
call fcn.1009f550
mov edx, dword [esp + 0x20]
add edx, 0x40
push edx
push str.box
lea ecx, [esp + 0x33]
call fcn.1014c9a0
push 0
push 0
mov edx, dword [esp + 0x28]
add edx, 0x88
mov ecx, str.Name
call fcn.10079fe0
movss xmm1, dword [0x101ca668]
movss xmm0, dword [0x101ca568]
call fcn.1009d170
cmp dword [0x101e5054], 2
jae 0x1014c448
mov eax, dword [0x101d83fc]
push eax
mov ecx, dword [0x101e5054]
push ecx
lea ecx, [esp + 0x17]
call fcn.1014c8f0
mov dword [esp + 0x1c], eax
push 0
push 0
mov edx, dword [esp + 0x24]
add edx, 0xa4
mov ecx, 0x101a0654
call fcn.10079fe0
push 0
push 0
mov edx, dword [esp + 0x24]
add edx, 0xbb
mov ecx, str.Flash_duration
call fcn.10079fe0
movss xmm1, dword [0x101ca668]
movss xmm0, dword [0x101ca568]
call fcn.1009d170
push 0
push 0
mov edx, dword [esp + 0x24]
add edx, 0x104
mov ecx, str.Skeleton
call fcn.10079fe0
mov edx, dword [esp + 0x1c]
add edx, 0xd2
mov ecx, str.Audible
call fcn.100fa810
movss xmm1, dword [0x101ca668]
movss xmm0, dword [0x101ca568]
call fcn.1009d170
mov edx, dword [esp + 0x1c]
add edx, 0xd3
mov ecx, str.Spotted
call fcn.100fa810
mov edx, dword [esp + 0x1c]
add edx, 0x120
mov ecx, str.Head_box
call fcn.1007a090
movss xmm1, dword [0x101ca668]
xorps xmm0, xmm0
call fcn.1009d170
mov edx, 1
mov ecx, str.headbox
call fcn.100f8510
movzx edx, al
test edx, edx
je 0x1014c37c
xor edx, edx
mov ecx, str.head_box
call fcn.1009f550
mov eax, dword [esp + 0x1c]
add eax, 0x120
push eax
push str.head_box
lea ecx, [esp + 0x33]
call fcn.1014c9a0
movss xmm1, dword [0x101ca668]
movss xmm0, dword [0x101ca568]
call fcn.1009d170
push 0
push 0
mov edx, dword [esp + 0x24]
add edx, 0xeb
mov ecx, str.Health
call fcn.10079fe0
push 0
push 0
mov edx, dword [esp + 0x24]
add edx, 0xd4
mov ecx, str.Health_bar
call fcn.10079fe0
movss xmm1, dword [0x101ca668]
movss xmm0, dword [0x101ca568]
call fcn.1009d170
push 0
push 0
mov edx, dword [esp + 0x24]
add edx, 0x168
mov ecx, str.Flags
call fcn.10079fe0
mov edx, dword [esp + 0x1c]
add edx, 0x17f
mov ecx, str.Offscreen
call fcn.1007a040
movss xmm1, dword [0x101ca668]
movss xmm0, dword [0x101ca568]
call fcn.1009d170
mov edx, dword [esp + 0x1c]
add edx, 0x198
mov ecx, str.Line_of_sight
call fcn.1007a0f0
jmp 0x1014c5ef
cmp dword [0x101e5054], 2
jne 0x1014c4dc
mov ecx, dword [0x101d84bc]
mov dword [esp + 0x30c], ecx
mov edx, dword [esp + 0x30c]
add edx, 0x1ba0
mov dword [esp + 0x310], edx
mov eax, dword [0x101d83fc]
push eax
lea ecx, [esp + 0x674]
call fcn.10012e10
lea ecx, [esp + 0x670]
push ecx
lea edx, [esp + 0x454]
push edx
mov ecx, dword [esp + 0x318]
call fcn.1006dc60
mov eax, dword [eax]
add eax, 0x20
mov dword [esp + 0x314], eax
lea ecx, [esp + 0x670]
call fcn.10016640
push 0
push 0
mov edx, dword [esp + 0x31c]
add edx, 0xa4
mov ecx, str.Ammo
call fcn.10079fe0
jmp 0x1014c5ef
cmp dword [0x101e5054], 3
jne 0x1014c5ef
mov ecx, dword [0x101d84bc]
mov dword [esp + 0x318], ecx
mov edx, dword [esp + 0x318]
add edx, 0x1bc0
mov dword [esp + 0x31c], edx
mov eax, dword [0x101d83fc]
push eax
lea ecx, [esp + 0x68c]
call fcn.10012e10
lea ecx, [esp + 0x688]
push ecx
lea edx, [esp + 0x45c]
push edx
mov ecx, dword [esp + 0x324]
call fcn.1006db10
mov eax, dword [eax]
add eax, 0xc4
mov dword [esp + 0x74], eax
lea ecx, [esp + 0x688]
call fcn.10016640
mov edx, dword [esp + 0x74]
mov ecx, str.Trails
call fcn.100fa810
movss xmm1, dword [0x101ca668]
xorps xmm0, xmm0
call fcn.1009d170
mov edx, 1
mov ecx, str.esptrails
call fcn.100f8510
movzx ecx, al
test ecx, ecx
je 0x1014c58f
xor edx, edx
mov ecx, str.trails
call fcn.1009f550
xor edx, edx
mov ecx, str.trails
call fcn.1009fb10
movzx edx, al
test edx, edx
je 0x1014c5ef
xor eax, eax
mov byte [esp + 0x1b], al
mov ecx, dword [esp + 0x74]
add ecx, 4
push ecx
push 0x101a3594
lea ecx, [esp + 0x23]
call fcn.1014d3b0
mov edx, dword [esp + 0x74]
add edx, 0x28
push edx
push 0x101a063c
lea ecx, [esp + 0x23]
call fcn.1014d3b0
mov eax, dword [esp + 0x74]
add eax, 0x4c
push eax
push 0x101a0644
lea ecx, [esp + 0x23]
call fcn.1014d3b0
call fcn.1009fc90
movss xmm0, dword [0x101ca518]
call fcn.1009d760
push 0
push str._.0fu
mov edx, dword [esp + 0x28]
add edx, 0xa0
movss xmm1, dword [0x101ca47c]
movss xmm0, dword [0x101ca378]
mov ecx, str.Text_cull
call fcn.101021b0
call fcn.10092830
movzx ecx, byte [ebp + 8]
test ecx, ecx
jne 0x1014c639
call fcn.1009b0f0
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4