Function at 0x10050bf0
Capabilities:
Contain obfuscated stackstrings
Parse pe header

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 0x1009de4f
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x280
mov eax, dword [0x100b400c]
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 - 0x2c], edi
push str.players
lea ecx, [ebp - 0x48]
call fcn.10020480
lea eax, [ebp - 0x48]
mov dword [ebp - 4], 0
cmp edi, eax
je 0x10050c60
mov byte [ebp - 0x18], 0
mov ecx, edi
push dword [ebp - 0x18]
push eax
call fcn.10038bd0
lea ecx, [ebp - 0x48]
mov dword [ebp - 4], 0xffffffff
call fcn.10020430
push str.enemy
lea ecx, [ebp - 0xbc]
call fcn.10020480
push str.friendly
lea ecx, [ebp - 0xa4]
mov dword [ebp - 4], 1
call fcn.10020480
lea eax, [ebp - 0x21]
mov dword [ebp - 4], 2
push eax
lea ecx, [ebp - 0x8c]
push ecx
lea edx, [ebp - 0xbc]
push edx
lea ecx, [ebp - 0x74]
call fcn.1006e770
push 0x100a77a0
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 3
call fcn.10020480
push str.boxes
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 4
call fcn.10020480
lea ecx, [ebp - 0xd0]
call fcn.1001acc0
lea ecx, [edi + 0x6c]
mov byte [ebp - 4], 6
lea eax, [ebp - 0x60]
cmp ecx, eax
je 0x10050cff
mov byte [ebp - 0x18], 0
push dword [ebp - 0x18]
push eax
call fcn.10038bd0
lea ecx, [edi + 0xa4]
mov byte [edi + 0x9d], 1
lea eax, [ebp - 0x48]
mov dl, 1
cmp ecx, eax
je 0x10050d28
mov byte [ebp - 0x18], 0
push dword [ebp - 0x18]
push eax
call fcn.10038bd0
mov dl, byte [edi + 0x9d]
mov esi, dword [ebp - 0x74]
xor eax, eax
test dl, dl
mov ecx, 0xf
cmovne eax, ecx
mov dword [edi + 0xd8], eax
add eax, 0x14
mov dword [edi + 0x44], eax
mov dword [edi + 0x48], eax
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x18], eax
cmp esi, eax
je 0x10050d75
lea eax, [edi + 0xbc]
mov edi, dword [ebp - 0x18]
mov dword [ebp - 0x1c], eax
nop dword [eax]
push esi
mov ecx, eax
call fcn.1003f0d0
mov eax, dword [ebp - 0x1c]
add esi, 0x18
cmp esi, edi
jne 0x10050d60
mov edi, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0xcc]
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], eax
cmp eax, ecx
je 0x10050e43
lea ecx, [edi + 0xcc]
mov eax, dword [eax]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x84]
push eax
call fcn.1001f990
lea ecx, [edi + 0xcc]
mov esi, dword [eax]
lea eax, [ebp - 0x88]
push eax
call fcn.1001f9a0
push esi
lea edx, [ebp - 0x18]
lea ecx, [ebp - 0x8c]
push dword [eax]
call fcn.10020a80
add esp, 8
lea ecx, [edi + 0xcc]
mov esi, eax
lea eax, [ebp - 0xdc]
push eax
call fcn.1001f990
mov ecx, dword [edi + 0xc0]
sub ecx, dword [edi + 0xbc]
mov esi, dword [esi]
mov eax, dword [eax]
mov dword [ebp - 0x28], eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0x18], eax
jae 0x10050e1a
lea eax, [ebp - 0x18]
push eax
lea ecx, [edi + 0xcc]
call fcn.10032c60
cmp esi, dword [ebp - 0x28]
jne 0x10050e2b
mov eax, dword [edi + 0x98]
test eax, eax
je 0x10050e2b
call eax
mov eax, dword [ebp - 0x1c]
lea ecx, [edi + 0xcc]
add eax, 4
mov dword [ebp - 0x1c], eax
cmp eax, dword [ebp - 0x20]
jne 0x10050d95
lea ecx, [ebp - 0xd0]
call fcn.1001f9b0
lea ecx, [ebp - 0x48]
call fcn.10020430
lea ecx, [ebp - 0x60]
call fcn.10020430
lea ecx, [ebp - 0x74]
call fcn.1003f4d0
push fcn.10020430
push 2
push 0x18
lea eax, [ebp - 0xbc]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.10097d15
lea eax, [edi + 0x34]
mov dword [ebp - 0x1c], eax
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
lea ecx, [edi + 0x18]
call fcn.1006e740
push str.box_enemy
lea ecx, [ebp - 0x48]
call fcn.10020480
push str.box_enemy_color
lea ecx, [ebp - 0x60]
mov dword [ebp - 4], 7
call fcn.10020480
lea ecx, [edi + 0x14c]
mov byte [ebp - 4], 8
lea eax, [ebp - 0x60]
cmp ecx, eax
je 0x10050efd
mov byte [ebp - 0x20], 0
push dword [ebp - 0x20]
push eax
call fcn.10038bd0
lea ecx, [edi + 0x114]
lea eax, [ebp - 0x48]
cmp ecx, eax
je 0x10050f17
mov byte [ebp - 0x20], 0
push dword [ebp - 0x20]
push eax
call fcn.10038bd0
lea ecx, [ebp - 0x60]
mov dword [edi + 0x164], 0xff3cc896
mov dword [edi + 0x168], 0
call fcn.10020430
lea ecx, [ebp - 0x48]
mov dword [ebp - 4], 0xffffffff
call fcn.10020430
lea eax, [edi + 0xdc]
mov dword [ebp - 0x1c], eax
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
lea ecx, [edi + 0x18]
call fcn.1006e740
push str.box_friendly
lea ecx, [ebp - 0x48]
call fcn.10020480
push str.box_friendly_color
lea ecx, [ebp - 0x60]
mov dword [ebp - 4], 9
call fcn.10020480
lea ecx, [edi + 0x1dc]
mov byte [ebp - 4], 0xa
lea eax, [ebp - 0x60]
cmp ecx, eax
je 0x10050fc0
mov byte [ebp - 0x20], 0
push dword [ebp - 0x20]
push eax
call fcn.10038bd0
lea ecx, [edi + 0x1a4]
lea eax, [ebp - 0x48]
cmp ecx, eax
je 0x10050fda
mov byte [ebp - 0x20], 0
push dword [ebp - 0x20]
push eax
call fcn.10038bd0
lea ecx, [ebp - 0x60]
mov dword [edi + 0x1f4], 0xff00c8ff
mov dword [edi + 0x1f8], 0
call fcn.10020430
lea ecx, [ebp - 0x48]
mov dword [ebp - 4], 0xffffffff
call fcn.10020430
lea eax, [edi + 0x16c]
mov dword [ebp - 0x1c], eax
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
lea ecx, [edi + 0x18]
call fcn.1006e740
push str.dormant
lea ecx, [ebp - 0x48]
call fcn.10020480
push str.dormant_enemies
lea ecx, [ebp - 0x60]
mov dword [ebp - 4], 0xb
call fcn.10020480
lea ecx, [edi + 0x234]
mov byte [ebp - 4], 0xc
lea eax, [ebp - 0x48]
cmp ecx, eax
je 0x10051083
mov byte [ebp - 0x20], 0
push dword [ebp - 0x20]
push eax
call fcn.10038bd0
lea ecx, [edi + 0x26c]
mov byte [edi + 0x265], 1
lea eax, [ebp - 0x60]
cmp ecx, eax
je 0x100510a4
mov byte [ebp - 0x20], 0
push dword [ebp - 0x20]
push eax
call fcn.10038bd0
lea ecx, [ebp - 0x60]
mov byte [edi + 0x268], 0
call fcn.10020430
lea ecx, [ebp - 0x48]
mov dword [ebp - 4], 0xffffffff
call fcn.10020430
lea eax, [edi + 0x1fc]
mov dword [ebp - 0x1c], eax
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
lea ecx, [edi + 0x18]
call fcn.1006e740
push str.offscreen
lea ecx, [ebp - 0x48]
call fcn.10020480
push str.enemy_offscreen_esp
lea ecx, [ebp - 0x60]
mov dword [ebp - 4], 0xd
call fcn.10020480
lea ecx, [edi + 0x2bc]
mov byte [ebp - 4], 0xe
lea eax, [ebp - 0x48]
cmp ecx, eax
je 0x10051140
mov byte [ebp - 0x20], 0
push dword [ebp - 0x20]
push eax
call fcn.10038bd0
lea ecx, [edi + 0x2f4]
mov byte [edi + 0x2ed], 1
lea eax, [ebp - 0x60]
cmp ecx, eax
je 0x10051161
mov byte [ebp - 0x20], 0
push dword [ebp - 0x20]
push eax
call fcn.10038bd0
lea ecx, [ebp - 0x60]
mov byte [edi + 0x2f0], 0
call fcn.10020430
lea ecx, [ebp - 0x48]
mov dword [ebp - 4], 0xffffffff
call fcn.10020430
lea eax, [edi + 0x284]
mov dword [ebp - 0x1c], eax
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
lea ecx, [edi + 0x18]
call fcn.1006e740
mov esi, dword [0x100a551c]
lea ecx, [ebp - 0x48]
push str.offscreen_color
call fcn.10020480
push str.offscreen_esp_color
lea ecx, [ebp - 0x60]
mov dword [ebp - 4], 0xf
call fcn.10020480
lea ecx, [edi + 0x37c]
mov byte [ebp - 4], 0x10
lea eax, [ebp - 0x60]
cmp ecx, eax
je 0x10051203
mov byte [ebp - 0x20], 0
push dword [ebp - 0x20]
push eax
call fcn.10038bd0
lea ecx, [edi + 0x344]
lea eax, [ebp - 0x48]
cmp ecx, eax
je 0x1005121d
mov byte [ebp - 0x20], 0
push dword [ebp - 0x20]
push eax
call fcn.10038bd0
lea ecx, [ebp - 0x60]
mov dword [edi + 0x394], esi
mov dword [edi + 0x398], 0
call fcn.10020430
lea ecx, [ebp - 0x48]
mov dword [ebp - 4], 0xffffffff
call fcn.10020430
lea eax, [edi + 0x30c]
mov dword [ebp - 0x1c], eax
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
lea ecx, [edi + 0x18]
call fcn.1006e740
push str.enemy
lea ecx, [ebp - 0xbc]
call fcn.10020480
push str.friendly
lea ecx, [ebp - 0xa4]
mov dword [ebp - 4], 0x11
call fcn.10020480
lea eax, [ebp - 0x21]
mov dword [ebp - 4], 0x12
push eax
lea ecx, [ebp - 0x8c]
push ecx
lea edx, [ebp - 0xbc]
push edx
lea ecx, [ebp - 0xcc]
call fcn.1006e770
push str.name
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0x13
call fcn.10020480
push str.name
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0x14
call fcn.10020480
lea ecx, [ebp - 0x78]
call fcn.1001acc0
lea ecx, [edi + 0x3d4]
mov byte [ebp - 4], 0x16
lea eax, [ebp - 0x48]
cmp ecx, eax
je 0x10051316
mov byte [ebp - 0x20], 0
push dword [ebp - 0x20]
push eax
call fcn.10038bd0
lea ecx, [edi + 0x40c]
mov byte [edi + 0x405], 1
lea eax, [ebp - 0x60]
mov dl, 1
cmp ecx, eax
je 0x1005133f
mov byte [ebp - 0x20], 0
push dword [ebp - 0x20]
push eax
call fcn.10038bd0
mov dl, byte [edi + 0x405]
mov esi, dword [ebp - 0xcc]
xor eax, eax
test dl, dl
mov ecx, 0xf
cmovne eax, ecx
mov dword [edi + 0x440], eax
add eax, 0x14
mov dword [edi + 0x3ac], eax
mov dword [edi + 0x3b0], eax
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0x20], eax
cmp esi, eax
je 0x10051395
lea eax, [edi + 0x424]
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0x28], eax
nop
push esi
mov ecx, eax
call fcn.1003f0d0
mov eax, dword [ebp - 0x28]
add esi, 0x18
cmp esi, edi
jne 0x10051380
mov edi, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x1c], eax
cmp eax, ecx
je 0x1005145e
lea ecx, [edi + 0x434]
nop
mov eax, dword [eax]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0xdc]
push eax
call fcn.1001f990
lea ecx, [edi + 0x434]
mov esi, dword [eax]
lea eax, [ebp - 0x8c]
push eax
call fcn.1001f9a0
push esi
lea edx, [ebp - 0x18]
lea ecx, [ebp - 0x88]
push dword [eax]
call fcn.10020a80
add esp, 8
lea ecx, [edi + 0x434]
mov esi, eax
lea eax, [ebp - 0x84]
push eax
call fcn.1001f990
mov ecx, dword [edi + 0x428]
sub ecx, dword [edi + 0x424]
mov esi, dword [esi]
mov eax, dword [eax]
mov dword [ebp - 0x20], eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0x18], eax
jae 0x10051435
lea eax, [ebp - 0x18]
push eax
lea ecx, [edi + 0x434]
call fcn.10032c60
cmp esi, dword [ebp - 0x20]
jne 0x10051446
mov eax, dword [edi + 0x400]
test eax, eax
je 0x10051446
call eax
mov eax, dword [ebp - 0x1c]
lea ecx, [edi + 0x434]
add eax, 4
mov dword [ebp - 0x1c], eax
cmp eax, dword [ebp - 0x28]
jne 0x100513b0
lea ecx, [ebp - 0x78]
call fcn.1001f9b0
lea ecx, [ebp - 0x60]
call fcn.10020430
lea ecx, [ebp - 0x48]
call fcn.10020430
lea ecx, [ebp - 0xcc]
call fcn.1003f4d0
push fcn.10020430
push 2
push 0x18
lea eax, [ebp - 0xbc]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.10097d15
lea eax, [edi + 0x39c]
mov dword [ebp - 0x1c], eax
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
lea ecx, [edi + 0x18]
call fcn.1006e740
mov esi, dword [0x100a551c]
lea ecx, [ebp - 0x48]
push str.name_color
call fcn.10020480
push 0x100a782c
lea ecx, [ebp - 0x60]
mov dword [ebp - 4], 0x17
call fcn.10020480
lea ecx, [edi + 0x4b4]
mov byte [ebp - 4], 0x18
lea eax, [ebp - 0x60]
cmp ecx, eax
je 0x10051521
mov byte [ebp - 0x20], 0
push dword [ebp - 0x20]
push eax
call fcn.10038bd0
lea ecx, [edi + 0x47c]
lea eax, [ebp - 0x48]
cmp ecx, eax
je 0x1005153b
mov byte [ebp - 0x20], 0
push dword [ebp - 0x20]
push eax
call fcn.10038bd0
lea ecx, [ebp - 0x60]
mov dword [edi + 0x4cc], esi
mov dword [edi + 0x4d0], 0
call fcn.10020430
lea ecx, [ebp - 0x48]
mov dword [ebp - 4], 0xffffffff
call fcn.10020430
lea eax, [edi + 0x444]
mov dword [ebp - 0x1c], eax
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
lea ecx, [edi + 0x18]
call fcn.1006e740
push str.enemy
lea ecx, [ebp - 0xbc]
call fcn.10020480
push str.friendly
lea ecx, [ebp - 0xa4]
mov dword [ebp - 4], 0x19
call fcn.10020480
lea eax, [ebp - 0x21]
mov dword [ebp - 4], 0x1a
push eax
lea ecx, [ebp - 0x8c]
push ecx
lea edx, [ebp - 0xbc]
push edx
lea ecx, [ebp - 0xcc]
call fcn.1006e770
push str.health
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0x1b
call fcn.10020480
push str.health
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0x1c
call fcn.10020480
lea ecx, [ebp - 0x78]
call fcn.1001acc0
lea ecx, [edi + 0x50c]
mov byte [ebp - 4], 0x1e
lea eax, [ebp - 0x48]
cmp ecx, eax
je 0x10051634
mov byte [ebp - 0x20], 0
push dword [ebp - 0x20]
push eax
call fcn.10038bd0
lea ecx, [edi + 0x544]
mov byte [edi + 0x53d], 1
lea eax, [ebp - 0x60]
mov dl, 1
cmp ecx, eax
je 0x1005165d
mov byte [ebp - 0x20], 0
push dword [ebp - 0x20]
push eax
call fcn.10038bd0
mov dl, byte [edi + 0x53d]
mov esi, dword [ebp - 0xcc]
xor eax, eax
test dl, dl
mov ecx, 0xf
cmovne eax, ecx
mov dword [edi + 0x578], eax
add eax, 0x14
mov dword [edi + 0x4e4], eax
mov dword [edi + 0x4e8], eax
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0x20], eax
cmp esi, eax
je 0x100516b5
lea eax, [edi + 0x55c]
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0x28], eax
nop dword [eax]
push esi
mov ecx, eax
call fcn.1003f0d0
mov eax, dword [ebp - 0x28]
add esi, 0x18
cmp esi, edi
jne 0x100516a0
mov edi, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x1c], eax
cmp eax, ecx
je 0x1005177e
lea ecx, [edi + 0x56c]
nop
mov eax, dword [eax]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0xdc]
push eax
call fcn.1001f990
lea ecx, [edi + 0x56c]
mov esi, dword [eax]
lea eax, [ebp - 0x8c]
push eax
call fcn.1001f9a0
push esi
lea edx, [ebp - 0x18]
lea ecx, [ebp - 0x88]
push dword [eax]
call fcn.10020a80
add esp, 8
lea ecx, [edi + 0x56c]
mov esi, eax
lea eax, [ebp - 0x84]
push eax
call fcn.1001f990
mov ecx, dword [edi + 0x560]
sub ecx, dword [edi + 0x55c]
mov esi, dword [esi]
mov eax, dword [eax]
mov dword [ebp - 0x20], eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0x18], eax
jae 0x10051755
lea eax, [ebp - 0x18]
push eax
lea ecx, [edi + 0x56c]
call fcn.10032c60
cmp esi, dword [ebp - 0x20]
jne 0x10051766
mov eax, dword [edi + 0x538]
test eax, eax
je 0x10051766
call eax
mov eax, dword [ebp - 0x1c]
lea ecx, [edi + 0x56c]
add eax, 4
mov dword [ebp - 0x1c], eax
cmp eax, dword [ebp - 0x28]
jne 0x100516d0
lea ecx, [ebp - 0x78]
call fcn.1001f9b0
lea ecx, [ebp - 0x60]
call fcn.10020430
lea ecx, [ebp - 0x48]
call fcn.10020430
lea ecx, [ebp - 0xcc]
call fcn.1003f4d0
push fcn.10020430
push 2
push 0x18
lea eax, [ebp - 0xbc]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.10097d15
lea eax, [edi + 0x4d4]
mov dword [ebp - 0x1c], eax
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
lea ecx, [edi + 0x18]
call fcn.1006e740
push str.enemy
lea ecx, [ebp - 0xbc]
call fcn.10020480
push str.friendly
lea ecx, [ebp - 0xa4]
mov dword [ebp - 4], 0x1f
call fcn.10020480
lea eax, [ebp - 0x21]
mov dword [ebp - 4], 0x20
push eax
lea ecx, [ebp - 0x8c]
push ecx
lea edx, [ebp - 0xbc]
push edx
lea ecx, [ebp - 0xcc]
call fcn.1006e770
push str.custom_health
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0x21
call fcn.10020480
push str.custom_health_color
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0x22
call fcn.10020480
lea ecx, [ebp - 0x78]
call fcn.1001acc0
lea ecx, [edi + 0x2118]
mov byte [ebp - 4], 0x24
lea eax, [ebp - 0x48]
cmp ecx, eax
je 0x1005188f
mov byte [ebp - 0x20], 0
push dword [ebp - 0x20]
push eax
call fcn.10038bd0
lea ecx, [edi + 0x2150]
mov byte [edi + 0x2149], 1
lea eax, [ebp - 0x60]
mov dl, 1
cmp ecx, eax
je 0x100518b8
mov byte [ebp - 0x20], 0
push dword [ebp - 0x20]
push eax
call fcn.10038bd0
mov dl, byte [edi + 0x2149]
mov esi, dword [ebp - 0xcc]
xor eax, eax
test dl, dl
mov ecx, 0xf
cmovne eax, ecx
mov dword [edi + 0x2184], eax
add eax, 0x14
mov dword [edi + 0x20f0], eax
mov dword [edi + 0x20f4], eax
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0x20], eax
cmp esi, eax
je 0x1005190d
lea eax, [edi + 0x2168]
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0x28], eax
push esi
mov ecx, eax
call fcn.1003f0d0
mov eax, dword [ebp - 0x28]
add esi, 0x18
cmp esi, edi
jne 0x100518f8
mov edi, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x1c], eax
cmp eax, ecx
je 0x100519de
lea ecx, [edi + 0x2178]
nop word [eax + eax]
mov eax, dword [eax]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0xdc]
push eax
call fcn.1001f990
lea ecx, [edi + 0x2178]
mov esi, dword [eax]
lea eax, [ebp - 0x8c]
push eax
call fcn.1001f9a0
push esi
lea edx, [ebp - 0x18]
lea ecx, [ebp - 0x88]
push dword [eax]
call fcn.10020a80
add esp, 8
lea ecx, [edi + 0x2178]
mov esi, eax
lea eax, [ebp - 0x84]
push eax
call fcn.1001f990
mov ecx, dword [edi + 0x216c]
sub ecx, dword [edi + 0x2168]
mov esi, dword [esi]
mov eax, dword [eax]
mov dword [ebp - 0x20], eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0x18], eax
jae 0x100519b5
lea eax, [ebp - 0x18]
push eax
lea ecx, [edi + 0x2178]
call fcn.10032c60
cmp esi, dword [ebp - 0x20]
jne 0x100519c6
mov eax, dword [edi + 0x2144]
test eax, eax
je 0x100519c6
call eax
mov eax, dword [ebp - 0x1c]
lea ecx, [edi + 0x2178]
add eax, 4
mov dword [ebp - 0x1c], eax
cmp eax, dword [ebp - 0x28]
jne 0x10051930
lea ecx, [ebp - 0x78]
call fcn.1001f9b0
lea ecx, [ebp - 0x60]
call fcn.10020430
lea ecx, [ebp - 0x48]
call fcn.10020430
lea ecx, [ebp - 0xcc]
call fcn.1003f4d0
push fcn.10020430
push 2
push 0x18
lea eax, [ebp - 0xbc]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.10097d15
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10023c30
lea esi, [edi + 0x20e0]
lea ecx, [esi + 0x58]
push eax
call fcn.1006e740
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
lea ecx, [edi + 0x18]
call fcn.1006e740
mov esi, dword [0x100a5554]
lea ecx, [ebp - 0x48]
push str.custom_health_enemy
call fcn.10020480
push str.enemy_health_color
lea ecx, [ebp - 0x60]
mov dword [ebp - 4], 0x25
call fcn.10020480
lea ecx, [edi + 0x21f8]
mov byte [ebp - 4], 0x26
lea eax, [ebp - 0x60]
cmp ecx, eax
je 0x10051ab4
mov byte [ebp - 0x20], 0
push dword [ebp - 0x20]
push eax
call fcn.10038bd0
lea ecx, [edi + 0x21c0]
lea eax, [ebp - 0x48]
cmp ecx, eax
je 0x10051ace
mov byte [ebp - 0x20], 0
push dword [ebp - 0x20]
push eax
call fcn.10038bd0
lea ecx, [ebp - 0x60]
mov dword [edi + 0x2210], esi
mov dword [edi + 0x2214], 0
call fcn.10020430
lea ecx, [ebp - 0x48]
mov dword [ebp - 4], 0xffffffff
call fcn.10020430
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10023c30
push eax
lea ecx, [edi + 0x21e0]
call fcn.1006e740
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10023c70
push eax
lea ecx, [edi + 0x21e0]
call fcn.1006e740
lea eax, [edi + 0x2188]
mov dword [ebp - 0x1c], eax
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
lea ecx, [edi + 0x18]
call fcn.1006e740
mov esi, dword [0x100a5554]
lea ecx, [ebp - 0x48]
push str.custom_health_friendly
call fcn.10020480
push str.friendly_health_color
lea ecx, [ebp - 0x60]
mov dword [ebp - 4], 0x27
call fcn.10020480
lea ecx, [edi + 0x2288]
mov byte [ebp - 4], 0x28
lea eax, [ebp - 0x60]
cmp ecx, eax
je 0x10051ba5
mov byte [ebp - 0x20], 0
push dword [ebp - 0x20]
push eax
call fcn.10038bd0
lea ecx, [edi + 0x2250]
lea eax, [ebp - 0x48]
cmp ecx, eax
je 0x10051bbf
mov byte [ebp - 0x20], 0
push dword [ebp - 0x20]
push eax
call fcn.10038bd0
lea ecx, [ebp - 0x60]
mov dword [edi + 0x22a0], esi
mov dword [edi + 0x22a4], 0
call fcn.10020430
lea ecx, [ebp - 0x48]
mov dword [ebp - 4], 0xffffffff
call fcn.10020430
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10023c30
push eax
lea ecx, [edi + 0x2270]
call fcn.1006e740
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10023ca0
push eax
lea ecx, [edi + 0x2270]
call fcn.1006e740
lea eax, [edi + 0x2218]
mov dword [ebp - 0x1c], eax
lea esi, [edi + 0x18]
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
mov ecx, esi
call fcn.1006e740
push str.skeleton_friendly
lea ecx, [ebp - 0x48]
call fcn.10020480
push str.friendly_color
lea ecx, [ebp - 0x60]
mov dword [ebp - 4], 0x29
call fcn.10020480
lea eax, [edi + 0xbec]
mov byte [ebp - 4], 0x2a
lea ecx, [ebp - 0x60]
cmp eax, ecx
je 0x10051c94
mov byte [ebp - 0x20], 0
push dword [ebp - 0x20]
push ecx
mov ecx, eax
call fcn.10038bd0
lea eax, [edi + 0xbb4]
lea ecx, [ebp - 0x48]
cmp eax, ecx
je 0x10051cb0
mov byte [ebp - 0x20], 0
push dword [ebp - 0x20]
push ecx
mov ecx, eax
call fcn.10038bd0
lea ecx, [ebp - 0x60]
mov dword [edi + 0xc04], 0xffffffff
mov dword [edi + 0xc08], 0
call fcn.10020430
lea ecx, [ebp - 0x48]
mov dword [ebp - 4], 0xffffffff
call fcn.10020430
lea eax, [edi + 0xb7c]
mov dword [ebp - 0x1c], eax
mov dword [eax + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
mov ecx, esi
call fcn.1006e740
push str.money
lea ecx, [ebp - 0x290]
call fcn.10020480
push str.armor
lea ecx, [ebp - 0x278]
mov dword [ebp - 4], 0x2b
call fcn.10020480
push str.scoped
lea ecx, [ebp - 0x260]
mov byte [ebp - 4], 0x2c
call fcn.10020480
push str.flashed
lea ecx, [ebp - 0x248]
mov byte [ebp - 4], 0x2d
call fcn.10020480
push str.reloading
lea ecx, [ebp - 0x230]
mov byte [ebp - 4], 0x2e
call fcn.10020480
push str.bomb
lea ecx, [ebp - 0x218]
mov byte [ebp - 4], 0x2f
call fcn.10020480
push str.resolver
lea ecx, [ebp - 0x200]
mov byte [ebp - 4], 0x30
call fcn.10020480
lea eax, [ebp - 0x21]
mov dword [ebp - 4], 0x31
push eax
lea ecx, [ebp - 0x1e8]
push ecx
lea edx, [ebp - 0x290]
push edx
lea ecx, [ebp - 0xcc]
call fcn.1006e770
push 0x100a7918
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0x32
call fcn.10020480
push str.flags_enemy
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0x33
call fcn.10020480
lea ecx, [ebp - 0x78]
call fcn.1001acc0
mov byte [ebp - 4], 0x35
lea ecx, [edi + 0x5b4]
lea eax, [ebp - 0x48]
cmp ecx, eax
je 0x10051e10
mov byte [ebp - 0x20], 0
push dword [ebp - 0x20]
push eax
call fcn.10038bd0
lea ecx, [edi + 0x5ec]
mov byte [edi + 0x5e5], 1
lea eax, [ebp - 0x60]
mov dl, 1
cmp ecx, eax
je 0x10051e39
mov byte [ebp - 0x20], 0
push dword [ebp - 0x20]
push eax
call fcn.10038bd0
mov dl, byte [edi + 0x5e5]
xor eax, eax
mov ecx, 0xf
test dl, dl
cmovne eax, ecx
mov ecx, dword [ebp - 0xc8]
mov dword [edi + 0x620], eax
add eax, 0x14
mov dword [edi + 0x58c], eax
mov dword [edi + 0x590], eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0x20], eax
cmp eax, ecx
je 0x10051e98
mov esi, dword [ebp - 0x20]
lea eax, [edi + 0x604]
mov dword [ebp - 0x18], eax
mov edi, ecx
nop dword [eax + eax]
push esi
mov ecx, eax
call fcn.1003f0d0
mov eax, dword [ebp - 0x18]
add esi, 0x18
cmp esi, edi
jne 0x10051e80
mov edi, dword [ebp - 0x2c]
lea esi, [edi + 0x18]
mov ecx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x1c], eax
cmp eax, ecx
je 0x10051f63
lea ecx, [edi + 0x614]
mov eax, dword [eax]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0xdc]
push eax
call fcn.1001f990
lea ecx, [edi + 0x614]
mov esi, dword [eax]
lea eax, [ebp - 0x8c]
push eax
call fcn.1001f9a0
push esi
lea edx, [ebp - 0x18]
lea ecx, [ebp - 0x88]
push dword [eax]
call fcn.10020a80
add esp, 8
lea ecx, [edi + 0x614]
mov esi, eax
lea eax, [ebp - 0x84]
push eax
call fcn.1001f990
mov ecx, dword [edi + 0x608]
sub ecx, dword [edi + 0x604]
mov esi, dword [esi]
mov eax, dword [eax]
mov dword [ebp - 0x20], eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0x18], eax
jae 0x10051f37
lea eax, [ebp - 0x18]
push eax
lea ecx, [edi + 0x614]
call fcn.10032c60
cmp esi, dword [ebp - 0x20]
jne 0x10051f48
mov eax, dword [edi + 0x5e0]
test eax, eax
je 0x10051f48
call eax
mov eax, dword [ebp - 0x1c]
lea ecx, [edi + 0x614]
add eax, 4
mov dword [ebp - 0x1c], eax
cmp eax, dword [ebp - 0x28]
jne 0x10051eb2
lea esi, [edi + 0x18]
lea ecx, [ebp - 0x78]
call fcn.1001f9b0
lea ecx, [ebp - 0x60]
call fcn.10020430
lea ecx, [ebp - 0x48]
call fcn.10020430
lea ecx, [ebp - 0xcc]
call fcn.1003f4d0
push fcn.10020430
push 7
push 0x18
lea eax, [ebp - 0x290]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.10097d15
lea eax, [edi + 0x57c]
mov dword [ebp - 0x1c], eax
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
mov ecx, esi
call fcn.1006e740
push str.money
lea ecx, [ebp - 0x1e8]
call fcn.10020480
push str.armor
lea ecx, [ebp - 0x1d0]
mov dword [ebp - 4], 0x36
call fcn.10020480
push str.scoped
lea ecx, [ebp - 0x1b8]
mov byte [ebp - 4], 0x37
call fcn.10020480
push str.flashed
lea ecx, [ebp - 0x1a0]
mov byte [ebp - 4], 0x38
call fcn.10020480
push str.reloading
lea ecx, [ebp - 0x188]
mov byte [ebp - 4], 0x39
call fcn.10020480
push str.bomb
lea ecx, [ebp - 0x170]
mov byte [ebp - 4], 0x3a
call fcn.10020480
lea eax, [ebp - 0x21]
mov dword [ebp - 4], 0x3b
push eax
lea ecx, [ebp - 0x158]
push ecx
lea edx, [ebp - 0x1e8]
push edx
lea ecx, [ebp - 0xcc]
call fcn.1006e770
push 0x100a7954
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0x3c
call fcn.10020480
push str.flags_friendly
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0x3d
call fcn.10020480
lea ecx, [ebp - 0x78]
call fcn.1001acc0
lea ecx, [edi + 0x65c]
mov byte [ebp - 4], 0x3f
lea eax, [ebp - 0x48]
cmp ecx, eax
je 0x100520c3
mov byte [ebp - 0x20], 0
push dword [ebp - 0x20]
push eax
call fcn.10038bd0
lea ecx, [edi + 0x694]
mov byte [edi + 0x68d], 1
lea eax, [ebp - 0x60]
mov dl, 1
cmp ecx, eax
je 0x100520ec
mov byte [ebp - 0x20], 0
push dword [ebp - 0x20]
push eax
call fcn.10038bd0
mov dl, byte [edi + 0x68d]
xor eax, eax
mov ecx, 0xf
test dl, dl
cmovne eax, ecx
mov ecx, dword [ebp - 0xc8]
mov dword [edi + 0x6c8], eax
add eax, 0x14
mov dword [edi + 0x634], eax
mov dword [edi + 0x638], eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0x20], eax
cmp eax, ecx
je 0x10052148
mov esi, dword [ebp - 0x20]
lea eax, [edi + 0x6ac]
mov dword [ebp - 0x18], eax
mov edi, ecx
nop
push esi
mov ecx, eax
call fcn.1003f0d0
mov eax, dword [ebp - 0x18]
add esi, 0x18
cmp esi, edi
jne 0x10052130
mov edi, dword [ebp - 0x2c]
lea esi, [edi + 0x18]
mov ecx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x1c], eax
cmp eax, ecx
je 0x10052213
lea ecx, [edi + 0x6bc]
mov eax, dword [eax]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0xdc]
push eax
call fcn.1001f990
lea ecx, [edi + 0x6bc]
mov esi, dword [eax]
lea eax, [ebp - 0x8c]
push eax
call fcn.1001f9a0
push esi
lea edx, [ebp - 0x18]
lea ecx, [ebp - 0x88]
push dword [eax]
call fcn.10020a80
add esp, 8
lea ecx, [edi + 0x6bc]
mov esi, eax
lea eax, [ebp - 0x84]
push eax
call fcn.1001f990
mov ecx, dword [edi + 0x6b0]
sub ecx, dword [edi + 0x6ac]
mov esi, dword [esi]
mov eax, dword [eax]
mov dword [ebp - 0x20], eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0x18], eax
jae 0x100521e7
lea eax, [ebp - 0x18]
push eax
lea ecx, [edi + 0x6bc]
call fcn.10032c60
cmp esi, dword [ebp - 0x20]
jne 0x100521f8
mov eax, dword [edi + 0x688]
test eax, eax
je 0x100521f8
call eax
mov eax, dword [ebp - 0x1c]
lea ecx, [edi + 0x6bc]
add eax, 4
mov dword [ebp - 0x1c], eax
cmp eax, dword [ebp - 0x28]
jne 0x10052162
lea esi, [edi + 0x18]
lea ecx, [ebp - 0x78]
call fcn.1001f9b0
lea ecx, [ebp - 0x60]
call fcn.10020430
lea ecx, [ebp - 0x48]
call fcn.10020430
lea ecx, [ebp - 0xcc]
call fcn.1003f4d0
push fcn.10020430
push 6
push 0x18
lea eax, [ebp - 0x1e8]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.10097d15
lea eax, [edi + 0x624]
mov dword [ebp - 0x1c], eax
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
mov ecx, esi
call fcn.1006e740
push str.enemy
lea ecx, [ebp - 0xbc]
call fcn.10020480
push str.friendly
lea ecx, [ebp - 0xa4]
mov dword [ebp - 4], 0x40
call fcn.10020480
lea eax, [ebp - 0x21]
mov dword [ebp - 4], 0x41
push eax
lea ecx, [ebp - 0x8c]
push ecx
lea edx, [ebp - 0xbc]
push edx
lea ecx, [ebp - 0xcc]
call fcn.1006e770
push str.weapon
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0x42
call fcn.10020480
push str.weapon
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0x43
call fcn.10020480
lea ecx, [ebp - 0x78]
call fcn.1001acc0
lea ecx, [edi + 0x704]
mov byte [ebp - 4], 0x45
lea eax, [ebp - 0x48]
cmp ecx, eax
je 0x10052323
mov byte [ebp - 0x20], 0
push dword [ebp - 0x20]
push eax
call fcn.10038bd0
lea ecx, [edi + 0x73c]
mov byte [edi + 0x735], 1
lea eax, [ebp - 0x60]
mov dl, 1
cmp ecx, eax
je 0x1005234c
mov byte [ebp - 0x20], 0
push dword [ebp - 0x20]
push eax
call fcn.10038bd0
mov dl, byte [edi + 0x735]
xor eax, eax
mov ecx, 0xf
test dl, dl
cmovne eax, ecx
mov ecx, dword [ebp - 0xc8]
mov dword [edi + 0x770], eax
add eax, 0x14
mov dword [edi + 0x6dc], eax
mov dword [edi + 0x6e0], eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0x20], eax
cmp eax, ecx
je 0x100523a8
mov esi, dword [ebp - 0x20]
lea eax, [edi + 0x754]
mov dword [ebp - 0x18], eax
mov edi, ecx
nop
push esi
mov ecx, eax
call fcn.1003f0d0
mov eax, dword [ebp - 0x18]
add esi, 0x18
cmp esi, edi
jne 0x10052390
mov edi, dword [ebp - 0x2c]
lea esi, [edi + 0x18]
mov ecx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x1c], eax
cmp eax, ecx
je 0x10052473
lea ecx, [edi + 0x764]
mov eax, dword [eax]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0xdc]
push eax
call fcn.1001f990
lea ecx, [edi + 0x764]
mov esi, dword [eax]
lea eax, [ebp - 0x8c]
push eax
call fcn.1001f9a0
push esi
lea edx, [ebp - 0x18]
lea ecx, [ebp - 0x88]
push dword [eax]
call fcn.10020a80
add esp, 8
lea ecx, [edi + 0x764]
mov esi, eax
lea eax, [ebp - 0x84]
push eax
call fcn.1001f990
mov ecx, dword [edi + 0x758]
sub ecx, dword [edi + 0x754]
mov esi, dword [esi]
mov eax, dword [eax]
mov dword [ebp - 0x20], eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0x18], eax
jae 0x10052447
lea eax, [ebp - 0x18]
push eax
lea ecx, [edi + 0x764]
call fcn.10032c60
cmp esi, dword [ebp - 0x20]
jne 0x10052458
mov eax, dword [edi + 0x730]
test eax, eax
je 0x10052458
call eax
mov eax, dword [ebp - 0x1c]
lea ecx, [edi + 0x764]
add eax, 4
mov dword [ebp - 0x1c], eax
cmp eax, dword [ebp - 0x28]
jne 0x100523c2
lea esi, [edi + 0x18]
lea ecx, [ebp - 0x78]
call fcn.1001f9b0
lea ecx, [ebp - 0x60]
call fcn.10020430
lea ecx, [ebp - 0x48]
call fcn.10020430
lea ecx, [ebp - 0xcc]
call fcn.1003f4d0
push fcn.10020430
push 2
push 0x18
lea eax, [ebp - 0xbc]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.10097d15
lea eax, [edi + 0x6cc]
mov dword [ebp - 0x1c], eax
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
mov ecx, esi
call fcn.1006e740
push str.text
lea ecx, [ebp - 0x128]
call fcn.10020480
push str.icon
lea ecx, [ebp - 0x110]
mov dword [ebp - 4], 0x46
call fcn.10020480
lea eax, [ebp - 0x21]
mov dword [ebp - 4], 0x47
push eax
lea ecx, [ebp - 0xf8]
push ecx
lea edx, [ebp - 0x128]
push edx
lea ecx, [ebp - 0x74]
call fcn.1006e770
push str.weapon_mode
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0x48
call fcn.10020480
push 0x100a460c
lea ecx, [ebp - 0xa4]
mov byte [ebp - 4], 0x49
call fcn.10020480
lea ecx, [edi + 0x7ac]
mov byte [ebp - 4], 0x4a
lea eax, [ebp - 0x60]
cmp ecx, eax
je 0x1005257b
mov byte [ebp - 0x20], 0
push dword [ebp - 0x20]
push eax
call fcn.10038bd0
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x70]
mov byte [edi + 0x7dd], 0
mov dword [edi + 0x810], 0
mov dword [edi + 0x784], 0x14
mov dword [edi + 0x788], 0x14
mov dword [ebp - 0x20], eax
cmp eax, ecx
je 0x100525d8
mov esi, dword [ebp - 0x20]
lea eax, [edi + 0x7fc]
mov dword [ebp - 0x18], eax
mov edi, ecx
nop dword [eax + eax]
push esi
mov ecx, eax
call fcn.1003f0d0
mov eax, dword [ebp - 0x18]
add esi, 0x18
cmp esi, edi
jne 0x100525c0
mov edi, dword [ebp - 0x2c]
lea esi, [edi + 0x18]
mov ecx, dword [edi + 0x800]
mov eax, 0x2aaaaaab
sub ecx, dword [edi + 0x7fc]
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x10052601
mov dword [edi + 0x80c], 0
lea ecx, [ebp - 0xa4]
call fcn.10020430
lea ecx, [ebp - 0x60]
call fcn.10020430
lea ecx, [ebp - 0x74]
call fcn.1003f4d0
push fcn.10020430
push 2
push 0x18
lea eax, [ebp - 0x128]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.10097d15
lea eax, [edi + 0x774]
mov dword [ebp - 0x1c], eax
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
mov ecx, esi
call fcn.1006e740
push str.ammo
lea ecx, [ebp - 0x48]
call fcn.10020480
push str.ammo
lea ecx, [ebp - 0x60]
mov dword [ebp - 4], 0x4b
call fcn.10020480
lea ecx, [edi + 0x84c]
mov byte [ebp - 4], 0x4c
lea eax, [ebp - 0x48]
cmp ecx, eax
je 0x100526b5
mov byte [ebp - 0x20], 0
push dword [ebp - 0x20]
push eax
call fcn.10038bd0
lea ecx, [edi + 0x884]
mov byte [edi + 0x87d], 1
lea eax, [ebp - 0x60]
cmp ecx, eax
je 0x100526d6
mov byte [ebp - 0x20], 0
push dword [ebp - 0x20]
push eax
call fcn.10038bd0
lea ecx, [ebp - 0x60]
mov byte [edi + 0x880], 0
call fcn.10020430
lea ecx, [ebp - 0x48]
mov dword [ebp - 4], 0xffffffff
call fcn.10020430
lea eax, [edi + 0x814]
mov dword [ebp - 0x1c], eax
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
mov ecx, esi
call fcn.1006e740
mov esi, dword [0x100a5550]
lea ecx, [ebp - 0x80]
push str.ammo_color
call fcn.10020480
push str.color
lea ecx, [ebp - 0x60]
mov dword [ebp - 4], 0x4d
call fcn.10020480
lea ecx, [edi + 0x90c]
mov byte [ebp - 4], 0x4e
lea eax, [ebp - 0x60]
cmp ecx, eax
je 0x10052777
mov byte [ebp - 0x20], 0
push dword [ebp - 0x20]
push eax
call fcn.10038bd0
lea ecx, [edi + 0x8d4]
lea eax, [ebp - 0x80]
cmp ecx, eax
je 0x10052791
mov byte [ebp - 0x20], 0
push dword [ebp - 0x20]
push eax
call fcn.10038bd0
lea ecx, [ebp - 0x60]
mov dword [edi + 0x924], esi
mov dword [edi + 0x928], 0
call fcn.10020430
lea ecx, [ebp - 0x80]
mov dword [ebp - 4], 0xffffffff
call fcn.10020430
lea eax, [edi + 0x89c]
mov dword [ebp - 0x1c], eax
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
lea ecx, [edi + 0x18]
call fcn.1006e740
push 0x100a7980
lea ecx, [ebp - 0x48]
call fcn.10020480
push str.lby_update
lea ecx, [ebp - 0x60]
mov dword [ebp - 4], 0x4f
call fcn.10020480
lea ecx, [edi + 0x964]
mov byte [ebp - 4], 0x50
lea eax, [ebp - 0x48]
cmp ecx, eax
je 0x10052836
mov byte [ebp - 0x20], 0
push dword [ebp - 0x20]
push eax
call fcn.10038bd0
lea ecx, [edi + 0x99c]
mov byte [edi + 0x995], 1
lea eax, [ebp - 0x60]
cmp ecx, eax
je 0x10052857
mov byte [ebp - 0x20], 0
push dword [ebp - 0x20]
push eax
call fcn.10038bd0
lea ecx, [ebp - 0x60]
mov byte [edi + 0x998], 0
call fcn.10020430
lea ecx, [ebp - 0x48]
mov dword [ebp - 4], 0xffffffff
call fcn.10020430
lea eax, [edi + 0x92c]
mov dword [ebp - 0x1c], eax
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
lea ecx, [edi + 0x18]
call fcn.1006e740
mov esi, dword [0x100a5540]
lea ecx, [ebp - 0x80]
push str.lby_update_color
call fcn.10020480
push str.color
lea ecx, [ebp - 0x60]
mov dword [ebp - 4], 0x51
call fcn.10020480
lea ecx, [edi + 0xa24]
mov byte [ebp - 4], 0x52
lea eax, [ebp - 0x60]
cmp ecx, eax
je 0x100528f9
mov byte [ebp - 0x20], 0
push dword [ebp - 0x20]
push eax
call fcn.10038bd0
lea ecx, [edi + 0x9ec]
lea eax, [ebp - 0x80]
cmp ecx, eax
je 0x10052913
mov byte [ebp - 0x20], 0
push dword [ebp - 0x20]
push eax
call fcn.10038bd0
lea ecx, [ebp - 0x60]
mov dword [edi + 0xa3c], esi
mov dword [edi + 0xa40], 0
call fcn.10020430
lea ecx, [ebp - 0x80]
mov dword [ebp - 4], 0xffffffff
call fcn.10020430
lea eax, [edi + 0x9b4]
mov dword [ebp - 0x1c], eax
lea esi, [edi + 0x18]
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
mov ecx, esi
call fcn.1006e740
push str.enemy
lea ecx, [ebp - 0xbc]
call fcn.10020480
push str.friendly
lea ecx, [ebp - 0xa4]
mov dword [ebp - 4], 0x53
call fcn.10020480
lea eax, [ebp - 0x21]
mov dword [ebp - 4], 0x54
push eax
lea ecx, [ebp - 0x8c]
push ecx
lea edx, [ebp - 0xbc]
push edx
lea ecx, [ebp - 0xcc]
call fcn.1006e770
push str.skeleton
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0x55
call fcn.10020480
push str.skeleton
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0x56
call fcn.10020480
lea ecx, [ebp - 0x78]
call fcn.1001acc0
lea ecx, [edi + 0xa7c]
mov byte [ebp - 4], 0x58
lea eax, [ebp - 0x48]
cmp ecx, eax
je 0x10052a0e
mov byte [ebp - 0x20], 0
push dword [ebp - 0x20]
push eax
call fcn.10038bd0
lea ecx, [edi + 0xab4]
mov byte [edi + 0xaad], 1
lea eax, [ebp - 0x60]
mov dl, 1
cmp ecx, eax
je 0x10052a37
mov byte [ebp - 0x20], 0
push dword [ebp - 0x20]
push eax
call fcn.10038bd0
mov dl, byte [edi + 0xaad]
xor eax, eax
mov ecx, 0xf
test dl, dl
cmovne eax, ecx
mov ecx, dword [ebp - 0xc8]
mov dword [edi + 0xae8], eax
add eax, 0x14
mov dword [edi + 0xa54], eax
mov dword [edi + 0xa58], eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0x20], eax
cmp eax, ecx
je 0x10052a98
mov esi, dword [ebp - 0x20]
lea eax, [edi + 0xacc]
mov dword [ebp - 0x18], eax
mov edi, ecx
nop dword [eax]
push esi
mov ecx, eax
call fcn.1003f0d0
mov eax, dword [ebp - 0x18]
add esi, 0x18
cmp esi, edi
jne 0x10052a80
mov edi, dword [ebp - 0x2c]
lea esi, [edi + 0x18]
mov ecx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x1c], eax
cmp eax, ecx
je 0x10052b63
lea ecx, [edi + 0xadc]
mov eax, dword [eax]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0xdc]
push eax
call fcn.1001f990
lea ecx, [edi + 0xadc]
mov esi, dword [eax]
lea eax, [ebp - 0x8c]
push eax
call fcn.1001f9a0
push esi
lea edx, [ebp - 0x18]
lea ecx, [ebp - 0x88]
push dword [eax]
call fcn.10020a80
add esp, 8
lea ecx, [edi + 0xadc]
mov esi, eax
lea eax, [ebp - 0x84]
push eax
call fcn.1001f990
mov ecx, dword [edi + 0xad0]
sub ecx, dword [edi + 0xacc]
mov esi, dword [esi]
mov eax, dword [eax]
mov dword [ebp - 0x20], eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0x18], eax
jae 0x10052b37
lea eax, [ebp - 0x18]
push eax
lea ecx, [edi + 0xadc]
call fcn.10032c60
cmp esi, dword [ebp - 0x20]
jne 0x10052b48
mov eax, dword [edi + 0xaa8]
test eax, eax
je 0x10052b48
call eax
mov eax, dword [ebp - 0x1c]
lea ecx, [edi + 0xadc]
add eax, 4
mov dword [ebp - 0x1c], eax
cmp eax, dword [ebp - 0x28]
jne 0x10052ab2
lea esi, [edi + 0x18]
lea ecx, [ebp - 0x78]
call fcn.1001f9b0
lea ecx, [ebp - 0x60]
call fcn.10020430
lea ecx, [ebp - 0x48]
call fcn.10020430
lea ecx, [ebp - 0xcc]
call fcn.1003f4d0
push fcn.10020430
push 2
push 0x18
lea eax, [ebp - 0xbc]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.10097d15
lea eax, [edi + 0xa44]
mov dword [ebp - 0x1c], eax
mov dword [eax + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
mov ecx, esi
call fcn.1006e740
push str.skeleton_enemy
lea ecx, [ebp - 0xf8]
call fcn.10020480
push str.enemy_color
lea ecx, [ebp - 0x60]
mov dword [ebp - 4], 0x59
call fcn.10020480
lea ecx, [edi + 0xb5c]
mov byte [ebp - 4], 0x5a
lea eax, [ebp - 0x60]
cmp ecx, eax
je 0x10052c22
mov byte [ebp - 0x20], 0
push dword [ebp - 0x20]
push eax
call fcn.10038bd0
lea ecx, [edi + 0xb24]
lea eax, [ebp - 0xf8]
cmp ecx, eax
je 0x10052c3f
mov byte [ebp - 0x20], 0
push dword [ebp - 0x20]
push eax
call fcn.10038bd0
lea ecx, [ebp - 0x60]
mov dword [edi + 0xb74], 0xffffffff
mov dword [edi + 0xb78], 0
call fcn.10020430
lea ecx, [ebp - 0xf8]
mov dword [ebp - 4], 0xffffffff
call fcn.10020430
lea eax, [edi + 0xaec]
mov dword [ebp - 0x1c], eax
mov dword [eax + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
mov ecx, esi
call fcn.1006e740
push str.skeleton_friendly
lea ecx, [ebp - 0x48]
call fcn.10020480
push str.friendly_color
lea ecx, [ebp - 0xf8]
mov dword [ebp - 4], 0x5b
call fcn.10020480
lea eax, [ebp - 0xf8]
mov byte [ebp - 4], 0x5c
lea ecx, [edi + 0xbec]
cmp ecx, eax
je 0x10052cf0
mov byte [ebp - 0x20], 0
push dword [ebp - 0x20]
push eax
call fcn.10038bd0
lea eax, [ebp - 0x48]
lea ecx, [edi + 0xbb4]
cmp ecx, eax
je 0x10052d0a
mov byte [ebp - 0x20], 0
push dword [ebp - 0x20]
push eax
call fcn.10038bd0
lea ecx, [ebp - 0xf8]
mov dword [edi + 0xc04], 0xffffffff
mov dword [edi + 0xc08], 0
call fcn.10020430
lea ecx, [ebp - 0x48]
mov dword [ebp - 4], 0xffffffff
call fcn.10020430
lea eax, [edi + 0xb7c]
mov dword [ebp - 0x1c], eax
mov dword [eax + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
mov ecx, esi
call fcn.1006e740
push str.enemy
lea ecx, [ebp - 0xbc]
call fcn.10020480
push str.friendly
lea ecx, [ebp - 0xa4]
mov dword [ebp - 4], 0x5d
call fcn.10020480
lea eax, [ebp - 0x21]
mov dword [ebp - 4], 0x5e
push eax
lea ecx, [ebp - 0x8c]
push ecx
lea edx, [ebp - 0xbc]
push edx
lea ecx, [ebp - 0xcc]
call fcn.1006e770
push str.glow
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0x5f
call fcn.10020480
push str.glow
lea ecx, [ebp - 0xf8]
mov byte [ebp - 4], 0x60
call fcn.10020480
lea ecx, [ebp - 0x78]
call fcn.1001acc0
lea ecx, [edi + 0xc44]
mov byte [ebp - 4], 0x62
lea eax, [ebp - 0x60]
cmp ecx, eax
je 0x10052e0c
mov byte [ebp - 0x20], 0
push dword [ebp - 0x20]
push eax
call fcn.10038bd0
lea ecx, [edi + 0xc7c]
mov byte [edi + 0xc75], 1
lea eax, [ebp - 0xf8]
mov dl, 1
cmp ecx, eax
je 0x10052e38
mov byte [ebp - 0x20], 0
push dword [ebp - 0x20]
push eax
call fcn.10038bd0
mov dl, byte [edi + 0xc75]
xor eax, eax
mov ecx, 0xf
test dl, dl
cmovne eax, ecx
mov ecx, dword [ebp - 0xc8]
mov dword [edi + 0xcb0], eax
add eax, 0x14
mov dword [edi + 0xc1c], eax
mov dword [edi + 0xc20], eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0x20], eax
cmp eax, ecx
je 0x10052e98
mov esi, dword [ebp - 0x20]
lea eax, [edi + 0xc94]
mov dword [ebp - 0x18], eax
mov edi, ecx
nop word [eax + eax]
push esi
mov ecx, eax
call fcn.1003f0d0
mov eax, dword [ebp - 0x18]
add esi, 0x18
cmp esi, edi
jne 0x10052e80
mov edi, dword [ebp - 0x2c]
lea esi, [edi + 0x18]
mov ecx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x1c], eax
cmp eax, ecx
je 0x10052f63
lea ecx, [edi + 0xca4]
mov eax, dword [eax]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0xdc]
push eax
call fcn.1001f990
lea ecx, [edi + 0xca4]
mov esi, dword [eax]
lea eax, [ebp - 0x8c]
push eax
call fcn.1001f9a0
push esi
lea edx, [ebp - 0x18]
lea ecx, [ebp - 0x88]
push dword [eax]
call fcn.10020a80
add esp, 8
lea ecx, [edi + 0xca4]
mov esi, eax
lea eax, [ebp - 0x84]
push eax
call fcn.1001f990
mov ecx, dword [edi + 0xc98]
sub ecx, dword [edi + 0xc94]
mov esi, dword [esi]
mov eax, dword [eax]
mov dword [ebp - 0x20], eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0x18], eax
jae 0x10052f37
lea eax, [ebp - 0x18]
push eax
lea ecx, [edi + 0xca4]
call fcn.10032c60
cmp esi, dword [ebp - 0x20]
jne 0x10052f48
mov eax, dword [edi + 0xc70]
test eax, eax
je 0x10052f48
call eax
mov eax, dword [ebp - 0x1c]
lea ecx, [edi + 0xca4]
add eax, 4
mov dword [ebp - 0x1c], eax
cmp eax, dword [ebp - 0x28]
jne 0x10052eb2
lea esi, [edi + 0x18]
lea ecx, [ebp - 0x78]
call fcn.1001f9b0
lea ecx, [ebp - 0xf8]
call fcn.10020430
lea ecx, [ebp - 0x60]
call fcn.10020430
lea ecx, [ebp - 0xcc]
call fcn.1003f4d0
push fcn.10020430
push 2
push 0x18
lea eax, [ebp - 0xbc]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.10097d15
lea eax, [edi + 0xc0c]
mov dword [ebp - 0x1c], eax
mov dword [eax + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
mov ecx, esi
call fcn.1006e740
push str.glow_enemy
lea ecx, [ebp - 0x48]
call fcn.10020480
push str.enemy_color
lea ecx, [ebp - 0xf8]
mov dword [ebp - 4], 0x63
call fcn.10020480
lea eax, [ebp - 0xf8]
mov byte [ebp - 4], 0x64
push eax
lea ecx, [edi + 0xd24]
call fcn.10038ba0
lea eax, [ebp - 0x48]
push eax
lea ecx, [edi + 0xcec]
call fcn.10038ba0
lea ecx, [ebp - 0xf8]
mov dword [edi + 0xd3c], 0xff3cc896
mov dword [edi + 0xd40], 0
call fcn.10020430
lea ecx, [ebp - 0x48]
mov dword [ebp - 4], 0xffffffff
call fcn.10020430
lea eax, [edi + 0xcb4]
mov dword [ebp - 0x1c], eax
mov dword [eax + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
mov ecx, esi
call fcn.1006e710
push str.glow_friendly
lea ecx, [ebp - 0x140]
call fcn.10020480
push str.friendly_color
lea ecx, [ebp - 0xf8]
mov dword [ebp - 4], 0x65
call fcn.10020480
lea eax, [ebp - 0xf8]
mov byte [ebp - 4], 0x66
push eax
lea ecx, [edi + 0xdb4]
call fcn.10038ba0
lea eax, [ebp - 0x140]
push eax
lea ecx, [edi + 0xd7c]
call fcn.10038ba0
lea ecx, [ebp - 0xf8]
mov dword [edi + 0xdcc], 0xff3cc896
mov dword [edi + 0xdd0], 0
call fcn.10020430
lea ecx, [ebp - 0x140]
mov dword [ebp - 4], 0xffffffff
call fcn.10020430
lea eax, [edi + 0xd44]
mov dword [ebp - 0x1c], eax
mov dword [eax + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
mov ecx, esi
call fcn.1006e710
push 0x100a6d7c
lea ecx, [ebp - 0x110]
call fcn.1006eb40
push str.glow_blend
lea ecx, [ebp - 0x140]
mov dword [ebp - 4], 0x67
call fcn.10020480
push 0x100a460c
lea ecx, [ebp - 0xa4]
mov byte [ebp - 4], 0x68
call fcn.10020480
lea eax, [ebp - 0x140]
mov byte [ebp - 4], 0x69
push eax
lea ecx, [edi + 0xe0c]
call fcn.10038ba0
lea eax, [ebp - 0x110]
mov byte [edi + 0xe3d], 0
push eax
lea ecx, [edi + 0xe74]
mov dword [edi + 0xe8c], 0
mov dword [edi + 0xde4], 8
mov dword [edi + 0xde8], 8
mov dword [edi + 0xe48], 0x41200000
mov dword [edi + 0xe4c], 0x42c80000
mov dword [edi + 0xe44], 0x42700000
mov dword [edi + 0xe58], 0
mov dword [edi + 0xe50], 0x3f800000
call fcn.1006eb10
lea ecx, [ebp - 0xa4]
call fcn.10020430
lea ecx, [ebp - 0x140]
call fcn.10020430
lea ecx, [ebp - 0x110]
mov dword [ebp - 4], 0xffffffff
call fcn.1003f410
lea eax, [edi + 0xdd4]
mov dword [ebp - 0x1c], eax
mov dword [eax + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov ecx, dword [edi + 0x2c]
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
mov ecx, esi
call fcn.1006e710
lea ecx, [ebp - 0x61]
call fcn.100333d0
push str.local
lea ecx, [ebp - 0x1d0]
mov esi, eax
call fcn.10020480
push str.enemy
lea ecx, [ebp - 0x1b8]
mov dword [ebp - 4], 0x6a
call fcn.10020480
push str.friendly
lea ecx, [ebp - 0x1a0]
mov byte [ebp - 4], 0x6b
call fcn.10020480
push str.history
lea ecx, [ebp - 0x188]
mov byte [ebp - 4], 0x6c
call fcn.10020480
push str.fake
lea ecx, [ebp - 0x170]
mov byte [ebp - 4], 0x6d
call fcn.10020480
lea eax, [ebp - 0x158]
mov dword [ebp - 4], 0x6e
push eax
lea eax, [ebp - 0x1d0]
push eax
lea ecx, [ebp - 0xe0]
call fcn.1006e6f0
push esi
lea ecx, [ebp - 0x74]
push dword [eax + 4]
push dword [eax]
call fcn.1006e770
push str.chams_entity_selection
lea ecx, [ebp - 0x140]
mov byte [ebp - 4], 0x6f
call fcn.10020480
push str.chams_selection
lea ecx, [ebp - 0x110]
mov byte [ebp - 4], 0x70
call fcn.10020480
lea eax, [ebp - 0x140]
mov byte [ebp - 4], 0x71
push eax
lea ecx, [edi + 0xec8]
call fcn.10038ba0
lea eax, [ebp - 0x110]
mov byte [edi + 0xef9], 1
push eax
lea ecx, [edi + 0xf00]
call fcn.10038ba0
xor ecx, ecx
mov eax, 0xf
cmp byte [edi + 0xef9], cl
cmovne ecx, eax
mov dword [edi + 0xf2c], ecx
lea eax, [ecx + 0x14]
lea ecx, [ebp - 0x74]
mov dword [edi + 0xea0], eax
mov dword [edi + 0xea4], eax
call fcn.1001f980
lea ecx, [ebp - 0x74]
mov esi, eax
call fcn.1001f970
mov dword [ebp - 0x20], eax
lea ecx, [edi + 0xf18]
mov dword [ebp - 0x18], ecx
cmp esi, eax
je 0x100533c7
mov edi, ecx
push esi
mov ecx, edi
call fcn.1003f0a0
add esi, 0x18
cmp esi, dword [ebp - 0x20]
jne 0x100533b1
mov edi, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x18]
call fcn.10024bf0
test eax, eax
je 0x100533da
mov dword [edi + 0xf28], 0
lea ecx, [ebp - 0x110]
call fcn.10020430
lea ecx, [ebp - 0x140]
call fcn.10020430
lea ecx, [ebp - 0x74]
call fcn.1003f130
push fcn.10020430
push 5
push 0x18
lea eax, [ebp - 0x1d0]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.10097d15
lea eax, [edi + 0xe90]
mov dword [ebp - 0x1c], eax
mov dword [eax + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
lea ecx, [edi + 0x18]
call fcn.1006e710
push 0x100a7a30
lea ecx, [ebp - 0xf8]
lea esi, [edi + 0xf30]
call fcn.10020480
push str.chams_local
lea ecx, [ebp - 0x110]
mov dword [ebp - 4], 0x72
call fcn.10020480
lea eax, [ebp - 0xf8]
mov byte [ebp - 4], 0x73
push eax
lea ecx, [edi + 0xf68]
call fcn.10038ba0
lea eax, [ebp - 0x110]
mov byte [edi + 0xf99], 1
push eax
lea ecx, [edi + 0xfa0]
call fcn.10038ba0
lea ecx, [ebp - 0x110]
mov byte [edi + 0xf9c], 0
call fcn.10020430
lea ecx, [ebp - 0xf8]
mov dword [ebp - 4], 0xffffffff
call fcn.10020430
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10023cd0
lea ecx, [esi + 0x58]
push eax
call fcn.1006e710
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
lea ecx, [edi + 0x18]
call fcn.1006e710
lea ecx, [ebp - 0x21]
call fcn.100333d0
push str.material
lea ecx, [ebp - 0x1d0]
mov esi, eax
call fcn.10020480
push str.flat
lea ecx, [ebp - 0x1b8]
mov dword [ebp - 4], 0x74
call fcn.10020480
push str.metallic
lea ecx, [ebp - 0x1a0]
mov byte [ebp - 4], 0x75
call fcn.10020480
push str.shaded
lea ecx, [ebp - 0x188]
mov byte [ebp - 4], 0x76
call fcn.10020480
push str.glow
lea ecx, [ebp - 0x170]
mov byte [ebp - 4], 0x77
call fcn.10020480
lea eax, [ebp - 0x158]
mov dword [ebp - 4], 0x78
push eax
lea eax, [ebp - 0x1d0]
push eax
lea ecx, [ebp - 0xe0]
call fcn.1006e6f0
push esi
lea ecx, [ebp - 0x74]
push dword [eax + 4]
push dword [eax]
call fcn.1006e770
push str.chams_local_mat
lea ecx, [ebp - 0x140]
mov byte [ebp - 4], 0x79
call fcn.10020480
push str.chams_local_material
lea ecx, [ebp - 0x110]
mov byte [ebp - 4], 0x7a
call fcn.10020480
lea eax, [ebp - 0x140]
mov byte [ebp - 4], 0x7b
push eax
lea ecx, [edi + 0x1078]
call fcn.10038ba0
lea eax, [ebp - 0x110]
mov byte [edi + 0x10a9], 1
push eax
lea ecx, [edi + 0x10b0]
call fcn.10038ba0
xor ecx, ecx
mov eax, 0xf
cmp byte [edi + 0x10a9], cl
cmovne ecx, eax
mov dword [edi + 0x10dc], ecx
lea eax, [ecx + 0x14]
lea ecx, [ebp - 0x74]
mov dword [edi + 0x1050], eax
mov dword [edi + 0x1054], eax
call fcn.1001f980
lea ecx, [ebp - 0x74]
mov esi, eax
call fcn.1001f970
mov dword [ebp - 0x20], eax
lea ecx, [edi + 0x10c8]
mov dword [ebp - 0x18], ecx
cmp esi, eax
je 0x10053676
mov edi, ecx
nop word [eax + eax]
push esi
mov ecx, edi
call fcn.1003f0a0
add esi, 0x18
cmp esi, dword [ebp - 0x20]
jne 0x10053660
mov edi, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x18]
call fcn.10024bf0
test eax, eax
je 0x10053689
mov dword [edi + 0x10d8], 0
lea ecx, [ebp - 0x110]
call fcn.10020430
lea ecx, [ebp - 0x140]
call fcn.10020430
lea ecx, [ebp - 0x74]
call fcn.1003f130
push fcn.10020430
push 5
push 0x18
lea eax, [ebp - 0x1d0]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.10097d15
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10023cd0
lea esi, [edi + 0x1040]
lea ecx, [esi + 0x58]
push eax
call fcn.1006e710
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
lea ecx, [edi + 0x18]
call fcn.1006e710
push str.chams_local_col
lea ecx, [ebp - 0xf8]
lea esi, [edi + 0x10e0]
call fcn.10020480
push str.color
lea ecx, [ebp - 0x110]
mov dword [ebp - 4], 0x7c
call fcn.10020480
lea eax, [ebp - 0x110]
mov byte [ebp - 4], 0x7d
push eax
lea ecx, [edi + 0x1150]
call fcn.10038ba0
lea eax, [ebp - 0xf8]
push eax
lea ecx, [edi + 0x1118]
call fcn.10038ba0
lea ecx, [ebp - 0x110]
mov dword [edi + 0x1168], 0xffc8ffff
mov dword [edi + 0x116c], 0
call fcn.10020430
lea ecx, [ebp - 0xf8]
mov dword [ebp - 4], 0xffffffff
call fcn.10020430
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10023cd0
lea ecx, [esi + 0x58]
push eax
call fcn.1006e710
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
lea ecx, [edi + 0x18]
call fcn.1006e710
lea esi, [edi + 0x1170]
push str.chams_local2_col
lea ecx, [ebp - 0x60]
call fcn.10020480
push str.glow_color
lea ecx, [ebp - 0x110]
mov dword [ebp - 4], 0x7e
call fcn.10020480
lea eax, [ebp - 0x110]
mov byte [ebp - 4], 0x7f
push eax
lea ecx, [edi + 0x11e0]
call fcn.10038ba0
lea eax, [ebp - 0x60]
push eax
lea ecx, [edi + 0x11a8]
call fcn.10038ba0
lea ecx, [ebp - 0x110]
mov dword [edi + 0x11f8], 0xffc8ffff
mov dword [edi + 0x11fc], 0
call fcn.10020430
lea ecx, [ebp - 0x60]
mov dword [ebp - 4], 0xffffffff
call fcn.10020430
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10023ce0
lea ecx, [esi + 0x58]
push eax
call fcn.1006e710
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
lea ecx, [edi + 0x18]
call fcn.1006e710
push 0x100a6d7c
lea ecx, [ebp - 0x48]
lea esi, [edi + 0x1200]
call fcn.1006eb40
push str.chams_local_blend
lea ecx, [ebp - 0x110]
mov dword [ebp - 4], 0x80
call fcn.10020480
push 0x100a460c
lea ecx, [ebp - 0x140]
mov byte [ebp - 4], 0x81
call fcn.10020480
lea eax, [ebp - 0x110]
mov byte [ebp - 4], 0x82
push eax
lea ecx, [edi + 0x1238]
call fcn.10038ba0
lea eax, [ebp - 0x48]
mov byte [edi + 0x1269], 0
push eax
lea ecx, [edi + 0x12a0]
mov dword [edi + 0x12b8], 0
mov dword [edi + 0x1210], 8
mov dword [edi + 0x1214], 8
mov dword [edi + 0x1274], 0
mov dword [edi + 0x1278], 0x42c80000
mov dword [edi + 0x1270], 0x42c80000
mov dword [edi + 0x1284], 0
mov dword [edi + 0x127c], 0x3f800000
call fcn.1006eb10
lea ecx, [ebp - 0x140]
call fcn.10020430
lea ecx, [ebp - 0x110]
call fcn.10020430
lea ecx, [ebp - 0x48]
mov dword [ebp - 4], 0xffffffff
call fcn.1003f410
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10023cd0
lea ecx, [esi + 0x58]
push eax
call fcn.1006e710
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
lea ecx, [edi + 0x18]
call fcn.1006e710
push str.chams_local_scope
lea ecx, [ebp - 0xd8]
lea esi, [edi + 0x12bc]
call fcn.10020480
push str.blend_when_scoped
lea ecx, [ebp - 0x110]
mov dword [ebp - 4], 0x83
call fcn.10020480
lea eax, [ebp - 0xd8]
mov byte [ebp - 4], 0x84
push eax
lea ecx, [edi + 0x12f4]
call fcn.10038ba0
lea eax, [ebp - 0x110]
mov byte [edi + 0x1325], 1
push eax
lea ecx, [edi + 0x132c]
call fcn.10038ba0
lea ecx, [ebp - 0x110]
mov byte [edi + 0x1328], 0
call fcn.10020430
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0xffffffff
call fcn.10020430
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10023cd0
lea ecx, [esi + 0x58]
push eax
call fcn.1006e710
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
lea ecx, [edi + 0x18]
call fcn.1006e710
push 0x100a6d7c
lea ecx, [ebp - 0xa4]
lea esi, [edi + 0x1344]
call fcn.1006eb40
push str.chams_local_scope_blend
lea ecx, [ebp - 0x110]
mov dword [ebp - 4], 0x85
call fcn.10020480
mov byte [ebp - 4], 0x86
push 0x100a460c
lea ecx, [ebp - 0x140]
call fcn.10020480
lea eax, [ebp - 0x110]
mov byte [ebp - 4], 0x87
push eax
lea ecx, [edi + 0x137c]
call fcn.10038ba0
lea eax, [ebp - 0xa4]
mov byte [edi + 0x13ad], 0
push eax
lea ecx, [edi + 0x13e4]
mov dword [edi + 0x13fc], 0
mov dword [edi + 0x1354], 8
mov dword [edi + 0x1358], 8
mov dword [edi + 0x13b8], 0x41200000
mov dword [edi + 0x13bc], 0x42c80000
mov dword [edi + 0x13b4], 0x42c80000
mov dword [edi + 0x13c8], 0
mov dword [edi + 0x13c0], 0x3f800000
call fcn.1006eb10
lea ecx, [ebp - 0x140]
call fcn.10020430
lea ecx, [ebp - 0x110]
call fcn.10020430
lea ecx, [ebp - 0xa4]
mov dword [ebp - 4], 0xffffffff
call fcn.1003f410
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10023cd0
lea ecx, [esi + 0x58]
push eax
call fcn.1006e710
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
lea ecx, [edi + 0x18]
call fcn.1006e710
lea ecx, [ebp - 0x61]
call fcn.100333d0
push str.visible
lea ecx, [ebp - 0x158]
mov esi, eax
call fcn.10020480
push str.invisible
lea ecx, [ebp - 0x140]
mov dword [ebp - 4], 0x88
call fcn.10020480
lea eax, [ebp - 0x128]
mov dword [ebp - 4], 0x89
push eax
lea eax, [ebp - 0x158]
push eax
lea ecx, [ebp - 0xc8]
call fcn.1006e6f0
push esi
lea ecx, [ebp - 0x3c]
push dword [eax + 4]
push dword [eax]
call fcn.1006e770
push 0x100a7b38
lea ecx, [ebp - 0x110]
mov byte [ebp - 4], 0x8a
call fcn.10020480
mov byte [ebp - 4], 0x8b
push str.chams_enemy
lea ecx, [ebp - 0xa4]
call fcn.10020480
lea ecx, [ebp - 0x78]
call fcn.1001acc0
lea eax, [ebp - 0x110]
mov byte [ebp - 4], 0x8d
push eax
lea ecx, [edi + 0x1438]
call fcn.10038ba0
lea eax, [ebp - 0xa4]
mov byte [edi + 0x1469], 1
push eax
lea ecx, [edi + 0x1470]
call fcn.10038ba0
xor ecx, ecx
mov eax, 0xf
cmp byte [edi + 0x1469], cl
cmovne ecx, eax
mov dword [edi + 0x14a4], ecx
lea eax, [ecx + 0x14]
lea ecx, [ebp - 0x3c]
mov dword [edi + 0x1410], eax
mov dword [edi + 0x1414], eax
call fcn.1001f980
lea ecx, [ebp - 0x3c]
mov esi, eax
call fcn.1001f970
mov dword [ebp - 0x28], eax
cmp esi, eax
je 0x10053cf5
lea ecx, [edi + 0x1488]
mov dword [ebp - 0x20], ecx
mov edi, ecx
push esi
mov ecx, edi
call fcn.1003f0a0
add esi, 0x18
cmp esi, dword [ebp - 0x28]
jne 0x10053ce2
mov edi, dword [ebp - 0x2c]
lea ecx, [ebp - 0x78]
call fcn.1001f980
mov esi, eax
lea ecx, [ebp - 0x78]
mov dword [ebp - 0x1c], esi
call fcn.1001f970
mov dword [ebp - 0x20], eax
cmp esi, eax
je 0x10053dc1
lea ecx, [edi + 0x1498]
nop dword [eax + eax]
mov eax, dword [esi]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0xdc]
push eax
call fcn.1001f990
lea ecx, [edi + 0x1498]
mov esi, dword [eax]
lea eax, [ebp - 0x8c]
push eax
call fcn.1001f9a0
push esi
lea edx, [ebp - 0x18]
lea ecx, [ebp - 0x88]
push dword [eax]
call fcn.10020a80
add esp, 8
lea ecx, [edi + 0x1498]
mov esi, eax
lea eax, [ebp - 0x84]
push eax
call fcn.1001f990
push eax
mov ecx, esi
call fcn.1001f950
lea ecx, [edi + 0x1488]
mov byte [ebp - 0x21], al
call fcn.10024bf0
cmp dword [ebp - 0x18], eax
jae 0x10053d97
lea eax, [ebp - 0x18]
push eax
lea ecx, [edi + 0x1498]
call fcn.10032c30
cmp byte [ebp - 0x21], 0
je 0x10053da9
mov eax, dword [edi + 0x1464]
test eax, eax
je 0x10053da9
call eax
mov esi, dword [ebp - 0x1c]
lea ecx, [edi + 0x1498]
add esi, 4
mov dword [ebp - 0x1c], esi
cmp esi, dword [ebp - 0x20]
jne 0x10053d20
lea ecx, [ebp - 0x78]
call fcn.1001f9b0
lea ecx, [ebp - 0xa4]
call fcn.10020430
lea ecx, [ebp - 0x110]
call fcn.10020430
lea ecx, [ebp - 0x3c]
call fcn.1003f130
push fcn.10020430
push 2
push 0x18
lea eax, [ebp - 0x158]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.10097d15
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10023d00
lea esi, [edi + 0x1400]
lea ecx, [esi + 0x58]
push eax
call fcn.1006e710
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
lea ecx, [edi + 0x18]
call fcn.1006e710
lea ecx, [ebp - 0x21]
call fcn.100333d0
push str.material
lea ecx, [ebp - 0x1e8]
mov esi, eax
call fcn.10020480
push str.flat
lea ecx, [ebp - 0x1d0]
mov dword [ebp - 4], 0x8e
call fcn.10020480
push str.metallic
lea ecx, [ebp - 0x1b8]
mov byte [ebp - 4], 0x8f
call fcn.10020480
push str.shaded
lea ecx, [ebp - 0x1a0]
mov byte [ebp - 4], 0x90
call fcn.10020480
push str.glow
lea ecx, [ebp - 0x188]
mov byte [ebp - 4], 0x91
call fcn.10020480
push str.outline_glow
lea ecx, [ebp - 0x170]
mov byte [ebp - 4], 0x92
call fcn.10020480
lea eax, [ebp - 0x158]
mov dword [ebp - 4], 0x93
push eax
lea eax, [ebp - 0x1e8]
push eax
lea ecx, [ebp - 0xc8]
call fcn.1006e6f0
push esi
lea ecx, [ebp - 0x3c]
push dword [eax + 4]
push dword [eax]
call fcn.1006e770
push str.chams_enemy_mat
lea ecx, [ebp - 0x110]
mov byte [ebp - 4], 0x94
call fcn.10020480
push str.chams_enemy_material
lea ecx, [ebp - 0xa4]
mov byte [ebp - 4], 0x95
call fcn.10020480
lea eax, [ebp - 0x110]
mov byte [ebp - 4], 0x96
push eax
lea ecx, [edi + 0x14e0]
call fcn.10038ba0
lea eax, [ebp - 0xa4]
mov byte [edi + 0x1511], 1
push eax
lea ecx, [edi + 0x1518]
call fcn.10038ba0
xor ecx, ecx
mov eax, 0xf
cmp byte [edi + 0x1511], cl
cmovne ecx, eax
mov dword [edi + 0x1544], ecx
lea eax, [ecx + 0x14]
lea ecx, [ebp - 0x3c]
mov dword [edi + 0x14b8], eax
mov dword [edi + 0x14bc], eax
call fcn.1001f980
lea ecx, [ebp - 0x3c]
mov esi, eax
call fcn.1001f970
mov dword [ebp - 0x20], eax
lea ecx, [edi + 0x1530]
mov dword [ebp - 0x18], ecx
cmp esi, eax
je 0x10053fba
mov edi, ecx
push esi
mov ecx, edi
call fcn.1003f0a0
add esi, 0x18
cmp esi, dword [ebp - 0x20]
jne 0x10053fa4
mov edi, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x18]
call fcn.10024bf0
test eax, eax
je 0x10053fcd
mov dword [edi + 0x1540], 0
lea ecx, [ebp - 0xa4]
call fcn.10020430
lea ecx, [ebp - 0x110]
call fcn.10020430
lea ecx, [ebp - 0x3c]
call fcn.1003f130
push fcn.10020430
push 6
push 0x18
lea eax, [ebp - 0x1e8]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.10097d15
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10023d00
lea esi, [edi + 0x14a8]
lea ecx, [esi + 0x58]
push eax
call fcn.1006e710
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
lea ecx, [edi + 0x18]
call fcn.1006e710
push str.chams_enemy_vis
lea ecx, [ebp - 0x140]
lea esi, [edi + 0x1548]
call fcn.10020480
push str.color_visible
lea ecx, [ebp - 0xa4]
mov dword [ebp - 4], 0x97
call fcn.10020480
lea eax, [ebp - 0xa4]
mov byte [ebp - 4], 0x98
push eax
lea ecx, [edi + 0x15b8]
call fcn.10038ba0
lea eax, [ebp - 0x140]
push eax
lea ecx, [edi + 0x1580]
call fcn.10038ba0
lea ecx, [ebp - 0xa4]
mov dword [edi + 0x15d0], 0xff3cc896
mov dword [edi + 0x15d4], 0
call fcn.10020430
lea ecx, [ebp - 0x140]
mov dword [ebp - 4], 0xffffffff
call fcn.10020430
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10023d00
lea ecx, [esi + 0x58]
push eax
call fcn.1006e710
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
lea ecx, [edi + 0x18]
call fcn.1006e710
lea esi, [edi + 0x1668]
push str.chams_enemy_invis
lea ecx, [ebp - 0xf8]
call fcn.10020480
push str.color_invisible
lea ecx, [ebp - 0xa4]
mov dword [ebp - 4], 0x99
call fcn.10020480
lea eax, [ebp - 0xa4]
mov byte [ebp - 4], 0x9a
push eax
lea ecx, [edi + 0x16d8]
call fcn.10038ba0
lea eax, [ebp - 0xf8]
push eax
lea ecx, [edi + 0x16a0]
call fcn.10038ba0
lea ecx, [ebp - 0xa4]
mov dword [edi + 0x16f0], 0xff3cc896
mov dword [edi + 0x16f4], 0
call fcn.10020430
lea ecx, [ebp - 0xf8]
mov dword [ebp - 4], 0xffffffff
call fcn.10020430
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10023d00
lea ecx, [esi + 0x58]
push eax
call fcn.1006e710
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
lea ecx, [edi + 0x18]
call fcn.1006e710
push str.chams_enemy2_invis
lea ecx, [ebp - 0x60]
lea esi, [edi + 0x16f8]
call fcn.10020480
push str.glow_color
lea ecx, [ebp - 0xa4]
mov dword [ebp - 4], 0x9b
call fcn.10020480
lea eax, [ebp - 0xa4]
mov byte [ebp - 4], 0x9c
push eax
lea ecx, [edi + 0x1768]
call fcn.10038ba0
lea eax, [ebp - 0x60]
push eax
lea ecx, [edi + 0x1730]
call fcn.10038ba0
lea ecx, [ebp - 0xa4]
mov dword [edi + 0x1780], 0xffc8ffff
mov dword [edi + 0x1784], 0
call fcn.10020430
lea ecx, [ebp - 0x60]
mov dword [ebp - 4], 0xffffffff
call fcn.10020430
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10023d10
lea ecx, [esi + 0x58]
push eax
call fcn.1006e710
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
lea ecx, [edi + 0x18]
call fcn.1006e710
push 0x100a6d7c
lea ecx, [ebp - 0x80]
lea esi, [edi + 0x1788]
call fcn.1006eb40
push str.chams_enemy_blend
lea ecx, [ebp - 0xa4]
mov dword [ebp - 4], 0x9d
call fcn.10020480
push 0x100a460c
lea ecx, [ebp - 0x110]
mov byte [ebp - 4], 0x9e
call fcn.10020480
lea eax, [ebp - 0xa4]
mov byte [ebp - 4], 0x9f
push eax
lea ecx, [edi + 0x17c0]
call fcn.10038ba0
lea eax, [ebp - 0x80]
mov byte [edi + 0x17f1], 0
push eax
lea ecx, [edi + 0x1828]
mov dword [edi + 0x1840], 0
mov dword [edi + 0x1798], 8
mov dword [edi + 0x179c], 8
mov dword [edi + 0x17fc], 0x41200000
mov dword [edi + 0x1800], 0x42c80000
mov dword [edi + 0x17f8], 0x42c80000
mov dword [edi + 0x180c], 0
mov dword [edi + 0x1804], 0x3f800000
call fcn.1006eb10
lea ecx, [ebp - 0x110]
call fcn.10020430
lea ecx, [ebp - 0xa4]
call fcn.10020430
lea ecx, [ebp - 0x80]
mov dword [ebp - 4], 0xffffffff
call fcn.1003f410
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10023d00
lea ecx, [esi + 0x58]
push eax
call fcn.1006e710
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
lea ecx, [edi + 0x18]
call fcn.1006e710
lea ecx, [ebp - 0x61]
call fcn.100333d0
push str.visible
lea ecx, [ebp - 0x158]
mov esi, eax
call fcn.10020480
push str.invisible
lea ecx, [ebp - 0x140]
mov dword [ebp - 4], 0xa0
call fcn.10020480
lea eax, [ebp - 0x128]
mov dword [ebp - 4], 0xa1
push eax
lea eax, [ebp - 0x158]
push eax
lea ecx, [ebp - 0xc8]
call fcn.1006e6f0
push esi
lea ecx, [ebp - 0x74]
push dword [eax + 4]
push dword [eax]
call fcn.1006e770
push 0x100a7bec
lea ecx, [ebp - 0x110]
mov byte [ebp - 4], 0xa2
call fcn.10020480
push str.chams_friendly
lea ecx, [ebp - 0xa4]
mov byte [ebp - 4], 0xa3
call fcn.10020480
lea ecx, [ebp - 0x40]
call fcn.1001acc0
lea eax, [ebp - 0x110]
mov byte [ebp - 4], 0xa5
push eax
lea ecx, [edi + 0x1af0]
call fcn.10038ba0
lea eax, [ebp - 0xa4]
mov byte [edi + 0x1b21], 1
push eax
lea ecx, [edi + 0x1b28]
call fcn.10038ba0
xor ecx, ecx
mov eax, 0xf
cmp byte [edi + 0x1b21], cl
cmovne ecx, eax
mov dword [edi + 0x1b5c], ecx
lea eax, [ecx + 0x14]
lea ecx, [ebp - 0x74]
mov dword [edi + 0x1ac8], eax
mov dword [edi + 0x1acc], eax
call fcn.1001f980
lea ecx, [ebp - 0x74]
mov esi, eax
call fcn.1001f970
mov dword [ebp - 0x28], eax
cmp esi, eax
je 0x1005450b
lea ecx, [edi + 0x1b40]
mov dword [ebp - 0x20], ecx
mov edi, ecx
push esi
mov ecx, edi
call fcn.1003f0a0
add esi, 0x18
cmp esi, dword [ebp - 0x28]
jne 0x100544f8
mov edi, dword [ebp - 0x2c]
lea ecx, [ebp - 0x40]
call fcn.1001f980
mov esi, eax
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x1c], esi
call fcn.1001f970
mov dword [ebp - 0x20], eax
cmp esi, eax
je 0x100545d2
lea ecx, [edi + 0x1b50]
mov eax, dword [esi]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0xdc]
push eax
call fcn.1001f990
lea ecx, [edi + 0x1b50]
mov esi, dword [eax]
lea eax, [ebp - 0x8c]
push eax
call fcn.1001f9a0
push esi
lea edx, [ebp - 0x18]
lea ecx, [ebp - 0x88]
push dword [eax]
call fcn.10020a80
add esp, 8
lea ecx, [edi + 0x1b50]
mov esi, eax
lea eax, [ebp - 0x84]
push eax
call fcn.1001f990
push eax
mov ecx, esi
call fcn.1001f950
lea ecx, [edi + 0x1b40]
mov byte [ebp - 0x21], al
call fcn.10024bf0
cmp dword [ebp - 0x18], eax
jae 0x100545a8
lea eax, [ebp - 0x18]
push eax
lea ecx, [edi + 0x1b50]
call fcn.10032c30
cmp byte [ebp - 0x21], 0
je 0x100545ba
mov eax, dword [edi + 0x1b1c]
test eax, eax
je 0x100545ba
call eax
mov esi, dword [ebp - 0x1c]
lea ecx, [edi + 0x1b50]
add esi, 4
mov dword [ebp - 0x1c], esi
cmp esi, dword [ebp - 0x20]
jne 0x10054531
lea ecx, [ebp - 0x40]
call fcn.1001f9b0
lea ecx, [ebp - 0xa4]
call fcn.10020430
lea ecx, [ebp - 0x110]
call fcn.10020430
lea ecx, [ebp - 0x74]
call fcn.1003f130
push fcn.10020430
push 2
push 0x18
lea eax, [ebp - 0x158]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.10097d15
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10023d30
lea esi, [edi + 0x1ab8]
lea ecx, [esi + 0x58]
push eax
call fcn.1006e710
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
lea ecx, [edi + 0x18]
call fcn.1006e710
lea ecx, [ebp - 0x21]
call fcn.100333d0
push str.material
lea ecx, [ebp - 0x1e8]
mov esi, eax
call fcn.10020480
push str.flat
lea ecx, [ebp - 0x1d0]
mov dword [ebp - 4], 0xa6
call fcn.10020480
push str.metallic
lea ecx, [ebp - 0x1b8]
mov byte [ebp - 4], 0xa7
call fcn.10020480
push str.shaded
lea ecx, [ebp - 0x1a0]
mov byte [ebp - 4], 0xa8
call fcn.10020480
push str.glow
lea ecx, [ebp - 0x188]
mov byte [ebp - 4], 0xa9
call fcn.10020480
push str.outline_glow
lea ecx, [ebp - 0x170]
mov byte [ebp - 4], 0xaa
call fcn.10020480
lea eax, [ebp - 0x158]
mov dword [ebp - 4], 0xab
push eax
lea eax, [ebp - 0x1e8]
push eax
lea ecx, [ebp - 0xc8]
call fcn.1006e6f0
push esi
lea ecx, [ebp - 0x3c]
push dword [eax + 4]
push dword [eax]
call fcn.1006e770
push str.chams_friendly_mat
lea ecx, [ebp - 0x110]
mov byte [ebp - 4], 0xac
call fcn.10020480
push str.chams_friendly_material
lea ecx, [ebp - 0xa4]
mov byte [ebp - 4], 0xad
call fcn.10020480
lea eax, [ebp - 0x110]
mov byte [ebp - 4], 0xae
push eax
lea ecx, [edi + 0x1b98]
call fcn.10038ba0
lea eax, [ebp - 0xa4]
mov byte [edi + 0x1bc9], 1
push eax
lea ecx, [edi + 0x1bd0]
call fcn.10038ba0
xor ecx, ecx
mov eax, 0xf
cmp byte [edi + 0x1bc9], cl
cmovne ecx, eax
mov dword [edi + 0x1bfc], ecx
lea eax, [ecx + 0x14]
lea ecx, [ebp - 0x3c]
mov dword [edi + 0x1b70], eax
mov dword [edi + 0x1b74], eax
call fcn.1001f980
lea ecx, [ebp - 0x3c]
mov esi, eax
call fcn.1001f970
mov dword [ebp - 0x20], eax
lea ecx, [edi + 0x1be8]
mov dword [ebp - 0x18], ecx
cmp esi, eax
je 0x100547cb
mov edi, ecx
push esi
mov ecx, edi
call fcn.1003f0a0
add esi, 0x18
cmp esi, dword [ebp - 0x20]
jne 0x100547b5
mov edi, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x18]
call fcn.10024bf0
test eax, eax
je 0x100547de
mov dword [edi + 0x1bf8], 0
lea ecx, [ebp - 0xa4]
call fcn.10020430
lea ecx, [ebp - 0x110]
call fcn.10020430
lea ecx, [ebp - 0x3c]
call fcn.1003f130
push fcn.10020430
push 6
push 0x18
lea eax, [ebp - 0x1e8]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.10097d15
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10023d30
lea esi, [edi + 0x1b60]
lea ecx, [esi + 0x58]
push eax
call fcn.1006e710
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
lea ecx, [edi + 0x18]
call fcn.1006e710
push str.chams_friendly_vis
lea ecx, [ebp - 0x140]
lea esi, [edi + 0x1c00]
call fcn.10020480
push str.color_visible
lea ecx, [ebp - 0xa4]
mov dword [ebp - 4], 0xaf
call fcn.10020480
lea eax, [ebp - 0xa4]
mov byte [ebp - 4], 0xb0
push eax
lea ecx, [edi + 0x1c70]
call fcn.10038ba0
lea eax, [ebp - 0x140]
push eax
lea ecx, [edi + 0x1c38]
call fcn.10038ba0
lea ecx, [ebp - 0xa4]
mov dword [edi + 0x1c88], 0xff00c8ff
mov dword [edi + 0x1c8c], 0
call fcn.10020430
lea ecx, [ebp - 0x140]
mov dword [ebp - 4], 0xffffffff
call fcn.10020430
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10023d30
lea ecx, [esi + 0x58]
push eax
call fcn.1006e710
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
lea ecx, [edi + 0x18]
call fcn.1006e710
lea esi, [edi + 0x1c90]
push str.chams_friendly_invis
lea ecx, [ebp - 0xf8]
call fcn.10020480
push str.color_invisible
lea ecx, [ebp - 0xa4]
mov dword [ebp - 4], 0xb1
call fcn.10020480
lea eax, [ebp - 0xa4]
mov byte [ebp - 4], 0xb2
push eax
lea ecx, [edi + 0x1d00]
call fcn.10038ba0
lea eax, [ebp - 0xf8]
push eax
lea ecx, [edi + 0x1cc8]
call fcn.10038ba0
lea ecx, [ebp - 0xa4]
mov dword [edi + 0x1d18], 0xff0032ff
mov dword [edi + 0x1d1c], 0
call fcn.10020430
lea ecx, [ebp - 0xf8]
mov dword [ebp - 4], 0xffffffff
call fcn.10020430
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10023d30
lea ecx, [esi + 0x58]
push eax
call fcn.1006e710
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
lea ecx, [edi + 0x18]
call fcn.1006e710
push 0x100a6d7c
lea ecx, [ebp - 0x60]
lea esi, [edi + 0x1d20]
call fcn.1006eb40
push str.chams_friendly_blend
lea ecx, [ebp - 0xa4]
mov dword [ebp - 4], 0xb3
call fcn.10020480
push 0x100a460c
lea ecx, [ebp - 0x110]
mov byte [ebp - 4], 0xb4
call fcn.10020480
lea eax, [ebp - 0xa4]
mov byte [ebp - 4], 0xb5
push eax
lea ecx, [edi + 0x1d58]
call fcn.10038ba0
lea eax, [ebp - 0x60]
mov byte [edi + 0x1d89], 0
push eax
lea ecx, [edi + 0x1dc0]
mov dword [edi + 0x1dd8], 0
mov dword [edi + 0x1d30], 8
mov dword [edi + 0x1d34], 8
mov dword [edi + 0x1d94], 0x41200000
mov dword [edi + 0x1d98], 0x42c80000
mov dword [edi + 0x1d90], 0x42c80000
mov dword [edi + 0x1da4], 0
mov dword [edi + 0x1d9c], 0x3f800000
call fcn.1006eb10
lea ecx, [ebp - 0x110]
call fcn.10020430
lea ecx, [ebp - 0xa4]
call fcn.10020430
lea ecx, [ebp - 0x60]
mov dword [ebp - 4], 0xffffffff
call fcn.1003f410
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10023d30
lea ecx, [esi + 0x58]
push eax
call fcn.1006e710
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
lea ecx, [edi + 0x18]
call fcn.1006e710
push str.chams_history
lea ecx, [ebp - 0x80]
lea esi, [edi + 0x1844]
call fcn.10020480
push 0x100a7c8c
lea ecx, [ebp - 0xa4]
mov dword [ebp - 4], 0xb6
call fcn.10020480
lea eax, [ebp - 0x80]
mov byte [ebp - 4], 0xb7
push eax
lea ecx, [edi + 0x187c]
call fcn.10038ba0
lea eax, [ebp - 0xa4]
mov byte [edi + 0x18ad], 1
push eax
lea ecx, [edi + 0x18b4]
call fcn.10038ba0
lea ecx, [ebp - 0xa4]
mov byte [edi + 0x18b0], 0
call fcn.10020430
lea ecx, [ebp - 0x80]
mov dword [ebp - 4], 0xffffffff
call fcn.10020430
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10023d40
lea ecx, [esi + 0x58]
push eax
call fcn.1006e710
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
lea ecx, [edi + 0x18]
call fcn.1006e710
lea ecx, [ebp - 0x61]
call fcn.100333d0
push str.material
lea ecx, [ebp - 0x1e8]
mov esi, eax
call fcn.10020480
push str.flat
lea ecx, [ebp - 0x1d0]
mov dword [ebp - 4], 0xb8
call fcn.10020480
push str.metallic
lea ecx, [ebp - 0x1b8]
mov byte [ebp - 4], 0xb9
call fcn.10020480
push str.shaded
lea ecx, [ebp - 0x1a0]
mov byte [ebp - 4], 0xba
call fcn.10020480
push str.glow
lea ecx, [ebp - 0x188]
mov byte [ebp - 4], 0xbb
call fcn.10020480
push str.outline_glow
lea ecx, [ebp - 0x170]
mov byte [ebp - 4], 0xbc
call fcn.10020480
lea eax, [ebp - 0x158]
mov dword [ebp - 4], 0xbd
push eax
lea eax, [ebp - 0x1e8]
push eax
lea ecx, [ebp - 0xc8]
call fcn.1006e6f0
push esi
lea ecx, [ebp - 0x3c]
push dword [eax + 4]
push dword [eax]
call fcn.1006e770
push str.chams_enemy_history_mat
lea ecx, [ebp - 0x110]
mov byte [ebp - 4], 0xbe
call fcn.10020480
push str.chams_history_material
lea ecx, [ebp - 0xa4]
mov byte [ebp - 4], 0xbf
call fcn.10020480
lea eax, [ebp - 0x110]
mov byte [ebp - 4], 0xc0
push eax
lea ecx, [edi + 0x1904]
call fcn.10038ba0
lea eax, [ebp - 0xa4]
mov byte [edi + 0x1935], 1
push eax
lea ecx, [edi + 0x193c]
call fcn.10038ba0
xor ecx, ecx
mov eax, 0xf
cmp byte [edi + 0x1935], cl
cmovne ecx, eax
mov dword [edi + 0x1968], ecx
lea eax, [ecx + 0x14]
lea ecx, [ebp - 0x3c]
mov dword [edi + 0x18dc], eax
mov dword [edi + 0x18e0], eax
call fcn.1001f980
lea ecx, [ebp - 0x3c]
mov esi, eax
call fcn.1001f970
mov dword [ebp - 0x20], eax
lea ecx, [edi + 0x1954]
mov dword [ebp - 0x18], ecx
cmp esi, eax
je 0x10054d66
mov edi, ecx
nop dword [eax + eax]
push esi
mov ecx, edi
call fcn.1003f0a0
add esi, 0x18
cmp esi, dword [ebp - 0x20]
jne 0x10054d50
mov edi, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x18]
call fcn.10024bf0
test eax, eax
je 0x10054d79
mov dword [edi + 0x1964], 0
lea ecx, [ebp - 0xa4]
call fcn.10020430
lea ecx, [ebp - 0x110]
call fcn.10020430
lea ecx, [ebp - 0x3c]
call fcn.1003f130
push fcn.10020430
push 6
push 0x18
lea eax, [ebp - 0x1e8]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.10097d15
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10023d40
lea esi, [edi + 0x18cc]
lea ecx, [esi + 0x58]
push eax
call fcn.1006e710
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
lea ecx, [edi + 0x18]
call fcn.1006e710
push str.chams_history_col
lea ecx, [ebp - 0x140]
lea esi, [edi + 0x196c]
call fcn.10020480
push str.color
lea ecx, [ebp - 0xa4]
mov dword [ebp - 4], 0xc1
call fcn.10020480
lea eax, [ebp - 0xa4]
mov byte [ebp - 4], 0xc2
push eax
lea ecx, [edi + 0x19dc]
call fcn.10038ba0
lea eax, [ebp - 0x140]
push eax
lea ecx, [edi + 0x19a4]
call fcn.10038ba0
lea ecx, [ebp - 0xa4]
mov dword [edi + 0x19f4], 0xffc8ffff
mov dword [edi + 0x19f8], 0
call fcn.10020430
lea ecx, [ebp - 0x140]
mov dword [ebp - 4], 0xffffffff
call fcn.10020430
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10023d40
lea ecx, [esi + 0x58]
push eax
call fcn.1006e710
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
lea ecx, [edi + 0x18]
call fcn.1006e710
lea esi, [edi + 0x19fc]
push 0x100a6d7c
lea ecx, [ebp - 0xf8]
call fcn.1006eb40
push str.chams_history_blend
lea ecx, [ebp - 0xa4]
mov dword [ebp - 4], 0xc3
call fcn.10020480
push 0x100a460c
lea ecx, [ebp - 0x110]
mov byte [ebp - 4], 0xc4
call fcn.10020480
lea eax, [ebp - 0xa4]
mov byte [ebp - 4], 0xc5
push eax
lea ecx, [edi + 0x1a34]
call fcn.10038ba0
lea eax, [ebp - 0xf8]
mov byte [edi + 0x1a65], 0
push eax
lea ecx, [edi + 0x1a9c]
mov dword [edi + 0x1ab4], 0
mov dword [edi + 0x1a0c], 8
mov dword [edi + 0x1a10], 8
mov dword [edi + 0x1a70], 0x41200000
mov dword [edi + 0x1a74], 0x42c80000
mov dword [edi + 0x1a6c], 0x42c80000
mov dword [edi + 0x1a80], 0
mov dword [edi + 0x1a78], 0x3f800000
call fcn.1006eb10
lea ecx, [ebp - 0x110]
call fcn.10020430
lea ecx, [ebp - 0xa4]
call fcn.10020430
lea ecx, [ebp - 0xf8]
mov dword [ebp - 4], 0xffffffff
call fcn.1003f410
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10023d40
lea ecx, [esi + 0x58]
push eax
call fcn.1006e710
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
lea ecx, [edi + 0x18]
call fcn.1006e710
push str.chams_fake
lea ecx, [ebp - 0x60]
lea esi, [edi + 0x1ddc]
call fcn.10020480
push str.fake_chams
lea ecx, [ebp - 0xa4]
mov dword [ebp - 4], 0xc6
call fcn.10020480
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 0xc7
push eax
lea ecx, [edi + 0x1e14]
call fcn.10038ba0
lea eax, [ebp - 0xa4]
mov byte [edi + 0x1e45], 1
push eax
lea ecx, [edi + 0x1e4c]
call fcn.10038ba0
mov byte [edi + 0x1e48], 0
lea ecx, [ebp - 0xa4]
call fcn.10020430
lea ecx, [ebp - 0x60]
mov dword [ebp - 4], 0xffffffff
call fcn.10020430
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10023d50
lea ecx, [esi + 0x58]
push eax
call fcn.1006e710
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
lea ecx, [edi + 0x18]
call fcn.1006e710
lea ecx, [ebp - 0x21]
call fcn.100333d0
push str.material
lea ecx, [ebp - 0x1e8]
mov esi, eax
call fcn.10020480
push str.flat
lea ecx, [ebp - 0x1d0]
mov dword [ebp - 4], 0xc8
call fcn.10020480
push str.metallic
lea ecx, [ebp - 0x1b8]
mov byte [ebp - 4], 0xc9
call fcn.10020480
push str.shaded
lea ecx, [ebp - 0x1a0]
mov byte [ebp - 4], 0xca
call fcn.10020480
push str.glow
lea ecx, [ebp - 0x188]
mov byte [ebp - 4], 0xcb
call fcn.10020480
push str.outline_glow
lea ecx, [ebp - 0x170]
mov byte [ebp - 4], 0xcc
call fcn.10020480
lea eax, [ebp - 0x158]
mov dword [ebp - 4], 0xcd
push eax
lea eax, [ebp - 0x1e8]
push eax
lea ecx, [ebp - 0xc8]
call fcn.1006e6f0
push esi
lea ecx, [ebp - 0x3c]
push dword [eax + 4]
push dword [eax]
call fcn.1006e770
push str.chams_fake_mat
lea ecx, [ebp - 0x110]
mov byte [ebp - 4], 0xce
call fcn.10020480
push str.chams_material
lea ecx, [ebp - 0xa4]
mov byte [ebp - 4], 0xcf
call fcn.10020480
mov byte [ebp - 4], 0xd0
lea eax, [ebp - 0x110]
push eax
lea ecx, [edi + 0x1e9c]
call fcn.10038ba0
lea eax, [ebp - 0xa4]
mov byte [edi + 0x1ecd], 1
push eax
lea ecx, [edi + 0x1ed4]
call fcn.10038ba0
xor ecx, ecx
mov eax, 0xf
cmp byte [edi + 0x1ecd], cl
cmovne ecx, eax
mov dword [edi + 0x1f00], ecx
lea eax, [ecx + 0x14]
lea ecx, [ebp - 0x3c]
mov dword [edi + 0x1e74], eax
mov dword [edi + 0x1e78], eax
call fcn.1001f980
lea ecx, [ebp - 0x3c]
mov esi, eax
call fcn.1001f970
mov dword [ebp - 0x20], eax
lea ecx, [edi + 0x1eec]
mov dword [ebp - 0x18], ecx
cmp esi, eax
je 0x10055236
mov edi, ecx
nop dword [eax]
push esi
mov ecx, edi
call fcn.1003f0a0
add esi, 0x18
cmp esi, dword [ebp - 0x20]
jne 0x10055220
mov edi, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x18]
call fcn.10024bf0
test eax, eax
je 0x10055249
mov dword [edi + 0x1efc], 0
lea ecx, [ebp - 0xa4]
call fcn.10020430
lea ecx, [ebp - 0x110]
call fcn.10020430
lea ecx, [ebp - 0x3c]
call fcn.1003f130
push fcn.10020430
push 6
push 0x18
lea eax, [ebp - 0x1e8]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.10097d15
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10023d50
lea esi, [edi + 0x1e64]
lea ecx, [esi + 0x58]
push eax
call fcn.1006e710
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
lea ecx, [edi + 0x18]
call fcn.1006e710
push str.chams_fake_col
lea ecx, [ebp - 0x140]
lea esi, [edi + 0x1f04]
call fcn.10020480
push str.color
lea ecx, [ebp - 0xa4]
mov dword [ebp - 4], 0xd1
call fcn.10020480
lea eax, [ebp - 0xa4]
mov byte [ebp - 4], 0xd2
push eax
lea ecx, [edi + 0x1f74]
call fcn.10038ba0
lea eax, [ebp - 0x140]
push eax
lea ecx, [edi + 0x1f3c]
call fcn.10038ba0
lea ecx, [ebp - 0xa4]
mov dword [edi + 0x1f8c], 0xff00c8ff
mov dword [edi + 0x1f90], 0
call fcn.10020430
lea ecx, [ebp - 0x140]
mov dword [ebp - 4], 0xffffffff
call fcn.10020430
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10023d50
lea ecx, [esi + 0x58]
push eax
call fcn.1006e710
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
lea ecx, [edi + 0x18]
call fcn.1006e710
add edi, 0x1f94
push str.chams_fake_glow_col
lea ecx, [ebp - 0xf8]
call fcn.10020480
push str.glow_color
lea ecx, [ebp - 0xa4]
mov dword [ebp - 4], 0xd3
call fcn.10020480
mov esi, dword [ebp - 0x2c]
lea eax, [ebp - 0xa4]
push eax
mov byte [ebp - 4], 0xd4
lea ecx, [esi + 0x2004]
call fcn.10038ba0
lea eax, [ebp - 0xf8]
push eax
lea ecx, [esi + 0x1fcc]
call fcn.10038ba0
lea ecx, [ebp - 0xa4]
mov dword [esi + 0x201c], 0xff00c8ff
mov dword [esi + 0x2020], 0
call fcn.10020430
lea ecx, [ebp - 0xf8]
mov dword [ebp - 4], 0xffffffff
call fcn.10020430
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10023d50
push eax
lea ecx, [edi + 0x58]
call fcn.1006e710
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10023d60
push eax
lea ecx, [edi + 0x58]
call fcn.1006e710
mov dword [ebp - 0x1c], edi
mov dword [edi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0x109
add eax, 0xc
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [esi + 0x2c]
mov dword [eax + 0x1c], ecx
lea eax, [ebp - 0x1c]
push eax
lea ecx, [esi + 0x18]
call fcn.1006e710
push 0x100a6d7c
lea ecx, [ebp - 0x60]
call fcn.1006eb40
push str.chams_fake_blend
lea ecx, [ebp - 0xa4]
mov dword [ebp - 4], 0xd5
call fcn.10020480
push 0x100a460c
lea ecx, [ebp - 0x110]
mov byte [ebp - 4], 0xd6
call fcn.10020480
lea eax, [ebp - 0xa4]
mov byte [ebp - 4], 0xd7
push eax
lea ecx, [esi + 0x205c]
call fcn.10038ba0
lea eax, [ebp - 0x60]
mov byte [esi + 0x208d], 0
mov dword [esi + 0x20dc], 0
mov dword [esi + 0x2034], 8
mov dword [esi + 0x2038], 8
mov dword [esi + 0x2098], 0x41200000
mov dword [esi + 0x209c], 0x42c80000
mov dword [esi + 0x2094], 0x42c80000
mov dword [esi + 0x20a8], 0
mov dword [esi + 0x20a0], 0x3f800000
push eax
lea ecx, [esi + 0x20c4]
call fcn.1006eb10
lea ecx, [ebp - 0x110]
call fcn.10020430
lea ecx, [ebp - 0xa4]
call fcn.10020430
lea ecx, [ebp - 0x60]
mov dword [ebp - 4], 0xffffffff
call fcn.1003f410
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10023d50
push eax
lea ecx, [esi + 0x207c]
call fcn.1006e710
lea eax, [esi + 0x2024]
mov dword [ebp - 0x18], eax
lea ecx, [esi + 0x18]
mov dword [eax + 0x18], 1
mov edx, dword [ebp - 0x18]
imul eax, dword [edx + 0x18], 0x109
add eax, 0xc
mov dword [edx + 4], eax
mov eax, dword [ebp - 0x18]
mov dword [eax + 0xc], 0xf5
mov eax, dword [ebp - 0x18]
mov edx, dword [esi + 0x2c]
mov dword [eax + 0x1c], edx
lea eax, [ebp - 0x18]
push eax
call fcn.1006e710
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.10097cc9
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret