Function at 0x10054ae0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100a3446
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x4c8
mov eax, dword [0x100bc00c]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x24], edi
push 7
xorps xmm0, xmm0
mov dword [ebp - 0x348], 0
push str.players
lea ecx, [ebp - 0x358]
mov dword [ebp - 0x344], 0
movups xmmword [ebp - 0x358], xmm0
call fcn.10021350
lea eax, [ebp - 0x358]
mov dword [ebp - 4], 0
cmp edi, eax
je 0x10054b83
cmp dword [ebp - 0x344], 0x10
mov ecx, edi
push dword [ebp - 0x348]
cmovae eax, dword [ebp - 0x358]
push eax
call fcn.10020af0
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x344]
cmp ecx, 0x10
jb 0x10054bc4
mov edx, dword [ebp - 0x358]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10054bba
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005621f
push ecx
push edx
call fcn.1009cd75
add esp, 8
push 0xd
xorps xmm0, xmm0
mov dword [ebp - 0x48], 0
push str.tahoma_normal
lea ecx, [ebp - 0x58]
mov dword [ebp - 0x44], 0
movups xmmword [ebp - 0x58], xmm0
call fcn.10021350
mov dword [ebp - 4], 1
lea ecx, [ebp - 0x40]
push 0xe
xorps xmm0, xmm0
mov dword [ebp - 0x30], 0
push str.verdana_normal
movups xmmword [ebp - 0x40], xmm0
mov dword [ebp - 0x2c], 0
call fcn.10021350
lea ecx, [ebp - 0x58]
mov dword [ebp - 4], 2
push ecx
lea eax, [ebp - 0x28]
push eax
push ecx
lea ecx, [ebp - 0x7c]
call fcn.10072100
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xd0]
push 0xa
xorps xmm0, xmm0
mov dword [ebp - 0xc0], 0
push str.name_style
movups xmmword [ebp - 0xd0], xmm0
mov dword [ebp - 0xbc], 0
call fcn.10021350
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x370]
push 0xa
xorps xmm0, xmm0
mov dword [ebp - 0x360], 0
push str.font_style
movups xmmword [ebp - 0x370], xmm0
mov dword [ebp - 0x35c], 0
call fcn.10021350
lea ecx, [edi + 0x68]
mov byte [ebp - 4], 5
lea eax, [ebp - 0xd0]
cmp ecx, eax
je 0x10054cbe
cmp dword [ebp - 0xbc], 0x10
push dword [ebp - 0xc0]
cmovae eax, dword [ebp - 0xd0]
push eax
call fcn.10020af0
lea ecx, [edi + 0xa0]
mov byte [edi + 0x99], 1
lea eax, [ebp - 0x370]
cmp ecx, eax
je 0x10054cef
cmp dword [ebp - 0x35c], 0x10
push dword [ebp - 0x360]
cmovae eax, dword [ebp - 0x370]
push eax
call fcn.10020af0
mov esi, dword [ebp - 0x7c]
xor eax, eax
cmp byte [edi + 0x99], al
mov ecx, 0xf
cmovne eax, ecx
mov dword [edi + 0xcc], eax
add eax, 0x14
mov dword [edi + 0x40], eax
mov dword [edi + 0x44], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x28], eax
cmp esi, eax
je 0x10054d54
lea ecx, [edi + 0xb8]
mov eax, dword [edi + 0xbc]
push esi
cmp eax, dword [edi + 0xc0]
je 0x10054d40
mov ecx, eax
call fcn.100271f0
add dword [edi + 0xbc], 0x18
jmp 0x10054d46
push eax
call fcn.10048220
add esi, 0x18
lea ecx, [edi + 0xb8]
cmp esi, dword [ebp - 0x28]
jne 0x10054d21
mov ecx, dword [edi + 0xbc]
lea eax, [edi + 0xb8]
sub ecx, dword [eax]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x10054d7f
mov dword [edi + 0xc8], 0
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x35c]
cmp ecx, 0x10
jb 0x10054db9
mov edx, dword [ebp - 0x370]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10054daf
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10054de9
push ecx
push edx
call fcn.1009cd75
add esp, 8
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0xbc]
cmp ecx, 0x10
jb 0x10054df9
mov edx, dword [ebp - 0xd0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10054def
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x10054def
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.1009cd75
add esp, 8
lea ecx, [ebp - 0x7c]
call fcn.10047b00
push fcn.100208c0
push 2
push 0x18
lea eax, [ebp - 0x58]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.1009c941
mov dword [edi + 0x48], 0
lea esi, [edi + 0x18]
mov dword [edi + 0x34], 0x14
lea ecx, [edi + 0x30]
mov dword [edi + 0x3c], 0xaf
mov eax, dword [edi + 0x2c]
mov dword [edi + 0x4c], eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x28], esi
cmp eax, dword [esi + 8]
je 0x10054e51
mov dword [eax], ecx
add dword [esi + 4], 4
jmp 0x10054e5d
lea ecx, [ebp - 0x1c]
push ecx
push eax
mov ecx, esi
call fcn.10021f10
push 5
xorps xmm0, xmm0
mov dword [ebp - 0x48], 0
push str.enemy
lea ecx, [ebp - 0x58]
mov dword [ebp - 0x44], 0
movups xmmword [ebp - 0x58], xmm0
call fcn.10021350
mov dword [ebp - 4], 6
lea ecx, [ebp - 0x40]
push 8
xorps xmm0, xmm0
mov dword [ebp - 0x30], 0
push str.friendly
movups xmmword [ebp - 0x40], xmm0
mov dword [ebp - 0x2c], 0
call fcn.10021350
lea ecx, [ebp - 0x58]
mov dword [ebp - 4], 7
push ecx
lea eax, [ebp - 0x28]
push eax
push ecx
lea ecx, [ebp - 0x7c]
call fcn.10072100
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x100]
push 3
xorps xmm0, xmm0
mov dword [ebp - 0xf0], 0
push 0x100ae190
movups xmmword [ebp - 0x100], xmm0
mov dword [ebp - 0xec], 0
call fcn.10021350
mov byte [ebp - 4], 9
lea ecx, [ebp - 0xe8]
push 5
xorps xmm0, xmm0
mov dword [ebp - 0xd8], 0
push str.boxes
movups xmmword [ebp - 0xe8], xmm0
mov dword [ebp - 0xd4], 0
call fcn.10021350
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x60], 0
lea ecx, [edi + 0x108]
mov byte [ebp - 4], 0xb
lea eax, [ebp - 0x100]
cmp ecx, eax
je 0x10054f6f
cmp dword [ebp - 0xec], 0x10
push dword [ebp - 0xf0]
cmovae eax, dword [ebp - 0x100]
push eax
call fcn.10020af0
lea ecx, [edi + 0x140]
mov byte [edi + 0x139], 1
lea eax, [ebp - 0xe8]
cmp ecx, eax
je 0x10054fa0
cmp dword [ebp - 0xd4], 0x10
push dword [ebp - 0xd8]
cmovae eax, dword [ebp - 0xe8]
push eax
call fcn.10020af0
xor eax, eax
mov ecx, 0xf
cmp byte [edi + 0x139], al
cmovne eax, ecx
mov ecx, dword [ebp - 0x78]
mov dword [edi + 0x174], eax
add eax, 0x14
mov dword [edi + 0xe0], eax
mov dword [edi + 0xe4], eax
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x20], ecx
cmp eax, ecx
je 0x10055016
lea ecx, [edi + 0x158]
mov esi, eax
nop word [eax + eax]
mov eax, dword [edi + 0x15c]
push esi
cmp eax, dword [edi + 0x160]
je 0x10054fff
mov ecx, eax
call fcn.100271f0
add dword [edi + 0x15c], 0x18
jmp 0x10055005
push eax
call fcn.10048220
add esi, 0x18
lea ecx, [edi + 0x158]
cmp esi, dword [ebp - 0x20]
jne 0x10054fe0
lea esi, [edi + 0x18]
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0xd4]
cmp ecx, 0x10
jb 0x10055050
mov edx, dword [ebp - 0xe8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10055046
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10055080
push ecx
push edx
call fcn.1009cd75
add esp, 8
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0xec]
cmp ecx, 0x10
jb 0x10055090
mov edx, dword [ebp - 0x100]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10055086
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x10055086
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.1009cd75
add esp, 8
lea ecx, [ebp - 0x7c]
call fcn.10047b00
push fcn.100208c0
push 2
push 0x18
lea eax, [ebp - 0x58]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.1009c941
mov dword [edi + 0xe8], 0
lea ecx, [edi + 0xd0]
mov dword [edi + 0xd4], 0x14
mov dword [edi + 0xdc], 0xaf
mov eax, dword [edi + 0x2c]
mov dword [edi + 0xec], eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x20], ecx
cmp eax, dword [esi + 8]
je 0x100550f1
mov dword [eax], ecx
add dword [esi + 4], 4
jmp 0x100550fd
lea ecx, [ebp - 0x20]
push ecx
push eax
mov ecx, esi
call fcn.10021f10
push 9
xorps xmm0, xmm0
mov dword [ebp - 0x120], 0
push str.box_enemy
lea ecx, [ebp - 0x130]
mov dword [ebp - 0x11c], 0
movups xmmword [ebp - 0x130], xmm0
call fcn.10021350
mov dword [ebp - 4], 0xc
lea ecx, [ebp - 0x118]
push 0xf
xorps xmm0, xmm0
mov dword [ebp - 0x108], 0
push str.box_enemy_color
movups xmmword [ebp - 0x118], xmm0
mov dword [ebp - 0x104], 0
call fcn.10021350
lea ecx, [edi + 0x1e8]
mov byte [ebp - 4], 0xd
lea eax, [ebp - 0x118]
cmp ecx, eax
je 0x10055192
cmp dword [ebp - 0x104], 0x10
push dword [ebp - 0x108]
cmovae eax, dword [ebp - 0x118]
push eax
call fcn.10020af0
lea ecx, [edi + 0x1b0]
lea eax, [ebp - 0x130]
cmp ecx, eax
je 0x100551bc
cmp dword [ebp - 0x11c], 0x10
push dword [ebp - 0x120]
cmovae eax, dword [ebp - 0x130]
push eax
call fcn.10020af0
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0x104]
mov dword [edi + 0x200], 0xff3cc896
mov dword [edi + 0x204], 0
cmp ecx, 0x10
jb 0x1005520e
mov edx, dword [ebp - 0x118]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10055204
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005621f
push ecx
push edx
call fcn.1009cd75
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x11c]
cmp ecx, 0x10
jb 0x1005524f
mov edx, dword [ebp - 0x130]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10055245
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005621f
push ecx
push edx
call fcn.1009cd75
add esp, 8
mov dword [edi + 0x190], 0
lea ecx, [edi + 0x178]
mov dword [edi + 0x17c], 0x14
mov dword [edi + 0x184], 0xaf
mov eax, dword [edi + 0x2c]
mov dword [edi + 0x194], eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x20], ecx
cmp eax, dword [esi + 8]
je 0x1005528f
mov dword [eax], ecx
add dword [esi + 4], 4
jmp 0x1005529b
lea ecx, [ebp - 0x20]
push ecx
push eax
mov ecx, esi
call fcn.10021f10
push 0xc
xorps xmm0, xmm0
mov dword [ebp - 0x150], 0
push str.box_friendly
lea ecx, [ebp - 0x160]
mov dword [ebp - 0x14c], 0
movups xmmword [ebp - 0x160], xmm0
call fcn.10021350
mov dword [ebp - 4], 0xe
lea ecx, [ebp - 0x148]
push 0x12
xorps xmm0, xmm0
mov dword [ebp - 0x138], 0
push str.box_friendly_color
movups xmmword [ebp - 0x148], xmm0
mov dword [ebp - 0x134], 0
call fcn.10021350
lea ecx, [edi + 0x278]
mov byte [ebp - 4], 0xf
lea eax, [ebp - 0x148]
cmp ecx, eax
je 0x10055330
cmp dword [ebp - 0x134], 0x10
push dword [ebp - 0x138]
cmovae eax, dword [ebp - 0x148]
push eax
call fcn.10020af0
lea ecx, [edi + 0x240]
lea eax, [ebp - 0x160]
cmp ecx, eax
je 0x1005535a
cmp dword [ebp - 0x14c], 0x10
push dword [ebp - 0x150]
cmovae eax, dword [ebp - 0x160]
push eax
call fcn.10020af0
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0x134]
mov dword [edi + 0x290], 0xff00c8ff
mov dword [edi + 0x294], 0
cmp ecx, 0x10
jb 0x100553ac
mov edx, dword [ebp - 0x148]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100553a2
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005621f
push ecx
push edx
call fcn.1009cd75
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x14c]
cmp ecx, 0x10
jb 0x100553ed
mov edx, dword [ebp - 0x160]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100553e3
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005621f
push ecx
push edx
call fcn.1009cd75
add esp, 8
mov dword [edi + 0x220], 0
lea ecx, [edi + 0x208]
mov dword [edi + 0x20c], 0x14
mov dword [edi + 0x214], 0xaf
mov eax, dword [edi + 0x2c]
mov dword [edi + 0x224], eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x20], ecx
cmp eax, dword [esi + 8]
je 0x1005542d
mov dword [eax], ecx
add dword [esi + 4], 4
jmp 0x10055439
lea ecx, [ebp - 0x20]
push ecx
push eax
mov ecx, esi
call fcn.10021f10
push 7
xorps xmm0, xmm0
mov dword [ebp - 0x180], 0
push str.dormant
lea ecx, [ebp - 0x190]
mov dword [ebp - 0x17c], 0
movups xmmword [ebp - 0x190], xmm0
call fcn.10021350
mov dword [ebp - 4], 0x10
lea ecx, [ebp - 0x178]
push 0xf
xorps xmm0, xmm0
mov dword [ebp - 0x168], 0
push str.dormant_enemies
movups xmmword [ebp - 0x178], xmm0
mov dword [ebp - 0x164], 0
call fcn.10021350
lea ecx, [edi + 0x2d0]
mov byte [ebp - 4], 0x11
lea eax, [ebp - 0x190]
cmp ecx, eax
je 0x100554ce
cmp dword [ebp - 0x17c], 0x10
push dword [ebp - 0x180]
cmovae eax, dword [ebp - 0x190]
push eax
call fcn.10020af0
lea ecx, [edi + 0x308]
mov byte [edi + 0x301], 1
lea eax, [ebp - 0x178]
cmp ecx, eax
je 0x100554ff
cmp dword [ebp - 0x164], 0x10
push dword [ebp - 0x168]
cmovae eax, dword [ebp - 0x178]
push eax
call fcn.10020af0
mov byte [ebp - 4], 0x10
mov ecx, dword [ebp - 0x164]
mov byte [edi + 0x304], 0
cmp ecx, 0x10
jb 0x10055544
mov edx, dword [ebp - 0x178]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1005553a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005621f
push ecx
push edx
call fcn.1009cd75
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x17c]
cmp ecx, 0x10
jb 0x10055585
mov edx, dword [ebp - 0x190]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1005557b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005621f
push ecx
push edx
call fcn.1009cd75
add esp, 8
mov dword [edi + 0x2b0], 0
lea ecx, [edi + 0x298]
mov dword [edi + 0x29c], 0x14
mov dword [edi + 0x2a4], 0xaf
mov eax, dword [edi + 0x2c]
mov dword [edi + 0x2b4], eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x20], ecx
cmp eax, dword [esi + 8]
je 0x100555c5
mov dword [eax], ecx
add dword [esi + 4], 4
jmp 0x100555d1
lea ecx, [ebp - 0x20]
push ecx
push eax
mov ecx, esi
call fcn.10021f10
push 9
xorps xmm0, xmm0
mov dword [ebp - 0x1b0], 0
push str.offscreen
lea ecx, [ebp - 0x1c0]
mov dword [ebp - 0x1ac], 0
movups xmmword [ebp - 0x1c0], xmm0
call fcn.10021350
mov dword [ebp - 4], 0x12
lea ecx, [ebp - 0x1a8]
push 0x13
xorps xmm0, xmm0
mov dword [ebp - 0x198], 0
push str.enemy_offscreen_esp
movups xmmword [ebp - 0x1a8], xmm0
mov dword [ebp - 0x194], 0
call fcn.10021350
lea ecx, [edi + 0x358]
mov byte [ebp - 4], 0x13
lea eax, [ebp - 0x1c0]
cmp ecx, eax
je 0x10055666
cmp dword [ebp - 0x1ac], 0x10
push dword [ebp - 0x1b0]
cmovae eax, dword [ebp - 0x1c0]
push eax
call fcn.10020af0
lea ecx, [edi + 0x390]
mov byte [edi + 0x389], 1
lea eax, [ebp - 0x1a8]
cmp ecx, eax
je 0x10055697
cmp dword [ebp - 0x194], 0x10
push dword [ebp - 0x198]
cmovae eax, dword [ebp - 0x1a8]
push eax
call fcn.10020af0
mov byte [ebp - 4], 0x12
mov ecx, dword [ebp - 0x194]
mov byte [edi + 0x38c], 0
cmp ecx, 0x10
jb 0x100556dc
mov edx, dword [ebp - 0x1a8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100556d2
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005621f
push ecx
push edx
call fcn.1009cd75
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x1ac]
cmp ecx, 0x10
jb 0x1005571d
mov edx, dword [ebp - 0x1c0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10055713
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005621f
push ecx
push edx
call fcn.1009cd75
add esp, 8
mov dword [edi + 0x338], 0
lea ecx, [edi + 0x320]
mov dword [edi + 0x324], 0x14
mov dword [edi + 0x32c], 0xaf
mov eax, dword [edi + 0x2c]
mov dword [edi + 0x33c], eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x20], ecx
cmp eax, dword [esi + 8]
je 0x1005575d
mov dword [eax], ecx
add dword [esi + 4], 4
jmp 0x10055769
lea ecx, [ebp - 0x20]
push ecx
push eax
mov ecx, esi
call fcn.10021f10
mov esi, dword [0x100ac6fc]
lea ecx, [ebp - 0x1f0]
push 0xf
xorps xmm0, xmm0
mov dword [ebp - 0x1e0], 0
push str.offscreen_color
movups xmmword [ebp - 0x1f0], xmm0
mov dword [ebp - 0x1dc], 0
call fcn.10021350
mov dword [ebp - 4], 0x14
lea ecx, [ebp - 0x1d8]
push 0x13
xorps xmm0, xmm0
mov dword [ebp - 0x1c8], 0
push str.offscreen_esp_color
movups xmmword [ebp - 0x1d8], xmm0
mov dword [ebp - 0x1c4], 0
call fcn.10021350
lea ecx, [edi + 0x418]
mov byte [ebp - 4], 0x15
lea eax, [ebp - 0x1d8]
cmp ecx, eax
je 0x10055804
cmp dword [ebp - 0x1c4], 0x10
push dword [ebp - 0x1c8]
cmovae eax, dword [ebp - 0x1d8]
push eax
call fcn.10020af0
lea ecx, [edi + 0x3e0]
lea eax, [ebp - 0x1f0]
cmp ecx, eax
je 0x1005582e
cmp dword [ebp - 0x1dc], 0x10
push dword [ebp - 0x1e0]
cmovae eax, dword [ebp - 0x1f0]
push eax
call fcn.10020af0
mov byte [ebp - 4], 0x14
mov ecx, dword [ebp - 0x1c4]
mov dword [edi + 0x430], esi
mov dword [edi + 0x434], 0
cmp ecx, 0x10
jb 0x1005587c
mov edx, dword [ebp - 0x1d8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10055872
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005621f
push ecx
push edx
call fcn.1009cd75
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x1dc]
cmp ecx, 0x10
jb 0x100558bd
mov edx, dword [ebp - 0x1f0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100558b3
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005621f
push ecx
push edx
call fcn.1009cd75
add esp, 8
mov dword [edi + 0x3c0], 0
lea esi, [edi + 0x18]
mov dword [edi + 0x3ac], 0x14
lea ecx, [edi + 0x3a8]
mov dword [edi + 0x3b4], 0xaf
mov eax, dword [edi + 0x2c]
mov dword [edi + 0x3c4], eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x20], ecx
cmp eax, dword [esi + 8]
je 0x10055900
mov dword [eax], ecx
add dword [esi + 4], 4
jmp 0x1005590c
lea ecx, [ebp - 0x20]
push ecx
push eax
mov ecx, esi
call fcn.10021f10
push 0x100ad6f4
lea ecx, [ebp - 0x3e8]
call fcn.100723b0
mov dword [ebp - 4], 0x16
lea ecx, [ebp - 0x220]
push 0x10
xorps xmm0, xmm0
mov dword [ebp - 0x210], 0
push str.offscreen_radius
movups xmmword [ebp - 0x220], xmm0
mov dword [ebp - 0x20c], 0
call fcn.10021350
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x208]
push 0x10
xorps xmm0, xmm0
mov dword [ebp - 0x1f8], 0
push 0x100ae210
movups xmmword [ebp - 0x208], xmm0
mov dword [ebp - 0x1f4], 0
call fcn.10021350
lea ecx, [edi + 0x470]
mov byte [ebp - 4], 0x18
lea eax, [ebp - 0x220]
cmp ecx, eax
je 0x100559b5
cmp dword [ebp - 0x20c], 0x10
push dword [ebp - 0x210]
cmovae eax, dword [ebp - 0x220]
push eax
call fcn.10020af0
lea ecx, [edi + 0x4c0]
mov byte [edi + 0x4a1], 1
lea eax, [ebp - 0x208]
cmp ecx, eax
je 0x100559e6
cmp dword [ebp - 0x1f4], 0x10
push dword [ebp - 0x1f8]
cmovae eax, dword [ebp - 0x208]
push eax
call fcn.10020af0
xor eax, eax
mov ecx, 0xf
cmp byte [edi + 0x4a1], al
cmovne eax, ecx
lea ecx, [edi + 0x4d8]
mov dword [edi + 0x4f0], eax
add eax, 8
mov dword [edi + 0x448], eax
mov dword [edi + 0x44c], eax
lea eax, [ebp - 0x3e8]
mov dword [edi + 0x4ac], 0x41c80000
mov dword [edi + 0x4b0], 0x437a0000
mov dword [edi + 0x4a8], 0x43480000
mov dword [edi + 0x4bc], 0
mov dword [edi + 0x4b4], 0x3f800000
cmp ecx, eax
je 0x10055a67
cmp dword [ebp - 0x3d4], 8
push dword [ebp - 0x3d8]
cmovae eax, dword [ebp - 0x3e8]
push eax
call fcn.10072490
mov byte [ebp - 4], 0x17
mov ecx, dword [ebp - 0x1f4]
cmp ecx, 0x10
jb 0x10055aa5
mov edx, dword [ebp - 0x208]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10055a9b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005621f
push ecx
push edx
call fcn.1009cd75
add esp, 8
mov byte [ebp - 4], 0x16
mov ecx, dword [ebp - 0x20c]
cmp ecx, 0x10
jb 0x10055ae3
mov edx, dword [ebp - 0x220]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10055ad9
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005621f
push ecx
push edx
call fcn.1009cd75
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x3d4]
cmp ecx, 8
jb 0x10055b2a
mov edx, dword [ebp - 0x3e8]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x10055b20
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005621f
push ecx
push edx
call fcn.1009cd75
add esp, 8
mov dword [edi + 0x450], 0
lea ecx, [edi + 0x438]
mov dword [edi + 0x43c], 0x14
mov dword [edi + 0x444], 0xaf
mov eax, dword [edi + 0x2c]
mov dword [edi + 0x454], eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x20], ecx
cmp eax, dword [esi + 8]
je 0x10055b6a
mov dword [eax], ecx
add dword [esi + 4], 4
jmp 0x10055b76
lea ecx, [ebp - 0x20]
push ecx
push eax
mov ecx, esi
call fcn.10021f10
mov eax, dword [edi + 0x494]
lea ecx, [edi + 0x490]
mov dword [ebp - 0x20], 0x10026020
cmp eax, dword [ecx + 8]
je 0x10055b9a
mov dword [eax], 0x10026020
add dword [ecx + 4], 4
jmp 0x10055ba4
lea edx, [ebp - 0x20]
push edx
push eax
call fcn.10021f10
push 0x100ad6f4
lea ecx, [ebp - 0x400]
call fcn.100723b0
mov dword [ebp - 4], 0x19
lea ecx, [ebp - 0x250]
push 0xe
xorps xmm0, xmm0
mov dword [ebp - 0x240], 0
push 0x100ae224
movups xmmword [ebp - 0x250], xmm0
mov dword [ebp - 0x23c], 0
call fcn.10021350
mov byte [ebp - 4], 0x1a
lea ecx, [ebp - 0x238]
push 0xe
xorps xmm0, xmm0
mov dword [ebp - 0x228], 0
push str.offscreen_size
movups xmmword [ebp - 0x238], xmm0
mov dword [ebp - 0x224], 0
call fcn.10021350
lea ecx, [edi + 0x52c]
mov byte [ebp - 4], 0x1b
lea eax, [ebp - 0x250]
cmp ecx, eax
je 0x10055c4d
cmp dword [ebp - 0x23c], 0x10
push dword [ebp - 0x240]
cmovae eax, dword [ebp - 0x250]
push eax
call fcn.10020af0
lea ecx, [edi + 0x57c]
mov byte [edi + 0x55d], 1
lea eax, [ebp - 0x238]
cmp ecx, eax
je 0x10055c7e
cmp dword [ebp - 0x224], 0x10
push dword [ebp - 0x228]
cmovae eax, dword [ebp - 0x238]
push eax
call fcn.10020af0
xor eax, eax
mov ecx, 0xf
cmp byte [edi + 0x55d], al
cmovne eax, ecx
lea ecx, [edi + 0x594]
mov dword [edi + 0x5ac], eax
add eax, 8
mov dword [edi + 0x504], eax
mov dword [edi + 0x508], eax
lea eax, [ebp - 0x400]
mov dword [edi + 0x568], 0x40c00000
mov dword [edi + 0x56c], 0x42000000
mov dword [edi + 0x564], 0x41400000
mov dword [edi + 0x578], 0
mov dword [edi + 0x570], 0x3f800000
cmp ecx, eax
je 0x10055cff
cmp dword [ebp - 0x3ec], 8
push dword [ebp - 0x3f0]
cmovae eax, dword [ebp - 0x400]
push eax
call fcn.10072490
mov byte [ebp - 4], 0x1a
mov ecx, dword [ebp - 0x224]
cmp ecx, 0x10
jb 0x10055d3d
mov edx, dword [ebp - 0x238]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10055d33
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005621f
push ecx
push edx
call fcn.1009cd75
add esp, 8
mov byte [ebp - 4], 0x19
mov ecx, dword [ebp - 0x23c]
cmp ecx, 0x10
jb 0x10055d7b
mov edx, dword [ebp - 0x250]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10055d71
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005621f
push ecx
push edx
call fcn.1009cd75
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x3ec]
cmp ecx, 8
jb 0x10055dc2
mov edx, dword [ebp - 0x400]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x10055db8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005621f
push ecx
push edx
call fcn.1009cd75
add esp, 8
mov dword [edi + 0x50c], 0
lea ecx, [edi + 0x4f4]
mov dword [edi + 0x4f8], 0x14
mov dword [edi + 0x500], 0xaf
mov eax, dword [edi + 0x2c]
mov dword [edi + 0x510], eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x20], ecx
cmp eax, dword [esi + 8]
je 0x10055e02
mov dword [eax], ecx
add dword [esi + 4], 4
jmp 0x10055e0e
lea ecx, [ebp - 0x20]
push ecx
push eax
mov ecx, esi
call fcn.10021f10
mov eax, dword [edi + 0x550]
lea ecx, [edi + 0x54c]
mov dword [ebp - 0x20], 0x10026020
cmp eax, dword [ecx + 8]
je 0x10055e32
mov dword [eax], 0x10026020
add dword [ecx + 4], 4
jmp 0x10055e3c
lea edx, [ebp - 0x20]
push edx
push eax
call fcn.10021f10
push 5
xorps xmm0, xmm0
mov dword [ebp - 0x48], 0
push str.enemy
lea ecx, [ebp - 0x58]
mov dword [ebp - 0x44], 0
movups xmmword [ebp - 0x58], xmm0
call fcn.10021350
mov dword [ebp - 4], 0x1c
lea ecx, [ebp - 0x40]
push 8
xorps xmm0, xmm0
mov dword [ebp - 0x30], 0
push str.friendly
movups xmmword [ebp - 0x40], xmm0
mov dword [ebp - 0x2c], 0
call fcn.10021350
lea ecx, [ebp - 0x58]
mov dword [ebp - 4], 0x1d
push ecx
lea eax, [ebp - 0x28]
push eax
push ecx
lea ecx, [ebp - 0x7c]
call fcn.10072100
mov byte [ebp - 4], 0x1e
lea ecx, [ebp - 0x280]
push 4
xorps xmm0, xmm0
mov dword [ebp - 0x270], 0
push str.name
movups xmmword [ebp - 0x280], xmm0
mov dword [ebp - 0x26c], 0
call fcn.10021350
mov byte [ebp - 4], 0x1f
lea ecx, [ebp - 0x268]
push 4
xorps xmm0, xmm0
mov dword [ebp - 0x258], 0
push str.name
movups xmmword [ebp - 0x268], xmm0
mov dword [ebp - 0x254], 0
call fcn.10021350
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x60], 0
lea ecx, [edi + 0x5e8]
mov byte [ebp - 4], 0x21
lea eax, [ebp - 0x280]
cmp ecx, eax
je 0x10055f4e
cmp dword [ebp - 0x26c], 0x10
push dword [ebp - 0x270]
cmovae eax, dword [ebp - 0x280]
push eax
call fcn.10020af0
lea ecx, [edi + 0x620]
mov byte [edi + 0x619], 1
lea eax, [ebp - 0x268]
cmp ecx, eax
je 0x10055f7f
cmp dword [ebp - 0x254], 0x10
push dword [ebp - 0x258]
cmovae eax, dword [ebp - 0x268]
push eax
call fcn.10020af0
xor eax, eax
mov ecx, 0xf
cmp byte [edi + 0x619], al
cmovne eax, ecx
mov ecx, dword [ebp - 0x78]
mov dword [edi + 0x654], eax
add eax, 0x14
mov dword [edi + 0x5c0], eax
mov dword [edi + 0x5c4], eax
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x1c], ecx
cmp eax, ecx
je 0x10055ff6
lea ecx, [edi + 0x638]
mov esi, eax
nop dword [eax]
mov eax, dword [edi + 0x63c]
push esi
cmp eax, dword [edi + 0x640]
je 0x10055fdf
mov ecx, eax
call fcn.100271f0
add dword [edi + 0x63c], 0x18
jmp 0x10055fe5
push eax
call fcn.10048220
add esi, 0x18
lea ecx, [edi + 0x638]
cmp esi, dword [ebp - 0x1c]
jne 0x10055fc0
lea esi, [edi + 0x18]
mov byte [ebp - 4], 0x1f
mov ecx, dword [ebp - 0x254]
cmp ecx, 0x10
jb 0x10056030
mov edx, dword [ebp - 0x268]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10056026
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10056060
push ecx
push edx
call fcn.1009cd75
add esp, 8
mov byte [ebp - 4], 0x1e
mov ecx, dword [ebp - 0x26c]
cmp ecx, 0x10
jb 0x10056070
mov edx, dword [ebp - 0x280]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10056066
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x10056066
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.1009cd75
add esp, 8
lea ecx, [ebp - 0x7c]
call fcn.10047b00
push fcn.100208c0
push 2
push 0x18
lea eax, [ebp - 0x58]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.1009c941
mov dword [edi + 0x5c8], 0
lea ecx, [edi + 0x5b0]
mov dword [edi + 0x5b4], 0x14
mov dword [edi + 0x5bc], 0xaf
mov eax, dword [edi + 0x2c]
mov dword [edi + 0x5cc], eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x20], ecx
cmp eax, dword [esi + 8]
je 0x100560d1
mov dword [eax], ecx
add dword [esi + 4], 4
jmp 0x100560dd
lea ecx, [ebp - 0x20]
push ecx
push eax
mov ecx, esi
call fcn.10021f10
mov esi, dword [0x100ac6fc]
lea ecx, [ebp - 0x2b0]
push 0xa
xorps xmm0, xmm0
mov dword [ebp - 0x2a0], 0
push 0x100ae25c
movups xmmword [ebp - 0x2b0], xmm0
mov dword [ebp - 0x29c], 0
call fcn.10021350
mov dword [ebp - 4], 0x22
lea ecx, [ebp - 0x298]
push 0xa
xorps xmm0, xmm0
mov dword [ebp - 0x288], 0
push str.name_color
movups xmmword [ebp - 0x298], xmm0
mov dword [ebp - 0x284], 0
call fcn.10021350
lea ecx, [edi + 0x6c8]
mov byte [ebp - 4], 0x23
lea eax, [ebp - 0x298]
cmp ecx, eax
je 0x10056178
cmp dword [ebp - 0x284], 0x10
push dword [ebp - 0x288]
cmovae eax, dword [ebp - 0x298]
push eax
call fcn.10020af0
lea ecx, [edi + 0x690]
lea eax, [ebp - 0x2b0]
cmp ecx, eax
je 0x100561a2
cmp dword [ebp - 0x29c], 0x10
push dword [ebp - 0x2a0]
cmovae eax, dword [ebp - 0x2b0]
push eax
call fcn.10020af0
mov byte [ebp - 4], 0x22
mov ecx, dword [ebp - 0x284]
mov dword [edi + 0x6e0], esi
mov dword [edi + 0x6e4], 0
cmp ecx, 0x10
jb 0x100561ec
mov edx, dword [ebp - 0x298]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100561e2
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005621f
push ecx
push edx
call fcn.1009cd75
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x29c]
cmp ecx, 0x10
jb 0x1005622f
mov edx, dword [ebp - 0x2b0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10056225
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x10056225
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.1009cd75
add esp, 8
mov dword [edi + 0x670], 0
lea esi, [edi + 0x18]
mov dword [edi + 0x65c], 0x14
lea ecx, [edi + 0x658]
mov dword [edi + 0x664], 0xaf
mov eax, dword [edi + 0x2c]
mov dword [edi + 0x674], eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x20], ecx
cmp eax, dword [esi + 8]
je 0x10056272
mov dword [eax], ecx
add dword [esi + 4], 4
jmp 0x1005627e
lea ecx, [ebp - 0x20]
push ecx
push eax
mov ecx, esi
call fcn.10021f10
push 5
xorps xmm0, xmm0
mov dword [ebp - 0x48], 0
push str.enemy
lea ecx, [ebp - 0x58]
mov dword [ebp - 0x44], 0
movups xmmword [ebp - 0x58], xmm0
call fcn.10021350
mov dword [ebp - 4], 0x24
lea ecx, [ebp - 0x40]
push 8
xorps xmm0, xmm0
mov dword [ebp - 0x30], 0
push str.friendly
movups xmmword [ebp - 0x40], xmm0
mov dword [ebp - 0x2c], 0
call fcn.10021350
lea ecx, [ebp - 0x58]
mov dword [ebp - 4], 0x25
push ecx
lea eax, [ebp - 0x28]
push eax
push ecx
lea ecx, [ebp - 0x7c]
call fcn.10072100
mov byte [ebp - 4], 0x26
lea ecx, [ebp - 0x2e0]
push 6
xorps xmm0, xmm0
mov dword [ebp - 0x2d0], 0
push str.health
movups xmmword [ebp - 0x2e0], xmm0
mov dword [ebp - 0x2cc], 0
call fcn.10021350
mov byte [ebp - 4], 0x27
lea ecx, [ebp - 0x2c8]
push 6
xorps xmm0, xmm0
mov dword [ebp - 0x2b8], 0
push str.health
movups xmmword [ebp - 0x2c8], xmm0
mov dword [ebp - 0x2b4], 0
call fcn.10021350
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x60], 0
lea ecx, [edi + 0x720]
mov byte [ebp - 4], 0x29
lea eax, [ebp - 0x2e0]
cmp ecx, eax
je 0x10056390
cmp dword [ebp - 0x2cc], 0x10
push dword [ebp - 0x2d0]
cmovae eax, dword [ebp - 0x2e0]
push eax
call fcn.10020af0
lea ecx, [edi + 0x758]
mov byte [edi + 0x751], 1
lea eax, [ebp - 0x2c8]
cmp ecx, eax
je 0x100563c1
cmp dword [ebp - 0x2b4], 0x10
push dword [ebp - 0x2b8]
cmovae eax, dword [ebp - 0x2c8]
push eax
call fcn.10020af0
xor eax, eax
mov ecx, 0xf
cmp byte [edi + 0x751], al
cmovne eax, ecx
mov ecx, dword [ebp - 0x78]
mov dword [edi + 0x78c], eax
add eax, 0x14
mov dword [edi + 0x6f8], eax
mov dword [edi + 0x6fc], eax
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x1c], ecx
cmp eax, ecx
je 0x10056436
lea ecx, [edi + 0x770]
mov esi, eax
nop dword [eax + eax]
mov eax, dword [edi + 0x774]
push esi
cmp eax, dword [edi + 0x778]
je 0x1005641f
mov ecx, eax
call fcn.100271f0
add dword [edi + 0x774], 0x18
jmp 0x10056425
push eax
call fcn.10048220
add esi, 0x18
lea ecx, [edi + 0x770]
cmp esi, dword [ebp - 0x1c]
jne 0x10056400
lea esi, [edi + 0x18]
mov byte [ebp - 4], 0x27
mov ecx, dword [ebp - 0x2b4]
cmp ecx, 0x10
jb 0x10056470
mov edx, dword [ebp - 0x2c8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10056466
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100564a0
push ecx
push edx
call fcn.1009cd75
add esp, 8
mov byte [ebp - 4], 0x26
mov ecx, dword [ebp - 0x2cc]
cmp ecx, 0x10
jb 0x100564b0
mov edx, dword [ebp - 0x2e0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100564a6
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100564a6
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.1009cd75
add esp, 8
lea ecx, [ebp - 0x7c]
call fcn.10047b00
push fcn.100208c0
push 2
push 0x18
lea eax, [ebp - 0x58]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.1009c941
mov dword [edi + 0x700], 0
lea ecx, [edi + 0x6e8]
mov dword [edi + 0x6ec], 0x14
mov dword [edi + 0x6f4], 0xaf
mov eax, dword [edi + 0x2c]
mov dword [edi + 0x704], eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x20], ecx
cmp eax, dword [esi + 8]
je 0x10056511
mov dword [eax], ecx
add dword [esi + 4], 4
jmp 0x1005651d
lea ecx, [ebp - 0x20]
push ecx
push eax
mov ecx, esi
call fcn.10021f10
push 5
xorps xmm0, xmm0
mov dword [ebp - 0x4c8], 0
push str.money
lea ecx, [ebp - 0x4d8]
mov dword [ebp - 0x4c4], 0
movups xmmword [ebp - 0x4d8], xmm0
call fcn.10021350
mov dword [ebp - 4], 0x2a
lea ecx, [ebp - 0x4c0]
push 5
xorps xmm0, xmm0
mov dword [ebp - 0x4b0], 0
push str.armor
movups xmmword [ebp - 0x4c0], xmm0
mov dword [ebp - 0x4ac], 0
call fcn.10021350
mov byte [ebp - 4], 0x2b
lea ecx, [ebp - 0x4a8]
push 6
xorps xmm0, xmm0
mov dword [ebp - 0x498], 0
push str.scoped
movups xmmword [ebp - 0x4a8], xmm0
mov dword [ebp - 0x494], 0
call fcn.10021350
mov byte [ebp - 4], 0x2c
lea ecx, [ebp - 0x490]
push 7
xorps xmm0, xmm0
mov dword [ebp - 0x480], 0
push str.flashed
movups xmmword [ebp - 0x490], xmm0
mov dword [ebp - 0x47c], 0
call fcn.10021350
mov byte [ebp - 4], 0x2d
lea ecx, [ebp - 0x478]
push 9
xorps xmm0, xmm0
mov dword [ebp - 0x468], 0
push str.reloading
movups xmmword [ebp - 0x478], xmm0
mov dword [ebp - 0x464], 0
call fcn.10021350
mov byte [ebp - 4], 0x2e
lea ecx, [ebp - 0x460]
push 4
xorps xmm0, xmm0
mov dword [ebp - 0x450], 0
push str.bomb
movups xmmword [ebp - 0x460], xmm0
mov dword [ebp - 0x44c], 0
call fcn.10021350
mov byte [ebp - 4], 0x2f
lea ecx, [ebp - 0x448]
push 4
xorps xmm0, xmm0
mov dword [ebp - 0x438], 0
push str.zeus
movups xmmword [ebp - 0x448], xmm0
mov dword [ebp - 0x434], 0
call fcn.10021350
mov byte [ebp - 4], 0x30
lea ecx, [ebp - 0x430]
push 2
xorps xmm0, xmm0
mov dword [ebp - 0x420], 0
push 0x100ae2b4
movups xmmword [ebp - 0x430], xmm0
mov dword [ebp - 0x41c], 0
call fcn.10021350
mov byte [ebp - 4], 0x31
xorps xmm0, xmm0
push 4
push str.ping
lea ecx, [ebp - 0x418]
mov dword [ebp - 0x408], 0
movups xmmword [ebp - 0x418], xmm0
mov dword [ebp - 0x404], 0
call fcn.10021350
lea ecx, [ebp - 0x4d8]
mov dword [ebp - 4], 0x32
push ecx
lea eax, [ebp - 0x400]
push eax
push ecx
lea ecx, [ebp - 0x7c]
call fcn.10072100
mov byte [ebp - 4], 0x33
lea ecx, [ebp - 0x310]
push 0xb
xorps xmm0, xmm0
mov dword [ebp - 0x300], 0
push str.flags_enemy
movups xmmword [ebp - 0x310], xmm0
mov dword [ebp - 0x2fc], 0
call fcn.10021350
mov byte [ebp - 4], 0x34
lea ecx, [ebp - 0x2f8]
push 0xb
xorps xmm0, xmm0
mov dword [ebp - 0x2e8], 0
push 0x100ae2cc
movups xmmword [ebp - 0x2f8], xmm0
mov dword [ebp - 0x2e4], 0
call fcn.10021350
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x60], 0
lea ecx, [edi + 0x7c8]
mov byte [ebp - 4], 0x36
lea eax, [ebp - 0x310]
cmp ecx, eax
je 0x100567b9
cmp dword [ebp - 0x2fc], 0x10
push dword [ebp - 0x300]
cmovae eax, dword [ebp - 0x310]
push eax
call fcn.10020af0
lea ecx, [edi + 0x800]
mov byte [edi + 0x7f9], 1
lea eax, [ebp - 0x2f8]
cmp ecx, eax
je 0x100567ea
cmp dword [ebp - 0x2e4], 0x10
push dword [ebp - 0x2e8]
cmovae eax, dword [ebp - 0x2f8]
push eax
call fcn.10020af0
xor eax, eax
mov ecx, 0xf
cmp byte [edi + 0x7f9], al
cmovne eax, ecx
mov ecx, dword [ebp - 0x78]
mov dword [edi + 0x834], eax
add eax, 0x14
mov dword [edi + 0x7a0], eax
mov dword [edi + 0x7a4], eax
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x1c], ecx
cmp eax, ecx
je 0x10056866
lea ecx, [edi + 0x818]
mov esi, eax
nop dword [eax]
nop dword [eax + eax]
mov eax, dword [edi + 0x81c]
push esi
cmp eax, dword [edi + 0x820]
je 0x1005684f
mov ecx, eax
call fcn.100271f0
add dword [edi + 0x81c], 0x18
jmp 0x10056855
push eax
call fcn.10048220
add esi, 0x18
lea ecx, [edi + 0x818]
cmp esi, dword [ebp - 0x1c]
jne 0x10056830
lea esi, [edi + 0x18]
mov byte [ebp - 4], 0x34
mov ecx, dword [ebp - 0x2e4]
cmp ecx, 0x10
jb 0x100568a0
mov edx, dword [ebp - 0x2f8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10056896
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100568d0
push ecx
push edx
call fcn.1009cd75
add esp, 8
mov byte [ebp - 4], 0x33
mov ecx, dword [ebp - 0x2fc]
cmp ecx, 0x10
jb 0x100568e0
mov edx, dword [ebp - 0x310]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100568d6
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100568d6
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.1009cd75
add esp, 8
lea ecx, [ebp - 0x7c]
call fcn.10047b00
push fcn.100208c0
push 9
push 0x18
lea eax, [ebp - 0x4d8]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.1009c941
mov dword [edi + 0x7a8], 0
lea ecx, [edi + 0x790]
mov dword [edi + 0x794], 0x14
mov dword [edi + 0x79c], 0xaf
mov eax, dword [edi + 0x2c]
mov dword [edi + 0x7ac], eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x20], ecx
cmp eax, dword [esi + 8]
je 0x10056944
mov dword [eax], ecx
add dword [esi + 4], 4
jmp 0x10056950
lea ecx, [ebp - 0x20]
push ecx
push eax
mov ecx, esi
call fcn.10021f10
push 5
xorps xmm0, xmm0
mov dword [ebp - 0x480], 0
push str.money
lea ecx, [ebp - 0x490]
mov dword [ebp - 0x47c], 0
movups xmmword [ebp - 0x490], xmm0
call fcn.10021350
mov dword [ebp - 4], 0x37
lea ecx, [ebp - 0x478]
push 5
xorps xmm0, xmm0
mov dword [ebp - 0x468], 0
push str.armor
movups xmmword [ebp - 0x478], xmm0
mov dword [ebp - 0x464], 0
call fcn.10021350
mov byte [ebp - 4], 0x38
lea ecx, [ebp - 0x460]
push 6
xorps xmm0, xmm0
mov dword [ebp - 0x450], 0
push str.scoped
movups xmmword [ebp - 0x460], xmm0
mov dword [ebp - 0x44c], 0
call fcn.10021350
mov byte [ebp - 4], 0x39
lea ecx, [ebp - 0x448]
push 7
xorps xmm0, xmm0
mov dword [ebp - 0x438], 0
push str.flashed
movups xmmword [ebp - 0x448], xmm0
mov dword [ebp - 0x434], 0
call fcn.10021350
mov byte [ebp - 4], 0x3a
lea ecx, [ebp - 0x430]
push 9
xorps xmm0, xmm0
mov dword [ebp - 0x420], 0
push str.reloading
movups xmmword [ebp - 0x430], xmm0
mov dword [ebp - 0x41c], 0
call fcn.10021350
mov byte [ebp - 4], 0x3b
lea ecx, [ebp - 0x418]
push 4
xorps xmm0, xmm0
mov dword [ebp - 0x408], 0
push str.bomb
movups xmmword [ebp - 0x418], xmm0
mov dword [ebp - 0x404], 0
call fcn.10021350
lea ecx, [ebp - 0x490]
mov dword [ebp - 4], 0x3c
push ecx
lea eax, [ebp - 0x400]
push eax
push ecx
lea ecx, [ebp - 0x7c]
call fcn.10072100
mov byte [ebp - 4], 0x3d
lea ecx, [ebp - 0x340]
push 0xe
xorps xmm0, xmm0
mov dword [ebp - 0x330], 0
push 0x100ae2d8
movups xmmword [ebp - 0x340], xmm0
mov dword [ebp - 0x32c], 0
call fcn.10021350
xorps xmm0, xmm0
mov byte [ebp - 4], 0x3e
movups xmmword [ebp - 0x328], xmm0
push 0xe
push str.flags_friendly
lea ecx, [ebp - 0x328]
mov dword [ebp - 0x318], 0
mov dword [ebp - 0x314], 0
call fcn.10021350
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x60], 0
lea ecx, [edi + 0x870]
mov byte [ebp - 4], 0x40
lea eax, [ebp - 0x340]
cmp ecx, eax
je 0x10056b50
cmp dword [ebp - 0x32c], 0x10
push dword [ebp - 0x330]
cmovae eax, dword [ebp - 0x340]
push eax
call fcn.10020af0
lea ecx, [edi + 0x8a8]
mov byte [edi + 0x8a1], 1
lea eax, [ebp - 0x328]
cmp ecx, eax
je 0x10056b81
cmp dword [ebp - 0x314], 0x10
push dword [ebp - 0x318]
cmovae eax, dword [ebp - 0x328]
push eax
call fcn.10020af0
xor eax, eax
mov ecx, 0xf
cmp byte [edi + 0x8a1], al
cmovne eax, ecx
mov ecx, dword [ebp - 0x78]
mov dword [edi + 0x8dc], eax
add eax, 0x14
mov dword [edi + 0x848], eax
mov dword [edi + 0x84c], eax
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x1c], ecx
cmp eax, ecx
je 0x10056bf6
lea ecx, [edi + 0x8c0]
mov esi, eax
nop dword [eax + eax]
mov eax, dword [edi + 0x8c4]
push esi
cmp eax, dword [edi + 0x8c8]
je 0x10056bdf
mov ecx, eax
call fcn.100271f0
add dword [edi + 0x8c4], 0x18
jmp 0x10056be5
push eax
call fcn.10048220
add esi, 0x18
lea ecx, [edi + 0x8c0]
cmp esi, dword [ebp - 0x1c]
jne 0x10056bc0
lea esi, [edi + 0x18]
mov byte [ebp - 4], 0x3e
mov ecx, dword [ebp - 0x314]
cmp ecx, 0x10
jb 0x10056c30
mov edx, dword [ebp - 0x328]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10056c26
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10056c60
push ecx
push edx
call fcn.1009cd75
add esp, 8
mov byte [ebp - 4], 0x3d
mov ecx, dword [ebp - 0x32c]
cmp ecx, 0x10
jb 0x10056c70
mov edx, dword [ebp - 0x340]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10056c66
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x10056c66
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.1009cd75
add esp, 8
lea ecx, [ebp - 0x7c]
call fcn.10047b00
push fcn.100208c0
push 6
push 0x18
lea eax, [ebp - 0x490]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.1009c941
mov dword [edi + 0x850], 0
lea ecx, [edi + 0x838]
mov dword [edi + 0x83c], 0x14
mov dword [edi + 0x844], 0xaf
mov eax, dword [edi + 0x2c]
mov dword [edi + 0x854], eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x20], ecx
cmp eax, dword [esi + 8]
je 0x10056cd4
mov dword [eax], ecx
add dword [esi + 4], 4
jmp 0x10056ce0
lea ecx, [ebp - 0x20]
push ecx
push eax
mov ecx, esi
call fcn.10021f10
push 5
xorps xmm0, xmm0
mov dword [ebp - 0x48], 0
push str.enemy
lea ecx, [ebp - 0x58]
mov dword [ebp - 0x44], 0
movups xmmword [ebp - 0x58], xmm0
call fcn.10021350
mov dword [ebp - 4], 0x41
lea ecx, [ebp - 0x40]
push 8
xorps xmm0, xmm0
mov dword [ebp - 0x30], 0
push str.friendly
movups xmmword [ebp - 0x40], xmm0
mov dword [ebp - 0x2c], 0
call fcn.10021350
lea ecx, [ebp - 0x58]
mov dword [ebp - 4], 0x42
push ecx
lea eax, [ebp - 0x28]
push eax
push ecx
lea ecx, [ebp - 0x7c]
call fcn.10072100
mov byte [ebp - 4], 0x43
lea ecx, [ebp - 0x3a0]
push 6
xorps xmm0, xmm0
mov dword [ebp - 0x390], 0
push str.weapon
movups xmmword [ebp - 0x3a0], xmm0
mov dword [ebp - 0x38c], 0
call fcn.10021350
mov byte [ebp - 4], 0x44
lea ecx, [ebp - 0x388]
push 6
xorps xmm0, xmm0
mov dword [ebp - 0x378], 0
push str.weapon
movups xmmword [ebp - 0x388], xmm0
mov dword [ebp - 0x374], 0
call fcn.10021350
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x60], 0
lea ecx, [edi + 0x918]
mov byte [ebp - 4], 0x46
lea eax, [ebp - 0x3a0]
cmp ecx, eax
je 0x10056df2
cmp dword [ebp - 0x38c], 0x10
push dword [ebp - 0x390]
cmovae eax, dword [ebp - 0x3a0]
push eax
call fcn.10020af0
lea ecx, [edi + 0x950]
mov byte [edi + 0x949], 1
lea eax, [ebp - 0x388]
cmp ecx, eax
je 0x10056e23
cmp dword [ebp - 0x374], 0x10
push dword [ebp - 0x378]
cmovae eax, dword [ebp - 0x388]
push eax
call fcn.10020af0
xor eax, eax
mov ecx, 0xf
cmp byte [edi + 0x949], al
cmovne eax, ecx
mov ecx, dword [ebp - 0x78]
mov dword [edi + 0x984], eax
add eax, 0x14
mov dword [edi + 0x8f0], eax
mov dword [edi + 0x8f4], eax
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x1c], ecx
cmp eax, ecx
je 0x10056e96
lea ecx, [edi + 0x968]
mov esi, eax
nop dword [eax]
mov eax, dword [edi + 0x96c]
push esi
cmp eax, dword [edi + 0x970]
je 0x10056e7f
mov ecx, eax
call fcn.100271f0
add dword [edi + 0x96c], 0x18
jmp 0x10056e85
push eax
call fcn.10048220
add esi, 0x18
lea ecx, [edi + 0x968]
cmp esi, dword [ebp - 0x1c]
jne 0x10056e60
lea esi, [edi + 0x18]
lea ecx, [ebp - 0x388]
call fcn.100208c0
lea ecx, [ebp - 0x3a0]
call fcn.100208c0
lea ecx, [ebp - 0x7c]
call fcn.10047b00
push fcn.100208c0
push 2
push 0x18
lea eax, [ebp - 0x58]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.1009c941
mov dword [edi + 0x8f8], 0
lea eax, [edi + 0x8e0]
mov dword [edi + 0x8e4], 0x14
mov ecx, esi
mov dword [ebp - 0x20], eax
mov dword [edi + 0x8ec], 0xaf
mov eax, dword [edi + 0x2c]
mov dword [edi + 0x8fc], eax
lea eax, [ebp - 0x20]
push eax
call fcn.100720d0
push str.text
lea ecx, [ebp - 0xb8]
call fcn.10020910
push str.icon
lea ecx, [ebp - 0xa0]
mov dword [ebp - 4], 0x47
call fcn.10020910
lea ecx, [ebp - 0xb8]
mov dword [ebp - 4], 0x48
push ecx
lea eax, [ebp - 0x88]
push eax
push ecx
lea ecx, [ebp - 0x7c]
call fcn.10072100
push str.weapon_mode
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0x49
call fcn.10020910
push 0x100ab762
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x4a
call fcn.10020910
lea eax, [ebp - 0x70]
mov byte [ebp - 4], 0x4b
push eax
lea ecx, [edi + 0x9c0]
call fcn.10040320
mov edx, dword [ebp - 0x78]
lea ecx, [edi + 0xa10]
mov eax, dword [ebp - 0x7c]
mov byte [edi + 0x9f1], 0
mov dword [edi + 0xa24], 0
mov dword [edi + 0x998], 0x14
mov dword [edi + 0x99c], 0x14
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x1c], ecx
cmp eax, edx
je 0x10056fda
mov esi, eax
mov edi, ecx
push esi
mov ecx, edi
call fcn.100477b0
add esi, 0x18
cmp esi, dword [ebp - 0x18]
jne 0x10056fc1
mov edi, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x1c]
lea esi, [edi + 0x18]
call fcn.10027120
test eax, eax
je 0x10056fed
mov dword [edi + 0xa20], 0
lea ecx, [ebp - 0x40]
call fcn.100208c0
lea ecx, [ebp - 0x70]
call fcn.100208c0
lea ecx, [ebp - 0x7c]
call fcn.10047b00
push fcn.100208c0
push 2
push 0x18
lea eax, [ebp - 0xb8]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.1009c941
mov dword [edi + 0x9a0], 0
lea eax, [edi + 0x988]
mov dword [edi + 0x98c], 0x14
mov ecx, esi
mov dword [ebp - 0x18], eax
mov dword [edi + 0x994], 0xaf
mov eax, dword [edi + 0x2c]
mov dword [edi + 0x9a4], eax
lea eax, [ebp - 0x18]
push eax
call fcn.100720d0
push str.ammo
lea ecx, [ebp - 0x88]
lea esi, [edi + 0xa28]
call fcn.10020910
push str.ammo
lea ecx, [ebp - 0x70]
mov dword [ebp - 4], 0x4c
call fcn.10020910
lea eax, [ebp - 0x88]
mov byte [ebp - 4], 0x4d
push eax
lea ecx, [edi + 0xa60]
call fcn.10040320
lea eax, [ebp - 0x70]
mov byte [edi + 0xa91], 1
push eax
lea ecx, [edi + 0xa98]
call fcn.10040320
lea ecx, [ebp - 0x70]
mov byte [edi + 0xa94], 0
call fcn.100208c0
lea ecx, [ebp - 0x88]
mov dword [ebp - 4], 0xffffffff
call fcn.100208c0
mov dword [esi + 0x18], 0
lea ecx, [edi + 0x18]
mov dword [esi + 4], 0x14
mov dword [esi + 0xc], 0xaf
mov eax, dword [edi + 0x2c]
mov dword [esi + 0x1c], eax
lea eax, [ebp - 0x18]
push eax
mov dword [ebp - 0x18], esi
call fcn.100720d0
mov esi, dword [0x100ac720]
lea ecx, [ebp - 0x88]
push str.ammo_color
add edi, 0xab0
call fcn.10020910
push str.color
lea ecx, [ebp - 0x70]
mov dword [ebp - 4], 0x4e
call fcn.10020910
mov ecx, dword [ebp - 0x24]
lea eax, [ebp - 0x70]
push eax
add ecx, 0xb20
mov byte [ebp - 4], 0x4f
call fcn.10040320
mov ecx, dword [ebp - 0x24]
lea eax, [ebp - 0x88]
push eax
lea ecx, [ecx + 0xae8]
call fcn.10040320
mov eax, dword [ebp - 0x24]
lea ecx, [ebp - 0x70]
mov dword [eax + 0xb38], esi
mov dword [eax + 0xb3c], 0
call fcn.100208c0
lea ecx, [ebp - 0x88]
mov dword [ebp - 4], 0xffffffff
call fcn.100208c0
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x28]
mov dword [edi + 0x18], 0
mov dword [edi + 4], 0x14
mov dword [edi + 0xc], 0xaf
mov eax, dword [eax + 0x2c]
mov dword [edi + 0x1c], eax
lea eax, [ebp - 0x18]
push eax
mov dword [ebp - 0x18], edi
call fcn.100720d0
mov edi, dword [ebp - 0x24]
lea ecx, [ebp - 0x88]
push 0x100ae36c
lea esi, [edi + 0xb40]
call fcn.10020910
push str.lby_update
lea ecx, [ebp - 0x70]
mov dword [ebp - 4], 0x50
call fcn.10020910
lea eax, [ebp - 0x88]
mov byte [ebp - 4], 0x51
push eax
lea ecx, [edi + 0xb78]
call fcn.10040320
lea eax, [ebp - 0x70]
mov byte [edi + 0xba9], 1
push eax
lea ecx, [edi + 0xbb0]
call fcn.10040320
lea ecx, [ebp - 0x70]
mov byte [edi + 0xbac], 0
call fcn.100208c0
lea ecx, [ebp - 0x88]
mov dword [ebp - 4], 0xffffffff
call fcn.100208c0
mov dword [esi + 0x18], 0
lea ecx, [edi + 0x18]
mov dword [esi + 4], 0x14
mov dword [esi + 0xc], 0xaf
mov eax, dword [edi + 0x2c]
mov dword [esi + 0x1c], eax
lea eax, [ebp - 0x18]
push eax
mov dword [ebp - 0x18], esi
call fcn.100720d0
mov esi, dword [0x100ac714]
lea ecx, [ebp - 0x88]
push str.lby_update_color
add edi, 0xbc8
call fcn.10020910
push str.color
lea ecx, [ebp - 0x70]
mov dword [ebp - 4], 0x52
call fcn.10020910
mov ecx, dword [ebp - 0x24]
lea eax, [ebp - 0x70]
push eax
mov byte [ebp - 4], 0x53
lea ecx, [ecx + 0xc38]
call fcn.10040320
mov ecx, dword [ebp - 0x24]
lea eax, [ebp - 0x88]
push eax
lea ecx, [ecx + 0xc00]
call fcn.10040320
mov eax, dword [ebp - 0x24]
mov dword [eax + 0xc50], esi
lea ecx, [ebp - 0x70]
mov dword [eax + 0xc54], 0
call fcn.100208c0
lea ecx, [ebp - 0x88]
mov dword [ebp - 4], 0xffffffff
call fcn.100208c0
mov eax, dword [ebp - 0x24]
mov esi, dword [ebp - 0x28]
mov ecx, esi
mov dword [edi + 0x18], 0
mov dword [edi + 4], 0x14
mov dword [edi + 0xc], 0xaf
mov eax, dword [eax + 0x2c]
mov dword [edi + 0x1c], eax
lea eax, [ebp - 0x18]
push eax
mov dword [ebp - 0x18], edi
call fcn.100720d0
mov edi, dword [ebp - 0x24]
lea ecx, [ebp - 0x3d0]
push str.enemy
call fcn.10020910
push str.friendly
lea ecx, [ebp - 0x3b8]
mov dword [ebp - 4], 0x54
call fcn.10020910
lea ecx, [ebp - 0x3d0]
mov dword [ebp - 4], 0x55
push ecx
lea eax, [ebp - 0x3a0]
push eax
push ecx
lea ecx, [ebp - 0x64]
call fcn.10072100
push str.skeleton
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x56
call fcn.10020910
push str.skeleton
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 0x57
call fcn.10020910
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x78], 0
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0x59
push eax
lea ecx, [edi + 0xc90]
call fcn.10040320
lea eax, [ebp - 0xa0]
mov byte [edi + 0xcc1], 1
push eax
lea ecx, [edi + 0xcc8]
call fcn.10040320
xor eax, eax
mov ecx, 0xf
cmp byte [edi + 0xcc1], al
cmovne eax, ecx
mov ecx, dword [ebp - 0x60]
mov dword [edi + 0xcfc], eax
add eax, 0x14
mov dword [edi + 0xc68], eax
mov dword [edi + 0xc6c], eax
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x18], eax
cmp eax, ecx
je 0x10057416
mov esi, dword [ebp - 0x18]
lea eax, [edi + 0xce0]
mov edi, eax
nop dword [eax + eax]
push esi
mov ecx, edi
call fcn.100477b0
add esi, 0x18
cmp esi, dword [ebp - 0x28]
jne 0x10057400
mov edi, dword [ebp - 0x24]
lea esi, [edi + 0x18]
lea ecx, [ebp - 0x80]
call fcn.1001fec0
lea ecx, [ebp - 0xa0]
call fcn.100208c0
lea ecx, [ebp - 0x40]
call fcn.100208c0
lea ecx, [ebp - 0x64]
call fcn.10047b00
push fcn.100208c0
push 2
push 0x18
lea eax, [ebp - 0x3d0]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.1009c941
mov dword [edi + 0xc70], 1
lea eax, [edi + 0xc58]
mov dword [edi + 0xc5c], 0xff
mov ecx, esi
mov dword [ebp - 0x18], eax
mov dword [edi + 0xc64], 0xaf
mov eax, dword [edi + 0x2c]
mov dword [edi + 0xc74], eax
lea eax, [ebp - 0x18]
push eax
call fcn.100720d0
push str.skeleton_enemy
lea ecx, [ebp - 0xa0]
lea esi, [edi + 0xd88]
call fcn.10020910
push str.enemy_color
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], 0x5a
call fcn.10020910
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0x5b
push eax
lea ecx, [edi + 0xdf8]
mov dword [ebp - 0x1c], 0xffffffff
call fcn.10040320
lea eax, [ebp - 0xa0]
push eax
lea ecx, [edi + 0xdc0]
call fcn.10040320
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x40]
mov dword [edi + 0xe10], eax
mov dword [edi + 0xe14], 0
call fcn.100208c0
lea ecx, [ebp - 0xa0]
mov dword [ebp - 4], 0xffffffff
call fcn.100208c0
mov dword [esi + 0x18], 1
lea ecx, [edi + 0x18]
mov dword [esi + 4], 0xff
mov dword [esi + 0xc], 0xaf
mov eax, dword [edi + 0x2c]
mov dword [esi + 0x1c], eax
lea eax, [ebp - 0x18]
push eax
mov dword [ebp - 0x18], esi
call fcn.100720d0
push str.draw_first_record
lea ecx, [ebp - 0xa0]
lea esi, [edi + 0xd00]
call fcn.10020910
push str.draw_previous_record
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], 0x5c
call fcn.10020910
lea eax, [ebp - 0xa0]
mov byte [ebp - 4], 0x5d
push eax
lea ecx, [edi + 0xd38]
call fcn.10040320
mov byte [edi + 0xd69], 1
lea eax, [ebp - 0x40]
push eax
lea ecx, [edi + 0xd70]
call fcn.10040320
lea ecx, [ebp - 0x40]
mov byte [edi + 0xd6c], 0
call fcn.100208c0
lea ecx, [ebp - 0xa0]
mov dword [ebp - 4], 0xffffffff
call fcn.100208c0
mov dword [esi + 0x18], 1
lea ecx, [edi + 0x18]
mov dword [esi + 4], 0xff
mov dword [esi + 0xc], 0xaf
mov eax, dword [edi + 0x2c]
mov dword [esi + 0x1c], eax
lea eax, [ebp - 0x18]
push eax
mov dword [ebp - 0x18], esi
call fcn.100720d0
push str.skeleton_friendly
lea ecx, [ebp - 0xa0]
lea esi, [edi + 0xe18]
call fcn.10020910
push str.friendly_color
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], 0x5e
call fcn.10020910
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0x5f
push eax
lea ecx, [edi + 0xe88]
mov dword [ebp - 0x1c], 0xffffffff
call fcn.10040320
lea eax, [ebp - 0xa0]
push eax
lea ecx, [edi + 0xe50]
call fcn.10040320
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x40]
mov dword [edi + 0xea0], eax
mov dword [edi + 0xea4], 0
call fcn.100208c0
lea ecx, [ebp - 0xa0]
mov dword [ebp - 4], 0xffffffff
call fcn.100208c0
mov dword [esi + 0x18], 1
lea ecx, [edi + 0x18]
mov dword [esi + 4], 0xff
mov dword [esi + 0xc], 0xaf
mov eax, dword [edi + 0x2c]
mov dword [esi + 0x1c], eax
lea eax, [ebp - 0x18]
push eax
mov dword [ebp - 0x18], esi
call fcn.100720d0
push 0x100ad7f4
lea ecx, [ebp - 0xa0]
lea esi, [edi + 0xea8]
call fcn.100723b0
push str.skeleton_alpha
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], 0x60
call fcn.10020910
push 0x100ab762
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0x61
call fcn.10020910
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0x62
push eax
lea ecx, [edi + 0xee0]
call fcn.10040320
mov byte [edi + 0xf11], 0
mov dword [edi + 0xf60], 0
mov dword [edi + 0xeb8], 8
mov dword [edi + 0xebc], 8
mov dword [edi + 0xf1c], 0x41200000
lea eax, [ebp - 0xa0]
mov dword [edi + 0xf20], 0x42c80000
lea ecx, [edi + 0xf48]
mov dword [edi + 0xf18], 0x42700000
mov dword [edi + 0xf2c], 0
push eax
mov dword [edi + 0xf24], 0x3f800000
call fcn.10072380
lea ecx, [ebp - 0x70]
call fcn.100208c0
lea ecx, [ebp - 0x40]
call fcn.100208c0
lea ecx, [ebp - 0xa0]
mov dword [ebp - 4], 0xffffffff
call fcn.10047930
mov dword [esi + 0x18], 1
mov dword [esi + 4], 0xff
mov dword [esi + 0xc], 0xaf
mov eax, dword [edi + 0x2c]
mov dword [esi + 0x1c], eax
lea eax, [ebp - 0x18]
mov dword [ebp - 0x18], esi
lea esi, [edi + 0x18]
push eax
mov ecx, esi
call fcn.100720d0
push str.enemy
lea ecx, [ebp - 0x3d0]
call fcn.10020910
push str.friendly
lea ecx, [ebp - 0x3b8]
mov dword [ebp - 4], 0x63
call fcn.10020910
lea ecx, [ebp - 0x3d0]
mov dword [ebp - 4], 0x64
push ecx
lea eax, [ebp - 0x3a0]
push eax
push ecx
lea ecx, [ebp - 0x7c]
call fcn.10072100
push str.glow
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 0x65
call fcn.10020910
push str.glow
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x66
call fcn.10020910
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x60], 0
lea eax, [ebp - 0xa0]
mov byte [ebp - 4], 0x68
push eax
lea ecx, [edi + 0xf9c]
call fcn.10040320
lea eax, [ebp - 0x40]
mov byte [edi + 0xfcd], 1
push eax
lea ecx, [edi + 0xfd4]
call fcn.10040320
xor eax, eax
mov ecx, 0xf
cmp byte [edi + 0xfcd], al
cmovne eax, ecx
mov ecx, dword [ebp - 0x78]
mov dword [edi + 0x1008], eax
add eax, 0x14
mov dword [edi + 0xf74], eax
mov dword [edi + 0xf78], eax
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x18], eax
cmp eax, ecx
je 0x10057896
mov esi, dword [ebp - 0x18]
lea eax, [edi + 0xfec]
mov dword [ebp - 0x20], eax
mov edi, eax
nop
push esi
mov ecx, edi
call fcn.100477b0
add esi, 0x18
cmp esi, dword [ebp - 0x28]
jne 0x10057880
mov edi, dword [ebp - 0x24]
lea esi, [edi + 0x18]
lea ecx, [ebp - 0x68]
call fcn.1001fec0
lea ecx, [ebp - 0x40]
call fcn.100208c0
lea ecx, [ebp - 0xa0]
call fcn.100208c0
lea ecx, [ebp - 0x7c]
call fcn.10047b00
push fcn.100208c0
push 2
push 0x18
lea eax, [ebp - 0x3d0]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.1009c941
mov dword [edi + 0xf7c], 1
lea eax, [edi + 0xf64]
mov dword [edi + 0xf68], 0xff
mov ecx, esi
mov dword [ebp - 0x18], eax
mov dword [edi + 0xf70], 0xaf
mov eax, dword [edi + 0x2c]
mov dword [edi + 0xf80], eax
lea eax, [ebp - 0x18]
push eax
call fcn.100720d0
push str.glow_enemy
lea ecx, [ebp - 0xa0]
lea esi, [edi + 0x100c]
call fcn.10020910
push str.enemy_color
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], 0x69
call fcn.10020910
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0x6a
push eax
lea ecx, [edi + 0x107c]
mov dword [ebp - 0x1c], 0xff3cc896
call fcn.10040320
lea eax, [ebp - 0xa0]
push eax
lea ecx, [edi + 0x1044]
call fcn.10040320
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x40]
mov dword [edi + 0x1094], eax
mov dword [edi + 0x1098], 0
call fcn.100208c0
lea ecx, [ebp - 0xa0]
mov dword [ebp - 4], 0xffffffff
call fcn.100208c0
mov dword [esi + 0x18], 1
lea ecx, [edi + 0x18]
mov dword [esi + 4], 0xff
mov dword [esi + 0xc], 0xaf
mov eax, dword [edi + 0x2c]
mov dword [esi + 0x1c], eax
lea eax, [ebp - 0x18]
push eax
mov dword [ebp - 0x18], esi
call fcn.100720d0
push str.glow_friendly
lea ecx, [ebp - 0xa0]
lea esi, [edi + 0x109c]
call fcn.10020910
push str.friendly_color
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], 0x6b
call fcn.10020910
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0x6c
push eax
lea ecx, [edi + 0x110c]
mov dword [ebp - 0x1c], 0xff3cc896
call fcn.10040320
lea eax, [ebp - 0xa0]
push eax
lea ecx, [edi + 0x10d4]
call fcn.10040320
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x40]
mov dword [edi + 0x1124], eax
mov dword [edi + 0x1128], 0
call fcn.100208c0
lea ecx, [ebp - 0xa0]
mov dword [ebp - 4], 0xffffffff
call fcn.100208c0
mov dword [esi + 0x18], 1
lea ecx, [edi + 0x18]
mov dword [esi + 4], 0xff
mov dword [esi + 0xc], 0xaf
mov eax, dword [edi + 0x2c]
mov dword [esi + 0x1c], eax
lea eax, [ebp - 0x18]
push eax
mov dword [ebp - 0x18], esi
call fcn.100720d0
push 0x100ad7f4
lea ecx, [ebp - 0xa0]
lea esi, [edi + 0x112c]
call fcn.100723b0
push str.glow_blend
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], 0x6d
call fcn.10020910
push 0x100ab762
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0x6e
call fcn.10020910
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0x6f
push eax
lea ecx, [edi + 0x1164]
call fcn.10040320
mov byte [edi + 0x1195], 0
lea eax, [ebp - 0xa0]
mov dword [edi + 0x11e4], 0
lea ecx, [edi + 0x11cc]
mov dword [edi + 0x113c], 8
mov dword [edi + 0x1140], 8
mov dword [edi + 0x11a0], 0x41200000
mov dword [edi + 0x11a4], 0x42c80000
mov dword [edi + 0x119c], 0x42700000
mov dword [edi + 0x11b0], 0
push eax
mov dword [edi + 0x11a8], 0x3f800000
call fcn.10072380
lea ecx, [ebp - 0x70]
call fcn.100208c0
lea ecx, [ebp - 0x40]
call fcn.100208c0
lea ecx, [ebp - 0xa0]
mov dword [ebp - 4], 0xffffffff
call fcn.10047930
mov dword [esi + 0x18], 1
mov dword [esi + 4], 0xff
mov dword [esi + 0xc], 0xaf
mov eax, dword [edi + 0x2c]
mov dword [esi + 0x1c], eax
lea eax, [ebp - 0x18]
mov dword [ebp - 0x18], esi
lea esi, [edi + 0x18]
push eax
mov ecx, esi
call fcn.100720d0
push str.visible
lea ecx, [ebp - 0x3d0]
call fcn.10020910
push str.invisible
lea ecx, [ebp - 0x3b8]
mov dword [ebp - 4], 0x70
call fcn.10020910
lea ecx, [ebp - 0x3d0]
mov dword [ebp - 4], 0x71
push ecx
lea eax, [ebp - 0x3a0]
push eax
push ecx
lea ecx, [ebp - 0x7c]
call fcn.10072100
push str.chams_enemy
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 0x72
call fcn.10020910
push 0x100ae438
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x73
call fcn.10020910
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x60], 0
lea eax, [ebp - 0xa0]
mov byte [ebp - 4], 0x75
push eax
lea ecx, [edi + 0x1220]
call fcn.10040320
lea eax, [ebp - 0x40]
mov byte [edi + 0x1251], 1
push eax
lea ecx, [edi + 0x1258]
call fcn.10040320
xor eax, eax
mov ecx, 0xf
cmp byte [edi + 0x1251], al
cmovne eax, ecx
mov ecx, dword [ebp - 0x78]
mov dword [edi + 0x128c], eax
add eax, 0x14
mov dword [edi + 0x11f8], eax
mov dword [edi + 0x11fc], eax
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x18], eax
cmp eax, ecx
je 0x10057c76
mov esi, dword [ebp - 0x18]
lea eax, [edi + 0x1270]
mov dword [ebp - 0x20], eax
mov edi, eax
nop dword [eax]
push esi
mov ecx, edi
call fcn.100477b0
add esi, 0x18
cmp esi, dword [ebp - 0x28]
jne 0x10057c60
mov edi, dword [ebp - 0x24]
lea esi, [edi + 0x18]
lea ecx, [ebp - 0x68]
call fcn.1001fec0
lea ecx, [ebp - 0x40]
call fcn.100208c0
lea ecx, [ebp - 0xa0]
call fcn.100208c0
lea ecx, [ebp - 0x7c]
call fcn.10047b00
push fcn.100208c0
push 2
push 0x18
lea eax, [ebp - 0x3d0]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.1009c941
mov dword [edi + 0x1200], 1
lea eax, [edi + 0x11e8]
mov dword [edi + 0x11ec], 0xff
mov ecx, esi
mov dword [ebp - 0x18], eax
mov dword [edi + 0x11f4], 0xaf
mov eax, dword [edi + 0x2c]
mov dword [edi + 0x1204], eax
lea eax, [ebp - 0x18]
push eax
call fcn.100720d0
push str.chams_enemy_vis
lea ecx, [ebp - 0xa0]
lea esi, [edi + 0x1290]
call fcn.10020910
push str.color_visible
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], 0x76
call fcn.10020910
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0x77
push eax
lea ecx, [edi + 0x1300]
mov dword [ebp - 0x1c], 0xff3cc896
call fcn.10040320
lea eax, [ebp - 0xa0]
push eax
lea ecx, [edi + 0x12c8]
call fcn.10040320
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x40]
mov dword [edi + 0x1318], eax
mov dword [edi + 0x131c], 0
call fcn.100208c0
lea ecx, [ebp - 0xa0]
mov dword [ebp - 4], 0xffffffff
call fcn.100208c0
mov dword [esi + 0x18], 1
lea ecx, [edi + 0x18]
mov dword [esi + 4], 0xff
mov dword [esi + 0xc], 0xaf
mov eax, dword [edi + 0x2c]
mov dword [esi + 0x1c], eax
lea eax, [ebp - 0x18]
push eax
mov dword [ebp - 0x18], esi
call fcn.100720d0
push str.chams_enemy_invis
lea ecx, [ebp - 0xa0]
lea esi, [edi + 0x1320]
call fcn.10020910
push str.color_invisible
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], 0x78
call fcn.10020910
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0x79
push eax
lea ecx, [edi + 0x1390]
mov dword [ebp - 0x1c], 0xffe1b43c
call fcn.10040320
lea eax, [ebp - 0xa0]
push eax
lea ecx, [edi + 0x1358]
call fcn.10040320
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x40]
mov dword [edi + 0x13a8], eax
mov dword [edi + 0x13ac], 0
call fcn.100208c0
lea ecx, [ebp - 0xa0]
mov dword [ebp - 4], 0xffffffff
call fcn.100208c0
mov dword [esi + 0x18], 1
lea ecx, [edi + 0x18]
mov dword [esi + 4], 0xff
mov dword [esi + 0xc], 0xaf
mov eax, dword [edi + 0x2c]
mov dword [esi + 0x1c], eax
lea eax, [ebp - 0x18]
push eax
mov dword [ebp - 0x18], esi
call fcn.100720d0
push 0x100ad7f4
lea ecx, [ebp - 0xa0]
lea esi, [edi + 0x13b0]
call fcn.100723b0
push str.chams_enemy_blend
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], 0x7a
call fcn.10020910
push 0x100ab762
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0x7b
call fcn.10020910
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0x7c
push eax
lea ecx, [edi + 0x13e8]
call fcn.10040320
mov byte [edi + 0x1419], 0
lea eax, [ebp - 0xa0]
mov dword [edi + 0x1468], 0
lea ecx, [edi + 0x1450]
mov dword [edi + 0x13c0], 8
mov dword [edi + 0x13c4], 8
mov dword [edi + 0x1424], 0
mov dword [edi + 0x1428], 0x42c80000
mov dword [edi + 0x1420], 0x42c80000
mov dword [edi + 0x1434], 0
push eax
mov dword [edi + 0x142c], 0x3f800000
call fcn.10072380
lea ecx, [ebp - 0x70]
call fcn.100208c0
lea ecx, [ebp - 0x40]
call fcn.100208c0
lea ecx, [ebp - 0xa0]
mov dword [ebp - 4], 0xffffffff
call fcn.10047930
mov dword [esi + 0x18], 1
lea ecx, [edi + 0x18]
mov dword [esi + 4], 0xff
mov dword [esi + 0xc], 0xaf
mov eax, dword [edi + 0x2c]
mov dword [esi + 0x1c], eax
lea eax, [ebp - 0x18]
push eax
mov dword [ebp - 0x18], esi
call fcn.100720d0
push 0x100ae4dc
lea ecx, [ebp - 0xa0]
lea esi, [edi + 0x146c]
call fcn.10020910
push str.chams_history
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], 0x7d
call fcn.10020910
lea eax, [ebp - 0xa0]
mov byte [ebp - 4], 0x7e
push eax
lea ecx, [edi + 0x14a4]
call fcn.10040320
lea eax, [ebp - 0x40]
mov byte [edi + 0x14d5], 1
push eax
lea ecx, [edi + 0x14dc]
call fcn.10040320
lea ecx, [ebp - 0x40]
mov byte [edi + 0x14d8], 0
call fcn.100208c0
lea ecx, [ebp - 0xa0]
mov dword [ebp - 4], 0xffffffff
call fcn.100208c0
mov dword [esi + 0x18], 1
lea ecx, [edi + 0x18]
mov dword [esi + 4], 0xff
mov dword [esi + 0xc], 0xaf
mov eax, dword [edi + 0x2c]
mov dword [esi + 0x1c], eax
lea eax, [ebp - 0x18]
push eax
mov dword [ebp - 0x18], esi
call fcn.100720d0
push str.chams_history_col
lea ecx, [ebp - 0xa0]
lea esi, [edi + 0x14f4]
call fcn.10020910
push str.color
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], 0x7f
call fcn.10020910
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0x80
push eax
lea ecx, [edi + 0x1564]
mov dword [ebp - 0x1c], 0xffc8ffff
call fcn.10040320
lea eax, [ebp - 0xa0]
push eax
lea ecx, [edi + 0x152c]
call fcn.10040320
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x40]
mov dword [edi + 0x157c], eax
mov dword [edi + 0x1580], 0
call fcn.100208c0
lea ecx, [ebp - 0xa0]
mov dword [ebp - 4], 0xffffffff
call fcn.100208c0
mov dword [esi + 0x18], 1
lea ecx, [edi + 0x18]
mov dword [esi + 4], 0xff
mov dword [esi + 0xc], 0xaf
mov eax, dword [edi + 0x2c]
mov dword [esi + 0x1c], eax
lea eax, [ebp - 0x18]
push eax
mov dword [ebp - 0x18], esi
call fcn.100720d0
push 0x100ad7f4
lea ecx, [ebp - 0xa0]
lea esi, [edi + 0x1584]
call fcn.100723b0
push str.chams_history_blend
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], 0x81
call fcn.10020910
push 0x100ab762
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0x82
call fcn.10020910
mov byte [ebp - 4], 0x83
lea eax, [ebp - 0x40]
push eax
lea ecx, [edi + 0x15bc]
call fcn.10040320
mov byte [edi + 0x15ed], 0
lea eax, [ebp - 0xa0]
mov dword [edi + 0x163c], 0
lea ecx, [edi + 0x1624]
mov dword [edi + 0x1594], 8
mov dword [edi + 0x1598], 8
mov dword [edi + 0x15f8], 0x41200000
mov dword [edi + 0x15fc], 0x42c80000
mov dword [edi + 0x15f4], 0x42c80000
mov dword [edi + 0x1608], 0
push eax
mov dword [edi + 0x1600], 0x3f800000
call fcn.10072380
lea ecx, [ebp - 0x70]
call fcn.100208c0
lea ecx, [ebp - 0x40]
call fcn.100208c0
lea ecx, [ebp - 0xa0]
mov dword [ebp - 4], 0xffffffff
call fcn.10047930
mov dword [esi + 0x18], 1
mov dword [esi + 4], 0xff
mov dword [esi + 0xc], 0xaf
mov eax, dword [edi + 0x2c]
mov dword [esi + 0x1c], eax
lea eax, [ebp - 0x18]
mov dword [ebp - 0x18], esi
lea esi, [edi + 0x18]
push eax
mov ecx, esi
call fcn.100720d0
push str.visible
lea ecx, [ebp - 0x3d0]
call fcn.10020910
push str.invisible
lea ecx, [ebp - 0x3b8]
mov dword [ebp - 4], 0x84
call fcn.10020910
lea ecx, [ebp - 0x3d0]
mov dword [ebp - 4], 0x85
push ecx
lea eax, [ebp - 0x3a0]
push eax
push ecx
lea ecx, [ebp - 0x7c]
call fcn.10072100
push 0x100ae528
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 0x86
call fcn.10020910
push str.chams_friendly
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x87
call fcn.10020910
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x60], 0
lea eax, [ebp - 0xa0]
mov byte [ebp - 4], 0x89
push eax
lea ecx, [edi + 0x1678]
call fcn.10040320
lea eax, [ebp - 0x40]
mov byte [edi + 0x16a9], 1
push eax
lea ecx, [edi + 0x16b0]
call fcn.10040320
xor eax, eax
mov ecx, 0xf
cmp byte [edi + 0x16a9], al
cmovne eax, ecx
mov dword [edi + 0x16e4], eax
mov ecx, dword [ebp - 0x78]
add eax, 0x14
mov dword [edi + 0x1650], eax
mov dword [edi + 0x1654], eax
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x18], eax
cmp eax, ecx
je 0x100582a6
mov esi, dword [ebp - 0x18]
lea eax, [edi + 0x16c8]
mov dword [ebp - 0x20], eax
mov edi, eax
nop
push esi
mov ecx, edi
call fcn.100477b0
add esi, 0x18
cmp esi, dword [ebp - 0x28]
jne 0x10058290
mov edi, dword [ebp - 0x24]
lea esi, [edi + 0x18]
lea ecx, [ebp - 0x68]
call fcn.1001fec0
lea ecx, [ebp - 0x40]
call fcn.100208c0
lea ecx, [ebp - 0xa0]
call fcn.100208c0
lea ecx, [ebp - 0x7c]
call fcn.10047b00
push fcn.100208c0
push 2
push 0x18
lea eax, [ebp - 0x3d0]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.1009c941
mov dword [edi + 0x1658], 1
lea eax, [edi + 0x1640]
mov dword [edi + 0x1644], 0xff
mov ecx, esi
mov dword [ebp - 0x18], eax
mov dword [edi + 0x164c], 0xaf
mov eax, dword [edi + 0x2c]
mov dword [edi + 0x165c], eax
lea eax, [ebp - 0x18]
push eax
call fcn.100720d0
push str.chams_friendly_vis
lea ecx, [ebp - 0xa0]
lea esi, [edi + 0x16e8]
call fcn.10020910
push str.color_visible
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], 0x8a
call fcn.10020910
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0x8b
push eax
lea ecx, [edi + 0x1758]
mov dword [ebp - 0x1c], 0xff00c8ff
call fcn.10040320
lea eax, [ebp - 0xa0]
push eax
lea ecx, [edi + 0x1720]
call fcn.10040320
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x40]
mov dword [edi + 0x1770], eax
mov dword [edi + 0x1774], 0
call fcn.100208c0
lea ecx, [ebp - 0xa0]
mov dword [ebp - 4], 0xffffffff
call fcn.100208c0
mov dword [esi + 0x18], 1
lea ecx, [edi + 0x18]
mov dword [esi + 4], 0xff
mov dword [esi + 0xc], 0xaf
mov eax, dword [edi + 0x2c]
mov dword [esi + 0x1c], eax
lea eax, [ebp - 0x18]
push eax
mov dword [ebp - 0x18], esi
call fcn.100720d0
push str.chams_friendly_invis
lea ecx, [ebp - 0xa0]
lea esi, [edi + 0x1778]
call fcn.10020910
push str.color_invisible
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], 0x8c
call fcn.10020910
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0x8d
push eax
lea ecx, [edi + 0x17e8]
mov dword [ebp - 0x1c], 0xff0032ff
call fcn.10040320
lea eax, [ebp - 0xa0]
push eax
lea ecx, [edi + 0x17b0]
call fcn.10040320
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x40]
mov dword [edi + 0x1800], eax
mov dword [edi + 0x1804], 0
call fcn.100208c0
lea ecx, [ebp - 0xa0]
mov dword [ebp - 4], 0xffffffff
call fcn.100208c0
mov dword [esi + 0x18], 1
lea ecx, [edi + 0x18]
mov dword [esi + 4], 0xff
mov dword [esi + 0xc], 0xaf
mov eax, dword [edi + 0x2c]
mov dword [esi + 0x1c], eax
lea eax, [ebp - 0x18]
push eax
mov dword [ebp - 0x18], esi
call fcn.100720d0
push 0x100ad7f4
lea ecx, [ebp - 0xa0]
lea esi, [edi + 0x1808]
call fcn.100723b0
push str.chams_friendly_blend
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], 0x8e
call fcn.10020910
push 0x100ab762
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0x8f
call fcn.10020910
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0x90
push eax
lea ecx, [edi + 0x1840]
call fcn.10040320
mov byte [edi + 0x1871], 0
lea eax, [ebp - 0xa0]
mov dword [edi + 0x18c0], 0
lea ecx, [edi + 0x18a8]
mov dword [edi + 0x1818], 8
mov dword [edi + 0x181c], 8
mov dword [edi + 0x187c], 0x41200000
mov dword [edi + 0x1880], 0x42c80000
mov dword [edi + 0x1878], 0x42c80000
mov dword [edi + 0x188c], 0
push eax
mov dword [edi + 0x1884], 0x3f800000
call fcn.10072380
lea ecx, [ebp - 0x70]
call fcn.100208c0
lea ecx, [ebp - 0x40]
call fcn.100208c0
lea ecx, [ebp - 0xa0]
mov dword [ebp - 4], 0xffffffff
call fcn.10047930
mov dword [esi + 0x18], 1
lea ecx, [edi + 0x18]
mov dword [esi + 4], 0xff
mov dword [esi + 0xc], 0xaf
mov eax, dword [edi + 0x2c]
mov dword [esi + 0x1c], eax
lea eax, [ebp - 0x18]
push eax
mov dword [ebp - 0x18], esi
call fcn.100720d0
push str.chams_local
lea ecx, [ebp - 0xa0]
lea esi, [edi + 0x18c4]
call fcn.10020910
push 0x100ae548
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], 0x91
call fcn.10020910
lea eax, [ebp - 0xa0]
mov byte [ebp - 4], 0x92
push eax
lea ecx, [edi + 0x18fc]
call fcn.10040320
lea eax, [ebp - 0x40]
mov byte [edi + 0x192d], 1
push eax
lea ecx, [edi + 0x1934]
call fcn.10040320
lea ecx, [ebp - 0x40]
mov byte [edi + 0x1930], 0
call fcn.100208c0
lea ecx, [ebp - 0xa0]
mov dword [ebp - 4], 0xffffffff
call fcn.100208c0
mov dword [esi + 0x18], 1
lea ecx, [edi + 0x18]
mov dword [esi + 4], 0xff
mov dword [esi + 0xc], 0xaf
mov eax, dword [edi + 0x2c]
mov dword [esi + 0x1c], eax
lea eax, [ebp - 0x18]
push eax
mov dword [ebp - 0x18], esi
call fcn.100720d0
push str.chams_local_col
lea ecx, [ebp - 0xa0]
lea esi, [edi + 0x194c]
call fcn.10020910
push str.color
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], 0x93
call fcn.10020910
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0x94
push eax
lea ecx, [edi + 0x19bc]
mov dword [ebp - 0x1c], 0xffc8ffff
call fcn.10040320
lea eax, [ebp - 0xa0]
push eax
lea ecx, [edi + 0x1984]
call fcn.10040320
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x40]
mov dword [edi + 0x19d4], eax
mov dword [edi + 0x19d8], 0
call fcn.100208c0
lea ecx, [ebp - 0xa0]
mov dword [ebp - 4], 0xffffffff
call fcn.100208c0
mov dword [esi + 0x18], 1
lea ecx, [edi + 0x18]
mov dword [esi + 4], 0xff
mov dword [esi + 0xc], 0xaf
mov eax, dword [edi + 0x2c]
mov dword [esi + 0x1c], eax
lea eax, [ebp - 0x18]
push eax
mov dword [ebp - 0x18], esi
call fcn.100720d0
push 0x100ad7f4
lea ecx, [ebp - 0xa0]
lea esi, [edi + 0x19dc]
call fcn.100723b0
push str.chams_local_blend
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], 0x95
call fcn.10020910
push 0x100ab762
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0x96
call fcn.10020910
mov byte [ebp - 4], 0x97
lea eax, [ebp - 0x40]
push eax
lea ecx, [edi + 0x1a14]
call fcn.10040320
mov byte [edi + 0x1a45], 0
lea eax, [ebp - 0xa0]
mov dword [edi + 0x1a94], 0
lea ecx, [edi + 0x1a7c]
mov dword [edi + 0x19ec], 8
mov dword [edi + 0x19f0], 8
mov dword [edi + 0x1a50], 0x41200000
mov dword [edi + 0x1a54], 0x42c80000
mov dword [edi + 0x1a4c], 0x42c80000
mov dword [edi + 0x1a60], 0
push eax
mov dword [edi + 0x1a58], 0x3f800000
call fcn.10072380
lea ecx, [ebp - 0x70]
call fcn.100208c0
lea ecx, [ebp - 0x40]
call fcn.100208c0
lea ecx, [ebp - 0xa0]
mov dword [ebp - 4], 0xffffffff
call fcn.10047930
mov dword [esi + 0x18], 1
lea ecx, [edi + 0x18]
mov dword [esi + 4], 0xff
mov dword [esi + 0xc], 0xaf
mov eax, dword [edi + 0x2c]
mov dword [esi + 0x1c], eax
lea eax, [ebp - 0x18]
push eax
mov dword [ebp - 0x18], esi
call fcn.100720d0
push str.chams_local_scope
lea ecx, [ebp - 0xa0]
lea esi, [edi + 0x1a98]
call fcn.10020910
push str.blend_when_scoped
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], 0x98
call fcn.10020910
lea eax, [ebp - 0xa0]
mov byte [ebp - 4], 0x99
push eax
lea ecx, [edi + 0x1ad0]
call fcn.10040320
lea eax, [ebp - 0x40]
mov byte [edi + 0x1b01], 1
push eax
lea ecx, [edi + 0x1b08]
call fcn.10040320
lea ecx, [ebp - 0x40]
mov byte [edi + 0x1b04], 0
call fcn.100208c0
lea ecx, [ebp - 0xa0]
mov dword [ebp - 4], 0xffffffff
call fcn.100208c0
mov dword [esi + 0x18], 1
lea ecx, [edi + 0x18]
mov dword [esi + 4], 0xff
mov dword [esi + 0xc], 0xaf
mov eax, dword [edi + 0x2c]
mov dword [esi + 0x1c], eax
lea eax, [ebp - 0x18]
push eax
mov dword [ebp - 0x18], esi
call fcn.100720d0
push 0x100ad7f4
lea ecx, [ebp - 0xa0]
lea esi, [edi + 0x1b20]
call fcn.100723b0
push str.chams_local_blend_strength
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], 0x9a
call fcn.10020910
mov byte [ebp - 4], 0x9b
push 0x100ab762
lea ecx, [ebp - 0x70]
call fcn.10020910
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0x9c
push eax
lea ecx, [edi + 0x1b58]
call fcn.10040320
mov byte [edi + 0x1b89], 0
lea eax, [ebp - 0xa0]
mov dword [edi + 0x1bd8], 0
lea ecx, [edi + 0x1bc0]
mov dword [edi + 0x1b30], 8
mov dword [edi + 0x1b34], 8
mov dword [edi + 0x1b94], 0x41200000
mov dword [edi + 0x1b98], 0x42c80000
mov dword [edi + 0x1b90], 0x42c80000
mov dword [edi + 0x1ba4], 0
push eax
mov dword [edi + 0x1b9c], 0x3f800000
call fcn.10072380
lea ecx, [ebp - 0x70]
call fcn.100208c0
lea ecx, [ebp - 0x40]
call fcn.100208c0
lea ecx, [ebp - 0xa0]
mov dword [ebp - 4], 0xffffffff
call fcn.10047930
mov dword [esi + 0x18], 1
lea ecx, [edi + 0x18]
mov dword [esi + 4], 0xff
mov dword [esi + 0xc], 0xaf
mov eax, dword [edi + 0x2c]
mov dword [esi + 0x1c], eax
lea eax, [ebp - 0x18]
push eax
mov dword [ebp - 0x18], esi
call fcn.100720d0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.1009c816
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret