Function at 0x10065990
Capabilities:
Access peb ldr_data
Check for peb ntglobalflag flag
Contain obfuscated stackstrings
Get number of processors
Get process heap flags
Get process heap force flags
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 0x100cb207
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x380
mov eax, dword [0x100e7008]
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 - 0x34], edi
push str.players
lea ecx, [ebp - 0x50]
call fcn.1002d340
lea eax, [ebp - 0x50]
mov dword [ebp - 4], 0
push eax
mov ecx, edi
call fcn.10052440
lea ecx, [ebp - 0x50]
mov dword [ebp - 4], 1
call fcn.1002d2f0
push str.teammates
lea ecx, [ebp - 0x68]
mov dword [ebp - 4], 0xffffffff
call fcn.1002d340
push str.teammates
lea ecx, [ebp - 0x50]
mov dword [ebp - 4], 2
call fcn.1002d340
lea eax, [ebp - 0x68]
mov byte [ebp - 4], 3
push eax
lea ecx, [edi + 0x68]
call fcn.10052440
lea eax, [ebp - 0x50]
mov byte [edi + 0x99], 1
push eax
lea ecx, [edi + 0xa0]
call fcn.10052440
mov byte [edi + 0x9c], 0
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 4
call fcn.1002d2f0
lea ecx, [ebp - 0x68]
mov dword [ebp - 4], 5
call fcn.1002d2f0
mov dword [ebp - 4], 0xffffffff
lea eax, [edi + 0x30]
mov dword [ebp - 0x1c], eax
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049580
push str.dormant
lea ecx, [ebp - 0x68]
call fcn.1002d340
push str.dormant
lea ecx, [ebp - 0x50]
mov dword [ebp - 4], 6
call fcn.1002d340
lea eax, [ebp - 0x68]
mov byte [ebp - 4], 7
push eax
lea ecx, [edi + 0x3ac]
call fcn.10052440
lea eax, [ebp - 0x50]
mov byte [edi + 0x3dd], 1
push eax
lea ecx, [edi + 0x3e4]
call fcn.10052440
mov byte [edi + 0x3e0], 0
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x50]
call fcn.1002d2f0
lea ecx, [ebp - 0x68]
mov dword [ebp - 4], 9
call fcn.1002d2f0
mov dword [ebp - 4], 0xffffffff
lea eax, [edi + 0x374]
mov dword [ebp - 0x1c], eax
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049580
push 0x100d63e0
lea ecx, [ebp - 0x68]
call fcn.1002d340
push str.bounding_box
lea ecx, [ebp - 0x50]
mov dword [ebp - 4], 0xa
call fcn.1002d340
lea eax, [ebp - 0x68]
mov byte [ebp - 4], 0xb
push eax
lea ecx, [edi + 0xf0]
call fcn.10052440
lea eax, [ebp - 0x50]
mov byte [edi + 0x121], 1
push eax
lea ecx, [edi + 0x128]
call fcn.10052440
mov byte [edi + 0x124], 0
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0xc
call fcn.1002d2f0
lea ecx, [ebp - 0x68]
mov dword [ebp - 4], 0xd
call fcn.1002d2f0
mov dword [ebp - 4], 0xffffffff
lea eax, [edi + 0xb8]
mov dword [ebp - 0x1c], eax
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049580
push str.box_enemy
lea ecx, [ebp - 0x68]
lea esi, [edi + 0x140]
call fcn.1002d340
push str.bounding_box_color
lea ecx, [ebp - 0x50]
mov dword [ebp - 4], 0xe
call fcn.1002d340
mov byte [ebp - 4], 0xf
lea eax, [ebp - 0x50]
mov dword [ebp - 0x1c], 0xb4ffffff
push eax
lea ecx, [edi + 0x1b0]
call fcn.10052440
lea eax, [ebp - 0x68]
push eax
lea ecx, [edi + 0x178]
call fcn.10052440
mov eax, dword [ebp - 0x1c]
mov dword [edi + 0x1c8], eax
mov dword [edi + 0x1e0], 0
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0x10
call fcn.1002d2f0
lea ecx, [ebp - 0x68]
mov dword [ebp - 4], 0x11
call fcn.1002d2f0
lea eax, [ebp - 0x24]
mov dword [ebp - 4], 0xffffffff
lea ecx, [esi + 0x58]
mov dword [ebp - 0x24], 0x100376e0
push eax
call fcn.10049580
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049580
push 0x100d5af8
lea ecx, [ebp - 0x68]
lea esi, [edi + 0x11e0]
call fcn.1008e3d0
push str.box_esp_alpha
lea ecx, [ebp - 0x50]
mov dword [ebp - 4], 0x12
call fcn.1002d340
push str.box_esp_alpha
lea ecx, [ebp - 0x178]
mov byte [ebp - 4], 0x13
call fcn.1002d340
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x14
push eax
lea ecx, [edi + 0x1218]
call fcn.10052440
lea eax, [ebp - 0x68]
mov byte [edi + 0x1249], 0
push eax
lea ecx, [edi + 0x1280]
mov dword [edi + 0x1298], 0
mov dword [edi + 0x11f0], 8
mov dword [edi + 0x11f4], 8
mov dword [edi + 0x1254], 0
mov dword [edi + 0x1258], 0x437f0000
mov dword [edi + 0x1250], 0x432a0000
mov dword [edi + 0x1264], 0
mov dword [edi + 0x125c], 0x3f800000
call fcn.1008e3a0
lea ecx, [ebp - 0x178]
mov byte [ebp - 4], 0x15
call fcn.1002d2f0
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0x16
call fcn.1002d2f0
lea ecx, [ebp - 0x68]
mov dword [ebp - 4], 0x17
call fcn.100591a0
lea eax, [ebp - 0x24]
mov dword [ebp - 4], 0xffffffff
lea ecx, [esi + 0x58]
mov dword [ebp - 0x24], 0x100376e0
push eax
call fcn.10049580
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049580
push str.health
lea ecx, [ebp - 0x68]
call fcn.1002d340
push str.health_bar
lea ecx, [ebp - 0x50]
mov dword [ebp - 4], 0x18
call fcn.1002d340
lea eax, [ebp - 0x68]
mov byte [ebp - 4], 0x19
push eax
lea ecx, [edi + 0x8bc]
call fcn.10052440
lea eax, [ebp - 0x50]
mov byte [edi + 0x8ed], 1
push eax
lea ecx, [edi + 0x8f4]
call fcn.10052440
mov byte [edi + 0x8f0], 0
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0x1a
call fcn.1002d2f0
lea ecx, [ebp - 0x68]
mov dword [ebp - 4], 0x1b
call fcn.1002d2f0
mov dword [ebp - 4], 0xffffffff
lea eax, [edi + 0x884]
mov dword [ebp - 0x1c], eax
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049580
push str.name
lea ecx, [ebp - 0x68]
call fcn.1002d340
push str.name_esp
lea ecx, [ebp - 0x50]
mov dword [ebp - 4], 0x1c
call fcn.1002d340
lea eax, [ebp - 0x68]
mov byte [ebp - 4], 0x1d
push eax
lea ecx, [edi + 0x6bc]
call fcn.10052440
lea eax, [ebp - 0x50]
mov byte [edi + 0x6ed], 1
push eax
lea ecx, [edi + 0x6f4]
call fcn.10052440
mov byte [edi + 0x6f0], 0
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0x1e
call fcn.1002d2f0
lea ecx, [ebp - 0x68]
mov dword [ebp - 4], 0x1f
call fcn.1002d2f0
mov dword [ebp - 4], 0xffffffff
lea eax, [edi + 0x684]
mov dword [ebp - 0x1c], eax
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049580
push str.name_color
lea ecx, [ebp - 0x68]
lea esi, [edi + 0x70c]
call fcn.1002d340
push str.name_esp_color
lea ecx, [ebp - 0x50]
mov dword [ebp - 4], 0x20
call fcn.1002d340
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x21
push eax
lea ecx, [edi + 0x77c]
mov dword [ebp - 0x1c], 0xffffffff
call fcn.10052440
lea eax, [ebp - 0x68]
push eax
lea ecx, [edi + 0x744]
call fcn.10052440
mov eax, dword [ebp - 0x1c]
mov dword [edi + 0x794], eax
mov dword [edi + 0x7ac], 0
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0x22
call fcn.1002d2f0
lea ecx, [ebp - 0x68]
mov dword [ebp - 4], 0x23
call fcn.1002d2f0
lea eax, [ebp - 0x24]
mov dword [ebp - 4], 0xffffffff
lea ecx, [esi + 0x58]
mov dword [ebp - 0x24], 0x100376f0
push eax
call fcn.10049580
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049580
push 0x100d5af8
lea ecx, [ebp - 0x68]
lea esi, [edi + 0x1fc]
call fcn.1008e3d0
push str.name_esp_alpha
lea ecx, [ebp - 0x50]
mov dword [ebp - 4], 0x24
call fcn.1002d340
push str.name_esp_alpha
lea ecx, [ebp - 0x178]
mov byte [ebp - 4], 0x25
call fcn.1002d340
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x26
push eax
lea ecx, [edi + 0x234]
call fcn.10052440
lea eax, [ebp - 0x68]
mov byte [edi + 0x265], 0
push eax
lea ecx, [edi + 0x29c]
mov dword [edi + 0x2b4], 0
mov dword [edi + 0x20c], 8
mov dword [edi + 0x210], 8
mov dword [edi + 0x270], 0
mov dword [edi + 0x274], 0x437f0000
mov dword [edi + 0x26c], 0x43160000
mov dword [edi + 0x280], 0
mov dword [edi + 0x278], 0x3f800000
call fcn.1008e3a0
lea ecx, [ebp - 0x178]
mov byte [ebp - 4], 0x27
call fcn.1002d2f0
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0x28
call fcn.1002d2f0
lea ecx, [ebp - 0x68]
mov dword [ebp - 4], 0x29
call fcn.100591a0
lea eax, [ebp - 0x24]
mov dword [ebp - 4], 0xffffffff
lea ecx, [esi + 0x58]
mov dword [ebp - 0x24], 0x100376f0
push eax
call fcn.10049580
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 0
lea esi, [edi + 0x18]
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049580
push str.money
lea ecx, [ebp - 0x390]
call fcn.1002d340
push str.reload
lea ecx, [ebp - 0x378]
mov dword [ebp - 4], 0x2a
call fcn.1002d340
mov byte [ebp - 4], 0x2b
push str.armor
lea ecx, [ebp - 0x360]
call fcn.1002d340
push str.flashed
lea ecx, [ebp - 0x348]
mov byte [ebp - 4], 0x2c
call fcn.1002d340
push str.zoom
lea ecx, [ebp - 0x330]
mov byte [ebp - 4], 0x2d
call fcn.1002d340
push str.bomb
lea ecx, [ebp - 0x318]
mov byte [ebp - 4], 0x2e
call fcn.1002d340
push str.fake
lea ecx, [ebp - 0x300]
mov byte [ebp - 4], 0x2f
call fcn.1002d340
push str.lethal
lea ecx, [ebp - 0x2e8]
mov byte [ebp - 4], 0x30
call fcn.1002d340
push str.tickbase
lea ecx, [ebp - 0x2d0]
mov byte [ebp - 4], 0x31
call fcn.1002d340
push str.____resolver_mode
lea ecx, [ebp - 0x2b8]
mov byte [ebp - 4], 0x32
call fcn.1002d340
push str.____resolve_chance
lea ecx, [ebp - 0x2a0]
mov byte [ebp - 4], 0x33
call fcn.1002d340
push str.latency
lea ecx, [ebp - 0x288]
mov byte [ebp - 4], 0x34
call fcn.1002d340
push str.distortion
lea ecx, [ebp - 0x270]
mov byte [ebp - 4], 0x35
call fcn.1002d340
push 0x100d64dc
lea ecx, [ebp - 0x258]
mov byte [ebp - 4], 0x36
call fcn.1002d340
lea eax, [ebp - 0x25]
mov dword [ebp - 4], 0x37
push eax
lea ecx, [ebp - 0x240]
push ecx
lea edx, [ebp - 0x390]
push edx
lea ecx, [ebp - 0x5c]
call fcn.1008e270
push str.flags_enemy
lea ecx, [ebp - 0xd8]
mov byte [ebp - 4], 0x38
call fcn.1002d340
push 0x100d64c4
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0x39
call fcn.1002d340
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0xb8], 0
lea eax, [ebp - 0xd8]
mov byte [ebp - 4], 0x3b
push eax
lea ecx, [edi + 0xa00]
call fcn.10052440
lea eax, [ebp - 0x50]
mov byte [edi + 0xa31], 1
push eax
lea ecx, [edi + 0xa38]
call fcn.10052440
xor eax, eax
mov ecx, 0xf
cmp byte [edi + 0xa31], al
cmovne eax, ecx
mov ecx, dword [ebp - 0x58]
mov dword [edi + 0xa6c], eax
add eax, 0x14
mov dword [edi + 0x9d8], eax
mov dword [edi + 0x9dc], eax
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x24], eax
cmp eax, ecx
je 0x10066386
mov esi, dword [ebp - 0x24]
lea eax, [edi + 0xa50]
mov edi, eax
nop dword [eax]
push esi
mov ecx, edi
call fcn.10058e90
add esi, 0x18
cmp esi, dword [ebp - 0x1c]
jne 0x10066370
mov edi, dword [ebp - 0x34]
lea esi, [edi + 0x18]
mov edx, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0xbc]
sub ecx, edx
mov dword [ebp - 0x18], 0
add ecx, 3
mov dword [ebp - 0x24], 0
shr ecx, 2
cmp edx, dword [ebp - 0xbc]
mov dword [ebp - 0x1c], edx
cmova ecx, dword [ebp - 0x18]
mov dword [ebp - 0x20], ecx
test ecx, ecx
je 0x10066476
lea ecx, [edi + 0xa60]
nop word [eax + eax]
mov eax, dword [edx]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0xf4]
push eax
call fcn.1002cc60
lea ecx, [edi + 0xa60]
mov esi, dword [eax]
lea eax, [ebp - 0xf8]
push eax
call fcn.1002cc70
push esi
lea edx, [ebp - 0x18]
lea ecx, [ebp - 0xfc]
push dword [eax]
call fcn.1002e600
add esp, 8
lea ecx, [edi + 0xa60]
mov esi, eax
lea eax, [ebp - 0x1f4]
push eax
call fcn.1002cc60
mov esi, dword [esi]
lea ecx, [edi + 0xa50]
mov eax, dword [eax]
mov dword [ebp - 0x2c], eax
call fcn.1002cd60
cmp dword [ebp - 0x18], eax
jae 0x10066443
lea eax, [ebp - 0x18]
push eax
lea ecx, [edi + 0xa60]
call fcn.10049580
cmp esi, dword [ebp - 0x2c]
jne 0x10066454
mov eax, dword [edi + 0xa2c]
test eax, eax
je 0x10066454
call eax
mov eax, dword [ebp - 0x24]
lea ecx, [edi + 0xa60]
mov edx, dword [ebp - 0x1c]
inc eax
add edx, 4
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x1c], edx
cmp eax, dword [ebp - 0x20]
jne 0x100663d0
lea esi, [edi + 0x18]
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], 0x3c
call fcn.1002ce80
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0x3d
call fcn.1002d2f0
lea ecx, [ebp - 0xd8]
mov byte [ebp - 4], 0x3e
call fcn.1002d2f0
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 0x3f
call fcn.1002dc10
push fcn.1002d2f0
push 0xe
push 0x18
lea eax, [ebp - 0x390]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.100c5072
lea eax, [edi + 0x9c8]
mov dword [ebp - 0x1c], eax
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049580
push str.weapontext
lea ecx, [ebp - 0x50]
call fcn.1002d340
push str.weapon_text
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x40
call fcn.1002d340
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x41
push eax
lea ecx, [edi + 0xb30]
call fcn.10052440
lea eax, [ebp - 0xd8]
mov byte [edi + 0xb61], 1
push eax
lea ecx, [edi + 0xb68]
call fcn.10052440
mov byte [edi + 0xb64], 0
lea ecx, [ebp - 0xd8]
mov byte [ebp - 4], 0x42
call fcn.1002d2f0
lea ecx, [ebp - 0x50]
mov dword [ebp - 4], 0x43
call fcn.1002d2f0
mov dword [ebp - 4], 0xffffffff
lea eax, [edi + 0xaf8]
mov dword [ebp - 0x1c], eax
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049580
push str.weaponicon
lea ecx, [ebp - 0x50]
call fcn.1002d340
push str.weapon_icon
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x44
call fcn.1002d340
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x45
push eax
lea ecx, [edi + 0xaa8]
call fcn.10052440
lea eax, [ebp - 0xd8]
mov byte [edi + 0xad9], 1
push eax
lea ecx, [edi + 0xae0]
call fcn.10052440
mov byte [edi + 0xadc], 0
lea ecx, [ebp - 0xd8]
mov byte [ebp - 4], 0x46
call fcn.1002d2f0
lea ecx, [ebp - 0x50]
mov dword [ebp - 4], 0x47
call fcn.1002d2f0
mov dword [ebp - 4], 0xffffffff
lea eax, [edi + 0xa70]
mov dword [ebp - 0x1c], eax
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049580
push str.weaponcolor
lea ecx, [ebp - 0x50]
lea esi, [edi + 0xb80]
call fcn.1002d340
push str.weapon_icon_color
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x48
call fcn.1002d340
lea eax, [ebp - 0xd8]
mov byte [ebp - 4], 0x49
push eax
lea ecx, [edi + 0xbf0]
mov dword [ebp - 0x1c], 0xffffffff
call fcn.10052440
lea eax, [ebp - 0x50]
push eax
lea ecx, [edi + 0xbb8]
call fcn.10052440
mov eax, dword [ebp - 0x1c]
mov dword [edi + 0xc08], eax
mov dword [edi + 0xc20], 0
lea ecx, [ebp - 0xd8]
mov byte [ebp - 4], 0x4a
call fcn.1002d2f0
lea ecx, [ebp - 0x50]
mov dword [ebp - 4], 0x4b
call fcn.1002d2f0
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x20], 0x10037700
lea eax, [ebp - 0x20]
lea ecx, [esi + 0x58]
push eax
call fcn.10049580
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049580
push str.ammo
lea ecx, [ebp - 0x50]
call fcn.1002d340
push str.ammo
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x4c
call fcn.1002d340
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x4d
push eax
lea ecx, [edi + 0xd30]
call fcn.10052440
lea eax, [ebp - 0xd8]
mov byte [edi + 0xd61], 1
push eax
lea ecx, [edi + 0xd68]
call fcn.10052440
mov byte [edi + 0xd64], 0
lea ecx, [ebp - 0xd8]
mov byte [ebp - 4], 0x4e
call fcn.1002d2f0
lea ecx, [ebp - 0x50]
mov dword [ebp - 4], 0x4f
call fcn.1002d2f0
mov dword [ebp - 4], 0xffffffff
lea eax, [edi + 0xcf8]
mov dword [ebp - 0x1c], eax
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049580
push 0x100d651c
lea ecx, [ebp - 0x50]
lea esi, [edi + 0xe08]
call fcn.1002d340
push str.ammo_color
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x50
call fcn.1002d340
lea eax, [ebp - 0xd8]
mov byte [ebp - 4], 0x51
push eax
lea ecx, [edi + 0xe78]
mov dword [ebp - 0x1c], 0xebc88c50
call fcn.10052440
lea eax, [ebp - 0x50]
push eax
lea ecx, [edi + 0xe40]
call fcn.10052440
mov eax, dword [ebp - 0x1c]
mov dword [edi + 0xe90], eax
mov dword [edi + 0xea8], 0
lea ecx, [ebp - 0xd8]
mov byte [ebp - 4], 0x52
call fcn.1002d2f0
lea ecx, [ebp - 0x50]
mov dword [ebp - 4], 0x53
call fcn.1002d2f0
lea eax, [ebp - 0x20]
mov dword [ebp - 4], 0xffffffff
lea ecx, [esi + 0x58]
mov dword [ebp - 0x20], 0x10037770
push eax
call fcn.10049580
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049580
push str.distance
lea ecx, [ebp - 0x50]
call fcn.1002d340
push str.distance
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x54
call fcn.1002d340
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x55
push eax
lea ecx, [edi + 0xdb8]
call fcn.10052440
lea eax, [ebp - 0xd8]
mov byte [edi + 0xde9], 1
push eax
lea ecx, [edi + 0xdf0]
call fcn.10052440
mov byte [edi + 0xdec], 0
lea ecx, [ebp - 0xd8]
mov byte [ebp - 4], 0x56
call fcn.1002d2f0
lea ecx, [ebp - 0x50]
mov dword [ebp - 4], 0x57
call fcn.1002d2f0
mov dword [ebp - 4], 0xffffffff
lea eax, [edi + 0xd80]
mov dword [ebp - 0x1c], eax
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049580
push str.lby_update
lea ecx, [ebp - 0x50]
call fcn.1002d340
push str.lby_timer
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x58
call fcn.1002d340
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x59
push eax
lea ecx, [edi + 0xefc]
call fcn.10052440
lea eax, [ebp - 0xd8]
mov byte [edi + 0xf2d], 1
push eax
lea ecx, [edi + 0xf34]
call fcn.10052440
mov byte [edi + 0xf30], 0
lea ecx, [ebp - 0xd8]
mov byte [ebp - 4], 0x5a
call fcn.1002d2f0
lea ecx, [ebp - 0x50]
mov dword [ebp - 4], 0x5b
call fcn.1002d2f0
mov dword [ebp - 4], 0xffffffff
lea eax, [edi + 0xec4]
mov dword [ebp - 0x1c], eax
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049580
push str.lby_update_color
lea ecx, [ebp - 0x240]
lea esi, [edi + 0xf4c]
call fcn.1002d340
push str.lby_timer_color
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x5c
call fcn.1002d340
lea eax, [ebp - 0xd8]
mov byte [ebp - 4], 0x5d
push eax
lea ecx, [edi + 0xfbc]
mov dword [ebp - 0x1c], 0xffff00ff
call fcn.10052440
lea eax, [ebp - 0x240]
push eax
lea ecx, [edi + 0xf84]
call fcn.10052440
mov eax, dword [ebp - 0x1c]
mov dword [edi + 0xfd4], eax
mov dword [edi + 0xfec], 0
lea ecx, [ebp - 0xd8]
mov byte [ebp - 4], 0x5e
call fcn.1002d2f0
lea ecx, [ebp - 0x240]
mov dword [ebp - 4], 0x5f
call fcn.1002d2f0
lea eax, [ebp - 0x20]
mov dword [ebp - 4], 0xffffffff
lea ecx, [esi + 0x58]
mov dword [ebp - 0x20], 0x10037740
push eax
call fcn.10049580
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049580
push str.glow
lea ecx, [ebp - 0x210]
call fcn.1002d340
push str.glow
lea ecx, [ebp - 0x240]
mov dword [ebp - 4], 0x60
call fcn.1002d340
lea eax, [ebp - 0x210]
mov byte [ebp - 4], 0x61
push eax
lea ecx, [edi + 0x1760]
call fcn.10052440
lea eax, [ebp - 0x240]
mov byte [edi + 0x1791], 1
push eax
lea ecx, [edi + 0x1798]
call fcn.10052440
mov byte [edi + 0x1794], 0
lea ecx, [ebp - 0x240]
mov byte [ebp - 4], 0x62
call fcn.1002d2f0
lea ecx, [ebp - 0x210]
mov dword [ebp - 4], 0x63
call fcn.1002d2f0
mov dword [ebp - 4], 0xffffffff
lea eax, [edi + 0x1728]
mov dword [ebp - 0x1c], eax
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049580
push str.glow_enemy
lea ecx, [ebp - 0x228]
lea esi, [edi + 0x17b0]
call fcn.1002d340
push str.glow_color
lea ecx, [ebp - 0x210]
mov dword [ebp - 4], 0x64
call fcn.1002d340
lea eax, [ebp - 0x210]
mov byte [ebp - 4], 0x65
push eax
lea ecx, [edi + 0x1820]
mov dword [ebp - 0x1c], 0xff7739b4
call fcn.10052440
lea eax, [ebp - 0x228]
push eax
lea ecx, [edi + 0x17e8]
call fcn.10052440
mov eax, dword [ebp - 0x1c]
mov dword [edi + 0x1838], eax
mov dword [edi + 0x1850], 0
lea ecx, [ebp - 0x210]
mov byte [ebp - 4], 0x66
call fcn.1002d2f0
lea ecx, [ebp - 0x228]
mov dword [ebp - 4], 0x67
call fcn.1002d2f0
lea eax, [ebp - 0x20]
mov dword [ebp - 4], 0xffffffff
lea ecx, [esi + 0x58]
mov dword [ebp - 0x20], 0x10037760
push eax
call fcn.10049580
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049580
push 0x100d5af8
lea ecx, [ebp - 0x114]
lea esi, [edi + 0x186c]
call fcn.1008e3d0
push str.glow_blend
lea ecx, [ebp - 0x228]
mov dword [ebp - 4], 0x68
call fcn.1002d340
push 0x100d37e4
lea ecx, [ebp - 0x178]
mov byte [ebp - 4], 0x69
call fcn.1002d340
lea eax, [ebp - 0x228]
mov byte [ebp - 4], 0x6a
push eax
lea ecx, [edi + 0x18a4]
call fcn.10052440
lea eax, [ebp - 0x114]
mov byte [edi + 0x18d5], 0
push eax
lea ecx, [edi + 0x190c]
mov dword [edi + 0x1924], 0
mov dword [edi + 0x187c], 8
mov dword [edi + 0x1880], 8
mov dword [edi + 0x18e0], 0
mov dword [edi + 0x18e4], 0x42c80000
mov dword [edi + 0x18dc], 0x41f00000
mov dword [edi + 0x18f0], 0
mov dword [edi + 0x18e8], 0x3f800000
call fcn.1008e3a0
lea ecx, [ebp - 0x178]
mov byte [ebp - 4], 0x6b
call fcn.1002d2f0
lea ecx, [ebp - 0x228]
mov byte [ebp - 4], 0x6c
call fcn.1002d2f0
lea ecx, [ebp - 0x114]
mov dword [ebp - 4], 0x6d
call fcn.100591a0
lea eax, [ebp - 0x20]
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x20], 0x10037760
lea ecx, [esi + 0x58]
push eax
call fcn.10049580
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 0
lea esi, [edi + 0x18]
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049580
push 0x100d65d0
lea ecx, [ebp - 0x15c]
call fcn.1002d340
push str.world
lea ecx, [ebp - 0x144]
mov dword [ebp - 4], 0x6e
call fcn.1002d340
lea eax, [ebp - 0x25]
mov dword [ebp - 4], 0x6f
push eax
lea ecx, [ebp - 0x12c]
push ecx
lea edx, [ebp - 0x15c]
push edx
lea ecx, [ebp - 0x5c]
call fcn.1008e270
push str.hitmarker
lea ecx, [ebp - 0x228]
mov byte [ebp - 4], 0x70
call fcn.1002d340
push str.hitmarker
lea ecx, [ebp - 0x114]
mov byte [ebp - 4], 0x71
call fcn.1002d340
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0xb8], 0
lea eax, [ebp - 0x228]
mov byte [ebp - 4], 0x73
push eax
lea ecx, [edi + 0x1040]
call fcn.10052440
lea eax, [ebp - 0x114]
mov byte [edi + 0x1071], 1
push eax
lea ecx, [edi + 0x1078]
call fcn.10052440
xor eax, eax
mov ecx, 0xf
cmp byte [edi + 0x1071], al
cmovne eax, ecx
mov ecx, dword [ebp - 0x58]
mov dword [edi + 0x10ac], eax
add eax, 0x14
mov dword [edi + 0x1018], eax
mov dword [edi + 0x101c], eax
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x20], eax
cmp eax, ecx
je 0x10066f46
mov esi, dword [ebp - 0x20]
lea eax, [edi + 0x1090]
mov dword [ebp - 0x2c], eax
mov edi, eax
nop
push esi
mov ecx, edi
call fcn.10058e90
add esi, 0x18
cmp esi, dword [ebp - 0x24]
jne 0x10066f30
mov edi, dword [ebp - 0x34]
lea esi, [edi + 0x18]
mov edx, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0xbc]
sub ecx, edx
mov dword [ebp - 0x20], 0
add ecx, 3
mov dword [ebp - 0x1c], 0
shr ecx, 2
cmp edx, dword [ebp - 0xbc]
mov dword [ebp - 0x24], edx
cmova ecx, dword [ebp - 0x20]
mov dword [ebp - 0x2c], ecx
test ecx, ecx
je 0x10067036
lea ecx, [edi + 0x10a0]
nop word [eax + eax]
mov eax, dword [edx]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x1f4]
push eax
call fcn.1002cc60
lea ecx, [edi + 0x10a0]
mov esi, dword [eax]
lea eax, [ebp - 0xfc]
push eax
call fcn.1002cc70
push esi
lea edx, [ebp - 0x18]
lea ecx, [ebp - 0xf8]
push dword [eax]
call fcn.1002e600
add esp, 8
lea ecx, [edi + 0x10a0]
mov esi, eax
lea eax, [ebp - 0xf4]
push eax
call fcn.1002cc60
mov esi, dword [esi]
lea ecx, [edi + 0x1090]
mov eax, dword [eax]
mov dword [ebp - 0x20], eax
call fcn.1002cd60
cmp dword [ebp - 0x18], eax
jae 0x10067003
lea eax, [ebp - 0x18]
push eax
lea ecx, [edi + 0x10a0]
call fcn.10049580
cmp esi, dword [ebp - 0x20]
jne 0x10067014
mov eax, dword [edi + 0x106c]
test eax, eax
je 0x10067014
call eax
mov eax, dword [ebp - 0x1c]
lea ecx, [edi + 0x10a0]
mov edx, dword [ebp - 0x24]
inc eax
add edx, 4
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x24], edx
cmp eax, dword [ebp - 0x2c]
jne 0x10066f90
lea esi, [edi + 0x18]
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], 0x74
call fcn.1002ce80
lea ecx, [ebp - 0x114]
mov byte [ebp - 4], 0x75
call fcn.1002d2f0
lea ecx, [ebp - 0x228]
mov byte [ebp - 4], 0x76
call fcn.1002d2f0
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 0x77
call fcn.1002dc10
push fcn.1002d2f0
push 2
push 0x18
lea eax, [ebp - 0x15c]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.100c5072
lea eax, [edi + 0x1008]
mov dword [ebp - 0x1c], eax
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049580
push str.hitmarker_sound
lea ecx, [ebp - 0x210]
call fcn.1002d340
push 0x100d65fc
lea ecx, [ebp - 0x114]
mov dword [ebp - 4], 0x78
call fcn.1002d340
lea eax, [ebp - 0x210]
mov byte [ebp - 4], 0x79
push eax
lea ecx, [edi + 0x10e8]
call fcn.10052440
lea eax, [ebp - 0x114]
mov byte [edi + 0x1119], 1
push eax
lea ecx, [edi + 0x1120]
call fcn.10052440
mov byte [edi + 0x111c], 0
lea ecx, [ebp - 0x114]
mov byte [ebp - 4], 0x7a
call fcn.1002d2f0
lea ecx, [ebp - 0x210]
mov dword [ebp - 4], 0x7b
call fcn.1002d2f0
mov dword [ebp - 4], 0xffffffff
lea eax, [edi + 0x10b0]
mov dword [ebp - 0x1c], eax
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049580
push str.skeleton
lea ecx, [ebp - 0x240]
call fcn.1002d340
push str.skeleton
lea ecx, [ebp - 0x114]
mov dword [ebp - 4], 0x7c
call fcn.1002d340
lea eax, [ebp - 0x240]
mov byte [ebp - 4], 0x7d
push eax
lea ecx, [edi + 0x1574]
call fcn.10052440
lea eax, [ebp - 0x114]
mov byte [edi + 0x15a5], 1
push eax
lea ecx, [edi + 0x15ac]
call fcn.10052440
mov byte [edi + 0x15a8], 0
lea ecx, [ebp - 0x114]
mov byte [ebp - 4], 0x7e
call fcn.1002d2f0
lea ecx, [ebp - 0x240]
mov dword [ebp - 4], 0x7f
call fcn.1002d2f0
mov dword [ebp - 4], 0xffffffff
lea eax, [edi + 0x153c]
mov dword [ebp - 0x1c], eax
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049580
push str.skeleton_enemy
lea ecx, [ebp - 0xd8]
lea esi, [edi + 0x15c4]
call fcn.1002d340
push str.skeleton_color
lea ecx, [ebp - 0x114]
mov dword [ebp - 4], 0x80
call fcn.1002d340
lea eax, [ebp - 0x114]
mov byte [ebp - 4], 0x81
push eax
lea ecx, [edi + 0x1634]
mov dword [ebp - 0x1c], 0xffaaffff
call fcn.10052440
lea eax, [ebp - 0xd8]
push eax
lea ecx, [edi + 0x15fc]
call fcn.10052440
mov eax, dword [ebp - 0x1c]
mov dword [edi + 0x164c], eax
mov dword [edi + 0x1664], 0
lea ecx, [ebp - 0x114]
mov byte [ebp - 4], 0x82
call fcn.1002d2f0
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0x83
call fcn.1002d2f0
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x20], 0x10037710
lea eax, [ebp - 0x20]
lea ecx, [esi + 0x58]
push eax
call fcn.10049580
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049580
push 0x100d5af8
lea ecx, [ebp - 0x12c]
lea esi, [edi + 0x19e4]
call fcn.1008e3d0
push str.skeleton_alpha
lea ecx, [ebp - 0x114]
mov dword [ebp - 4], 0x84
call fcn.1002d340
push 0x100d37e4
lea ecx, [ebp - 0x178]
mov byte [ebp - 4], 0x85
call fcn.1002d340
lea eax, [ebp - 0x114]
mov byte [ebp - 4], 0x86
push eax
lea ecx, [edi + 0x1a1c]
call fcn.10052440
lea eax, [ebp - 0x12c]
mov byte [edi + 0x1a4d], 0
push eax
lea ecx, [edi + 0x1a84]
mov dword [edi + 0x1a9c], 0
mov dword [edi + 0x19f4], 8
mov dword [edi + 0x19f8], 8
mov dword [edi + 0x1a58], 0
mov dword [edi + 0x1a5c], 0x437f0000
mov dword [edi + 0x1a54], 0x437f0000
mov dword [edi + 0x1a68], 0
mov dword [edi + 0x1a60], 0x3f800000
call fcn.1008e3a0
lea ecx, [ebp - 0x178]
mov byte [ebp - 4], 0x87
call fcn.1002d2f0
lea ecx, [ebp - 0x114]
mov byte [ebp - 4], 0x88
call fcn.1002d2f0
lea ecx, [ebp - 0x12c]
mov dword [ebp - 4], 0x89
call fcn.100591a0
lea eax, [ebp - 0x20]
mov dword [ebp - 4], 0xffffffff
lea ecx, [esi + 0x58]
mov dword [ebp - 0x20], 0x10037710
push eax
call fcn.10049580
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049580
push str.offscreen
lea ecx, [ebp - 0xf0]
call fcn.1002d340
push str.out_of_pov_arrow
lea ecx, [ebp - 0x12c]
mov dword [ebp - 4], 0x8a
call fcn.1002d340
lea eax, [ebp - 0xf0]
mov byte [ebp - 4], 0x8b
push eax
lea ecx, [edi + 0x434]
call fcn.10052440
lea eax, [ebp - 0x12c]
mov byte [edi + 0x465], 1
push eax
lea ecx, [edi + 0x46c]
call fcn.10052440
mov byte [edi + 0x468], 0
lea ecx, [ebp - 0x12c]
mov byte [ebp - 4], 0x8c
call fcn.1002d2f0
lea ecx, [ebp - 0xf0]
mov dword [ebp - 4], 0x8d
call fcn.1002d2f0
mov dword [ebp - 4], 0xffffffff
lea eax, [edi + 0x3fc]
mov dword [ebp - 0x1c], eax
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049580
mov esi, dword [0x100d3c40]
lea ecx, [ebp - 0x80]
push str.offscreen_color
add edi, 0x484
call fcn.1002d340
push str.offscreen_esp_color
lea ecx, [ebp - 0xf0]
mov dword [ebp - 4], 0x8e
call fcn.1002d340
mov ecx, dword [ebp - 0x34]
lea eax, [ebp - 0xf0]
push eax
add ecx, 0x4f4
mov byte [ebp - 4], 0x8f
call fcn.10052440
mov ecx, dword [ebp - 0x34]
lea eax, [ebp - 0x80]
push eax
lea ecx, [ecx + 0x4bc]
call fcn.10052440
mov eax, dword [ebp - 0x34]
mov dword [eax + 0x50c], esi
mov dword [eax + 0x524], 0
lea ecx, [ebp - 0xf0]
mov byte [ebp - 4], 0x90
call fcn.1002d2f0
mov dword [ebp - 4], 0x91
lea ecx, [ebp - 0x80]
call fcn.1002d2f0
lea eax, [ebp - 0x20]
mov dword [ebp - 4], 0xffffffff
lea ecx, [edi + 0x58]
mov dword [ebp - 0x20], 0x10037720
push eax
call fcn.10049580
mov dword [ebp - 0x1c], edi
mov dword [edi + 0x18], 0
mov ecx, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x34]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049580
lea ecx, [ebp - 0x50]
call fcn.1002df30
lea ecx, [ebp - 0x50]
mov dword [ebp - 4], 0x92
call fcn.1002df50
push str.footstep
lea ecx, [ebp - 0x50]
call fcn.1002dfc0
push str.visualize_sounds
lea ecx, [ebp - 0x80]
mov dword [ebp - 4], 0x93
call fcn.1002d340
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x94
push eax
lea ecx, [edi + 0x578]
call fcn.10052440
lea eax, [ebp - 0x80]
mov byte [edi + 0x5a9], 1
push eax
lea ecx, [edi + 0x5b0]
call fcn.10052440
lea ecx, [ebp - 0x80]
mov byte [edi + 0x5ac], 0
call fcn.1002d2f0
lea ecx, [ebp - 0x50]
mov dword [ebp - 4], 0xffffffff
call fcn.1002d2f0
lea eax, [edi + 0x540]
mov dword [ebp - 0x1c], eax
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049550
push str.footstepcol
lea ecx, [ebp - 0x98]
lea esi, [edi + 0x5c8]
call fcn.1002d340
push str.visualize_sounds_color
lea ecx, [ebp - 0x80]
mov dword [ebp - 4], 0x95
call fcn.1002d340
mov byte [ebp - 4], 0x96
lea eax, [ebp - 0x80]
mov dword [ebp - 0x1c], 0xff3c3cfa
push eax
lea ecx, [edi + 0x638]
call fcn.10052440
lea eax, [ebp - 0x98]
push eax
lea ecx, [edi + 0x600]
call fcn.10052440
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x80]
mov dword [edi + 0x650], eax
mov dword [edi + 0x668], 0
call fcn.1002d2f0
lea ecx, [ebp - 0x98]
mov dword [ebp - 4], 0xffffffff
call fcn.1002d2f0
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10037730
lea ecx, [esi + 0x58]
push eax
call fcn.10049550
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049550
lea ecx, [ebp - 0x2d]
call fcn.100282b0
push 0x100d5e08
lea ecx, [ebp - 0x1c0]
mov esi, eax
call fcn.1002d340
push 0x100d66ac
lea ecx, [ebp - 0x1a8]
mov dword [ebp - 4], 0x97
call fcn.1002d340
push str.target_only
lea ecx, [ebp - 0x190]
mov byte [ebp - 4], 0x98
call fcn.1002d340
push str.target_only__all
lea ecx, [ebp - 0x178]
mov byte [ebp - 4], 0x99
call fcn.1002d340
lea eax, [ebp - 0x160]
mov dword [ebp - 4], 0x9a
push eax
lea eax, [ebp - 0x1c0]
push eax
lea ecx, [ebp - 0x1f8]
call fcn.1008e250
push esi
lea ecx, [ebp - 0x5c]
push dword [eax + 4]
push dword [eax]
call fcn.1008e270
push str.shot_matrix
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 0x9b
call fcn.1002d340
push str.hitbox_matrix
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 0x9c
call fcn.1002d340
lea eax, [ebp - 0x80]
mov byte [ebp - 4], 0x9d
push eax
lea ecx, [edi + 0x135c]
call fcn.10052440
lea eax, [ebp - 0x98]
mov byte [edi + 0x138d], 1
push eax
lea ecx, [edi + 0x1394]
call fcn.10052440
xor ecx, ecx
mov eax, 0xf
cmp byte [edi + 0x138d], cl
cmovne ecx, eax
mov dword [edi + 0x13c0], ecx
lea eax, [ecx + 0x14]
lea ecx, [ebp - 0x5c]
mov dword [edi + 0x1334], eax
mov dword [edi + 0x1338], eax
call fcn.10041910
lea ecx, [ebp - 0x5c]
mov esi, eax
call fcn.10054510
mov dword [ebp - 0x2c], eax
lea ecx, [edi + 0x13ac]
cmp esi, eax
je 0x100678df
mov edi, ecx
push esi
mov ecx, edi
call fcn.10058e60
add esi, 0x18
cmp esi, dword [ebp - 0x2c]
jne 0x100678c6
mov edi, dword [ebp - 0x34]
lea ecx, [edi + 0x13ac]
call fcn.1002cd60
test eax, eax
je 0x100678f2
mov dword [edi + 0x13bc], 0
lea ecx, [ebp - 0x98]
call fcn.1002d2f0
lea ecx, [ebp - 0x80]
call fcn.1002d2f0
lea ecx, [ebp - 0x5c]
call fcn.1002cd80
push fcn.1002d2f0
push 4
push 0x18
lea eax, [ebp - 0x1c0]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.100c5072
lea eax, [edi + 0x1324]
mov dword [ebp - 0x1c], eax
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049550
push str.matrix_shot_clr_target
lea ecx, [ebp - 0xf0]
mov dword [ebp - 0x1c], 0x960000ff
lea esi, [edi + 0x13c4]
call fcn.1002d340
push str.target_hitbox_color
lea ecx, [ebp - 0x98]
mov dword [ebp - 4], 0x9e
call fcn.1002d340
lea eax, [ebp - 0x98]
mov byte [ebp - 4], 0x9f
push eax
lea ecx, [edi + 0x1434]
call fcn.10052440
lea eax, [ebp - 0xf0]
push eax
lea ecx, [edi + 0x13fc]
call fcn.10052440
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x98]
mov dword [edi + 0x144c], eax
mov dword [edi + 0x1464], 0
call fcn.1002d2f0
lea ecx, [ebp - 0xf0]
mov dword [ebp - 4], 0xffffffff
call fcn.1002d2f0
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10037860
lea ecx, [esi + 0x58]
push eax
call fcn.10049550
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049550
lea esi, [edi + 0x1480]
mov dword [ebp - 0x1c], 0x14969696
push str.matrix_shot_clr
lea ecx, [ebp - 0x12c]
call fcn.1002d340
push str.hitbox_color
lea ecx, [ebp - 0x98]
mov dword [ebp - 4], 0xa0
call fcn.1002d340
lea eax, [ebp - 0x98]
mov byte [ebp - 4], 0xa1
push eax
lea ecx, [edi + 0x14f0]
call fcn.10052440
lea eax, [ebp - 0x12c]
push eax
lea ecx, [edi + 0x14b8]
call fcn.10052440
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x98]
mov dword [edi + 0x1508], eax
mov dword [edi + 0x1520], 0
call fcn.1002d2f0
lea ecx, [ebp - 0x12c]
mov dword [ebp - 4], 0xffffffff
call fcn.1002d2f0
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10037860
lea ecx, [esi + 0x58]
push eax
call fcn.10049550
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 0
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049550
lea ecx, [ebp - 0x2e]
call fcn.100282b0
push str.glow
lea ecx, [ebp - 0x2e8]
mov esi, eax
call fcn.1002d340
push str.visible_chams
lea ecx, [ebp - 0x2d0]
mov dword [ebp - 4], 0xa2
call fcn.1002d340
push str.invisible_chams
lea ecx, [ebp - 0x2b8]
mov byte [ebp - 4], 0xa3
call fcn.1002d340
push str.history_chams
lea ecx, [ebp - 0x2a0]
mov byte [ebp - 4], 0xa4
call fcn.1002d340
push str.shot_chams
lea ecx, [ebp - 0x288]
mov byte [ebp - 4], 0xa5
call fcn.1002d340
push str.weapon_chams_1
lea ecx, [ebp - 0x270]
mov byte [ebp - 4], 0xa6
call fcn.1002d340
push str.weapon_chams_2
lea ecx, [ebp - 0x258]
mov byte [ebp - 4], 0xa7
call fcn.1002d340
lea eax, [ebp - 0x240]
mov dword [ebp - 4], 0xa8
push eax
lea eax, [ebp - 0x2e8]
push eax
lea ecx, [ebp - 0xbc]
call fcn.1008e250
push esi
lea ecx, [ebp - 0x44]
push dword [eax + 4]
push dword [eax]
call fcn.1008e270
push str.rainbow_visuals
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 0xa9
call fcn.1002d340
push str.rainbow_visual_elements
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 0xaa
call fcn.1002d340
lea ecx, [ebp - 0x60]
call fcn.10028290
lea eax, [ebp - 0x80]
mov byte [ebp - 4], 0xac
push eax
lea ecx, [edi + 0x16b8]
call fcn.10052440
lea eax, [ebp - 0x98]
mov byte [edi + 0x16e9], 1
push eax
lea ecx, [edi + 0x16f0]
call fcn.10052440
xor ecx, ecx
mov eax, 0xf
cmp byte [edi + 0x16e9], cl
cmovne ecx, eax
mov dword [edi + 0x1724], ecx
lea eax, [ecx + 0x14]
lea ecx, [ebp - 0x44]
mov dword [edi + 0x1690], eax
mov dword [edi + 0x1694], eax
call fcn.10041910
lea ecx, [ebp - 0x44]
mov esi, eax
call fcn.10054510
mov dword [ebp - 0x20], eax
cmp esi, eax
je 0x10067c95
lea eax, [edi + 0x1708]
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0x2c], eax
nop
push esi
mov ecx, eax
call fcn.10058e60
mov eax, dword [ebp - 0x2c]
add esi, 0x18
cmp esi, edi
jne 0x10067c80
mov edi, dword [ebp - 0x34]
lea ecx, [ebp - 0x60]
call fcn.10041910
mov esi, eax
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x24], esi
call fcn.10054510
mov ecx, eax
mov dword [ebp - 0x1c], 0
sub ecx, esi
xor edx, edx
add ecx, 3
shr ecx, 2
cmp esi, eax
cmova ecx, edx
mov dword [ebp - 0x20], ecx
test ecx, ecx
je 0x10067d7b
lea ecx, [edi + 0x1718]
mov eax, dword [esi]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x1f4]
push eax
call fcn.1002cc60
lea ecx, [edi + 0x1718]
mov esi, dword [eax]
lea eax, [ebp - 0xfc]
push eax
call fcn.1002cc70
push esi
lea edx, [ebp - 0x18]
lea ecx, [ebp - 0xf8]
push dword [eax]
call fcn.1002e600
add esp, 8
lea ecx, [edi + 0x1718]
mov esi, eax
lea eax, [ebp - 0xf4]
push eax
call fcn.1002cc60
push eax
mov ecx, esi
call fcn.1002d2d0
lea ecx, [edi + 0x1708]
mov byte [ebp - 0x25], al
call fcn.1002cd60
cmp dword [ebp - 0x18], eax
jae 0x10067d4a
lea eax, [ebp - 0x18]
push eax
lea ecx, [edi + 0x1718]
call fcn.10049550
cmp byte [ebp - 0x25], 0
je 0x10067d5c
mov eax, dword [edi + 0x16e4]
test eax, eax
je 0x10067d5c
call eax
mov eax, dword [ebp - 0x1c]
lea ecx, [edi + 0x1718]
mov esi, dword [ebp - 0x24]
inc eax
add esi, 4
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x24], esi
cmp eax, dword [ebp - 0x20]
jne 0x10067cd3
lea ecx, [ebp - 0x60]
call fcn.1002cc80
lea ecx, [ebp - 0x98]
call fcn.1002d2f0
lea ecx, [ebp - 0x80]
call fcn.1002d2f0
lea ecx, [ebp - 0x44]
call fcn.1002cd80
push fcn.1002d2f0
push 7
push 0x18
lea eax, [ebp - 0x2e8]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.100c5072
lea eax, [edi + 0x1680]
mov dword [ebp - 0x1c], eax
mov dword [eax + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049550
push 0x100d5bac
lea ecx, [ebp - 0xf0]
lea esi, [edi + 0x3a7c]
call fcn.1008e3d0
push 0x100d679c
lea ecx, [ebp - 0x80]
mov dword [ebp - 4], 0xad
call fcn.1002d340
push str.rainbow_speed
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 0xae
call fcn.1002d340
lea eax, [ebp - 0x80]
mov byte [ebp - 4], 0xaf
push eax
lea ecx, [edi + 0x3ab4]
call fcn.10052440
lea eax, [ebp - 0x98]
mov byte [edi + 0x3ae5], 1
push eax
lea ecx, [edi + 0x3b04]
call fcn.10052440
xor ecx, ecx
mov dword [edi + 0x3af0], 0x3f800000
cmp byte [esi + 0x69], cl
mov eax, 0xf
mov dword [edi + 0x3af4], 0x42480000
cmovne ecx, eax
mov dword [edi + 0x3aec], 0x3f800000
mov dword [edi + 0x3b34], ecx
mov dword [edi + 0x3b00], 0
mov dword [edi + 0x3af8], 0x3f800000
lea eax, [ecx + 8]
mov dword [edi + 0x3a8c], eax
lea ecx, [edi + 0x3b1c]
mov dword [edi + 0x3a90], eax
lea eax, [ebp - 0xf0]
push eax
call fcn.1008e3a0
lea ecx, [ebp - 0x98]
call fcn.1002d2f0
lea ecx, [ebp - 0x80]
call fcn.1002d2f0
lea ecx, [ebp - 0xf0]
mov dword [ebp - 4], 0xffffffff
call fcn.100590d0
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049550
lea ecx, [ebp - 0x2d]
call fcn.100282b0
push str.local
lea ecx, [ebp - 0x1f0]
mov esi, eax
call fcn.1002d340
push str.enemy
lea ecx, [ebp - 0x1d8]
mov dword [ebp - 4], 0xb0
call fcn.1002d340
push str.friendly
lea ecx, [ebp - 0x1c0]
mov byte [ebp - 4], 0xb1
call fcn.1002d340
push str.history
lea ecx, [ebp - 0x1a8]
mov byte [ebp - 4], 0xb2
call fcn.1002d340
push str.shot
lea ecx, [ebp - 0x190]
mov byte [ebp - 4], 0xb3
call fcn.1002d340
push str.weapon
lea ecx, [ebp - 0x178]
mov byte [ebp - 4], 0xb4
call fcn.1002d340
lea eax, [ebp - 0x160]
mov dword [ebp - 4], 0xb5
push eax
lea eax, [ebp - 0x1f0]
push eax
lea ecx, [ebp - 0xbc]
call fcn.1008e250
push esi
lea ecx, [ebp - 0x44]
push dword [eax + 4]
push dword [eax]
call fcn.1008e270
push str.chams_entity_selection
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 0xb6
call fcn.1002d340
push str.chams_selection
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 0xb7
call fcn.1002d340
lea eax, [ebp - 0x80]
mov byte [ebp - 4], 0xb8
push eax
lea ecx, [edi + 0x1ad8]
call fcn.10052440
lea eax, [ebp - 0x98]
mov byte [edi + 0x1b09], 1
push eax
lea ecx, [edi + 0x1b10]
call fcn.10052440
xor ecx, ecx
cmp byte [edi + 0x1b09], cl
mov eax, 0xf
cmovne ecx, eax
mov dword [edi + 0x1b3c], ecx
lea eax, [ecx + 0x14]
lea ecx, [ebp - 0x44]
mov dword [edi + 0x1ab0], eax
mov dword [edi + 0x1ab4], eax
call fcn.10041910
lea ecx, [ebp - 0x44]
mov esi, eax
call fcn.10054510
mov dword [ebp - 0x2c], eax
lea ecx, [edi + 0x1b28]
cmp esi, eax
je 0x10068089
mov dword [ebp - 0x20], ecx
mov edi, ecx
push esi
mov ecx, edi
call fcn.10058e60
add esi, 0x18
cmp esi, dword [ebp - 0x2c]
jne 0x10068070
mov edi, dword [ebp - 0x34]
lea ecx, [edi + 0x1b28]
call fcn.1002cd60
test eax, eax
je 0x1006809c
mov dword [edi + 0x1b38], 0
lea ecx, [ebp - 0x98]
call fcn.1002d2f0
lea ecx, [ebp - 0x80]
call fcn.1002d2f0
lea ecx, [ebp - 0x44]
call fcn.1002cd80
push fcn.1002d2f0
push 6
push 0x18
lea eax, [ebp - 0x1f0]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.100c5072
lea eax, [edi + 0x1aa0]
mov dword [ebp - 0x1c], eax
mov dword [eax + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049550
push str.chams_local
lea ecx, [ebp - 0xf0]
lea esi, [edi + 0x1b40]
call fcn.1002d340
push 0x100d684c
lea ecx, [ebp - 0x98]
mov dword [ebp - 4], 0xb9
call fcn.1002d340
lea eax, [ebp - 0xf0]
mov byte [ebp - 4], 0xba
push eax
lea ecx, [edi + 0x1b78]
call fcn.10052440
lea eax, [ebp - 0x98]
mov byte [edi + 0x1ba9], 1
push eax
lea ecx, [edi + 0x1bb0]
call fcn.10052440
lea ecx, [ebp - 0x98]
mov byte [edi + 0x1bac], 0
call fcn.1002d2f0
lea ecx, [ebp - 0xf0]
mov dword [ebp - 4], 0xffffffff
call fcn.1002d2f0
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10037780
lea ecx, [esi + 0x58]
push eax
call fcn.10049550
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049550
lea ecx, [ebp - 0x2e]
call fcn.100282b0
push str.material
lea ecx, [ebp - 0x1d8]
mov esi, eax
call fcn.1002d340
push str.flat
lea ecx, [ebp - 0x1c0]
mov dword [ebp - 4], 0xbb
call fcn.1002d340
push str.metallic
lea ecx, [ebp - 0x1a8]
mov byte [ebp - 4], 0xbc
call fcn.1002d340
push str.gloss
lea ecx, [ebp - 0x190]
mov byte [ebp - 4], 0xbd
call fcn.1002d340
push str.glow
lea ecx, [ebp - 0x178]
mov byte [ebp - 4], 0xbe
call fcn.1002d340
lea eax, [ebp - 0x160]
mov dword [ebp - 4], 0xbf
push eax
lea eax, [ebp - 0x1d8]
push eax
lea ecx, [ebp - 0xbc]
call fcn.1008e250
push esi
lea ecx, [ebp - 0x44]
push dword [eax + 4]
push dword [eax]
call fcn.1008e270
push str.chams_local_mat
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 0xc0
call fcn.1002d340
push str.chams_local_material
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 0xc1
call fcn.1002d340
lea eax, [ebp - 0x80]
mov byte [ebp - 4], 0xc2
push eax
lea ecx, [edi + 0x1c88]
call fcn.10052440
lea eax, [ebp - 0x98]
mov byte [edi + 0x1cb9], 1
push eax
lea ecx, [edi + 0x1cc0]
call fcn.10052440
xor ecx, ecx
mov eax, 0xf
cmp byte [edi + 0x1cb9], cl
cmovne ecx, eax
mov dword [edi + 0x1cec], ecx
lea eax, [ecx + 0x14]
lea ecx, [ebp - 0x44]
mov dword [edi + 0x1c60], eax
mov dword [edi + 0x1c64], eax
call fcn.10041910
lea ecx, [ebp - 0x44]
mov esi, eax
call fcn.10054510
mov dword [ebp - 0x2c], eax
lea ecx, [edi + 0x1cd8]
cmp esi, eax
je 0x1006832c
mov dword [ebp - 0x20], ecx
mov edi, ecx
push esi
mov ecx, edi
call fcn.10058e60
add esi, 0x18
cmp esi, dword [ebp - 0x2c]
jne 0x10068313
mov edi, dword [ebp - 0x34]
lea ecx, [edi + 0x1cd8]
call fcn.1002cd60
test eax, eax
je 0x1006833f
mov dword [edi + 0x1ce8], 0
lea ecx, [ebp - 0x98]
call fcn.1002d2f0
lea ecx, [ebp - 0x80]
call fcn.1002d2f0
lea ecx, [ebp - 0x44]
call fcn.1002cd80
push fcn.1002d2f0
push 5
push 0x18
lea eax, [ebp - 0x1d8]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.100c5072
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10037780
lea esi, [edi + 0x1c50]
lea ecx, [esi + 0x58]
push eax
call fcn.10049550
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049550
push str.chams_local_col
lea ecx, [ebp - 0xf0]
lea esi, [edi + 0x1cf0]
call fcn.1002d340
push str.color
lea ecx, [ebp - 0x98]
mov dword [ebp - 4], 0xc3
call fcn.1002d340
lea eax, [ebp - 0x98]
mov byte [ebp - 4], 0xc4
push eax
lea ecx, [edi + 0x1d60]
mov dword [ebp - 0x1c], 0xff323232
call fcn.10052440
lea eax, [ebp - 0xf0]
push eax
lea ecx, [edi + 0x1d28]
call fcn.10052440
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x98]
mov dword [edi + 0x1d78], eax
mov dword [edi + 0x1d90], 0
call fcn.1002d2f0
lea ecx, [ebp - 0xf0]
mov dword [ebp - 4], 0xffffffff
call fcn.1002d2f0
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10037780
lea ecx, [esi + 0x58]
push eax
call fcn.10049550
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049550
push str.chams_local2_col
lea ecx, [ebp - 0x12c]
lea esi, [edi + 0x1dac]
call fcn.1002d340
push str.glow_color
lea ecx, [ebp - 0x98]
mov dword [ebp - 4], 0xc5
call fcn.1002d340
lea eax, [ebp - 0x98]
mov byte [ebp - 4], 0xc6
push eax
lea ecx, [edi + 0x1e1c]
mov dword [ebp - 0x1c], 0xff3b2d09
call fcn.10052440
lea eax, [ebp - 0x12c]
push eax
lea ecx, [edi + 0x1de4]
call fcn.10052440
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x98]
mov dword [edi + 0x1e34], eax
mov dword [edi + 0x1e4c], 0
call fcn.1002d2f0
lea ecx, [ebp - 0x12c]
mov dword [ebp - 4], 0xffffffff
call fcn.1002d2f0
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10037790
lea ecx, [esi + 0x58]
push eax
call fcn.10049550
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049550
push 0x100d5af8
lea ecx, [ebp - 0x114]
lea esi, [edi + 0x1e68]
call fcn.1008e3d0
push str.chams_local_blend
lea ecx, [ebp - 0x98]
mov dword [ebp - 4], 0xc7
call fcn.1002d340
push 0x100d37e4
lea ecx, [ebp - 0x178]
mov byte [ebp - 4], 0xc8
call fcn.1002d340
lea eax, [ebp - 0x98]
mov byte [ebp - 4], 0xc9
push eax
lea ecx, [edi + 0x1ea0]
call fcn.10052440
lea eax, [ebp - 0x114]
mov byte [edi + 0x1ed1], 0
mov dword [edi + 0x1f20], 0
lea ecx, [edi + 0x1f08]
mov dword [edi + 0x1e78], 8
mov dword [edi + 0x1e7c], 8
mov dword [edi + 0x1edc], 0
mov dword [edi + 0x1ee0], 0x42c80000
mov dword [edi + 0x1ed8], 0x42c80000
mov dword [edi + 0x1eec], 0
mov dword [edi + 0x1ee4], 0x3f800000
push eax
call fcn.1008e3a0
lea ecx, [ebp - 0x178]
call fcn.1002d2f0
lea ecx, [ebp - 0x98]
call fcn.1002d2f0
lea ecx, [ebp - 0x114]
mov dword [ebp - 4], 0xffffffff
call fcn.100590d0
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10037780
lea ecx, [esi + 0x58]
push eax
call fcn.10049550
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049550
push str.chams_local_scope
lea ecx, [ebp - 0x228]
lea esi, [edi + 0x1f24]
call fcn.1002d340
push str.blend_when_scoped
lea ecx, [ebp - 0x98]
mov dword [ebp - 4], 0xca
call fcn.1002d340
lea eax, [ebp - 0x228]
mov byte [ebp - 4], 0xcb
push eax
lea ecx, [edi + 0x1f5c]
call fcn.10052440
lea eax, [ebp - 0x98]
mov byte [edi + 0x1f8d], 1
push eax
lea ecx, [edi + 0x1f94]
call fcn.10052440
lea ecx, [ebp - 0x98]
mov byte [edi + 0x1f90], 0
call fcn.1002d2f0
lea ecx, [ebp - 0x228]
mov dword [ebp - 4], 0xffffffff
call fcn.1002d2f0
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10037780
lea ecx, [esi + 0x58]
push eax
call fcn.10049550
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049550
push 0x100d5af8
lea ecx, [ebp - 0x210]
lea esi, [edi + 0x1fac]
call fcn.1008e3d0
mov dword [ebp - 4], 0xcc
push str.chams_local_scope_blend
lea ecx, [ebp - 0x98]
call fcn.1002d340
push 0x100d37e4
lea ecx, [ebp - 0x178]
mov byte [ebp - 4], 0xcd
call fcn.1002d340
lea eax, [ebp - 0x98]
mov byte [ebp - 4], 0xce
push eax
lea ecx, [edi + 0x1fe4]
call fcn.10052440
lea eax, [ebp - 0x210]
mov byte [edi + 0x2015], 0
push eax
lea ecx, [edi + 0x204c]
mov dword [edi + 0x2064], 0
mov dword [edi + 0x1fbc], 8
mov dword [edi + 0x1fc0], 8
mov dword [edi + 0x2020], 0
mov dword [edi + 0x2024], 0x42c80000
mov dword [edi + 0x201c], 0x42c80000
mov dword [edi + 0x2030], 0
mov dword [edi + 0x2028], 0x3f800000
call fcn.1008e3a0
lea ecx, [ebp - 0x178]
call fcn.1002d2f0
lea ecx, [ebp - 0x98]
call fcn.1002d2f0
lea ecx, [ebp - 0x210]
mov dword [ebp - 4], 0xffffffff
call fcn.100590d0
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10037780
lea ecx, [esi + 0x58]
push eax
call fcn.10049550
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049550
lea ecx, [ebp - 0x2d]
call fcn.100282b0
push str.visible
lea ecx, [ebp - 0x190]
mov esi, eax
call fcn.1002d340
push str.invisible
lea ecx, [ebp - 0x178]
mov dword [ebp - 4], 0xcf
call fcn.1002d340
lea eax, [ebp - 0x160]
mov dword [ebp - 4], 0xd0
push eax
lea eax, [ebp - 0x190]
push eax
lea ecx, [ebp - 0xbc]
call fcn.1008e250
push esi
lea ecx, [ebp - 0x5c]
push dword [eax + 4]
push dword [eax]
call fcn.1008e270
mov byte [ebp - 4], 0xd1
lea ecx, [ebp - 0x80]
push str.chams_enemy
call fcn.1002d340
push 0x100d6938
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 0xd2
call fcn.1002d340
lea ecx, [ebp - 0x48]
call fcn.10028290
lea eax, [ebp - 0x80]
mov byte [ebp - 4], 0xd4
push eax
lea ecx, [edi + 0x20a0]
call fcn.10052440
lea eax, [ebp - 0x98]
mov byte [edi + 0x20d1], 1
push eax
lea ecx, [edi + 0x20d8]
call fcn.10052440
xor eax, eax
mov ecx, 0xf
cmp byte [edi + 0x20d1], al
cmovne eax, ecx
lea ecx, [ebp - 0x5c]
mov dword [edi + 0x210c], eax
add eax, 0x14
mov dword [edi + 0x2078], eax
mov dword [edi + 0x207c], eax
call fcn.10041910
lea ecx, [ebp - 0x5c]
mov esi, eax
call fcn.10054510
mov dword [ebp - 0x2c], eax
cmp esi, eax
je 0x100689c3
lea ecx, [edi + 0x20f0]
mov dword [ebp - 0x20], ecx
mov edi, ecx
nop dword [eax]
push esi
mov ecx, edi
call fcn.10058e60
add esi, 0x18
cmp esi, dword [ebp - 0x2c]
jne 0x100689b0
mov edi, dword [ebp - 0x34]
lea ecx, [ebp - 0x48]
call fcn.10041910
mov esi, eax
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x24], esi
call fcn.10054510
mov ecx, eax
mov dword [ebp - 0x1c], 0
sub ecx, esi
xor edx, edx
add ecx, 3
shr ecx, 2
cmp esi, eax
cmova ecx, edx
mov dword [ebp - 0x20], ecx
test ecx, ecx
je 0x10068aa9
lea ecx, [edi + 0x2100]
mov eax, dword [esi]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x1f4]
push eax
call fcn.1002cc60
lea ecx, [edi + 0x2100]
mov esi, dword [eax]
lea eax, [ebp - 0xfc]
push eax
call fcn.1002cc70
push esi
lea edx, [ebp - 0x18]
lea ecx, [ebp - 0xf8]
push dword [eax]
call fcn.1002e600
add esp, 8
lea ecx, [edi + 0x2100]
mov esi, eax
lea eax, [ebp - 0xf4]
push eax
call fcn.1002cc60
push eax
mov ecx, esi
call fcn.1002d2d0
lea ecx, [edi + 0x20f0]
mov byte [ebp - 0x25], al
call fcn.1002cd60
cmp dword [ebp - 0x18], eax
jae 0x10068a78
lea eax, [ebp - 0x18]
push eax
lea ecx, [edi + 0x2100]
call fcn.10049550
cmp byte [ebp - 0x25], 0
je 0x10068a8a
mov eax, dword [edi + 0x20cc]
test eax, eax
je 0x10068a8a
call eax
mov eax, dword [ebp - 0x1c]
lea ecx, [edi + 0x2100]
mov esi, dword [ebp - 0x24]
inc eax
add esi, 4
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x24], esi
cmp eax, dword [ebp - 0x20]
jne 0x10068a01
lea ecx, [ebp - 0x48]
call fcn.1002cc80
lea ecx, [ebp - 0x98]
call fcn.1002d2f0
lea ecx, [ebp - 0x80]
call fcn.1002d2f0
lea ecx, [ebp - 0x5c]
call fcn.1002cd80
push fcn.1002d2f0
push 2
push 0x18
lea eax, [ebp - 0x190]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.100c5072
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x100377b0
lea esi, [edi + 0x2068]
lea ecx, [esi + 0x58]
push eax
call fcn.10049550
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049550
lea ecx, [ebp - 0x2e]
call fcn.100282b0
push str.material
lea ecx, [ebp - 0x2d0]
mov esi, eax
call fcn.1002d340
push str.flat
lea ecx, [ebp - 0x2b8]
mov dword [ebp - 4], 0xd5
call fcn.1002d340
push str.metallic
lea ecx, [ebp - 0x2a0]
mov byte [ebp - 4], 0xd6
call fcn.1002d340
push str.gloss
lea ecx, [ebp - 0x288]
mov byte [ebp - 4], 0xd7
call fcn.1002d340
push str.glow
lea ecx, [ebp - 0x270]
mov byte [ebp - 4], 0xd8
call fcn.1002d340
push str.outline_glow
lea ecx, [ebp - 0x258]
mov byte [ebp - 4], 0xd9
call fcn.1002d340
lea eax, [ebp - 0x240]
mov dword [ebp - 4], 0xda
push eax
lea eax, [ebp - 0x2d0]
push eax
lea ecx, [ebp - 0xbc]
call fcn.1008e250
push esi
lea ecx, [ebp - 0x44]
push dword [eax + 4]
push dword [eax]
call fcn.1008e270
push str.chams_enemy_mat
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 0xdb
call fcn.1002d340
push str.chams_enemy_material
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 0xdc
call fcn.1002d340
lea eax, [ebp - 0x80]
mov byte [ebp - 4], 0xdd
push eax
lea ecx, [edi + 0x2148]
call fcn.10052440
lea eax, [ebp - 0x98]
mov byte [edi + 0x2179], 1
push eax
lea ecx, [edi + 0x2180]
call fcn.10052440
xor ecx, ecx
mov eax, 0xf
cmp byte [edi + 0x2179], cl
cmovne ecx, eax
mov dword [edi + 0x21ac], ecx
lea eax, [ecx + 0x14]
lea ecx, [ebp - 0x44]
mov dword [edi + 0x2120], eax
mov dword [edi + 0x2124], eax
call fcn.10041910
lea ecx, [ebp - 0x44]
mov esi, eax
call fcn.10054510
mov dword [ebp - 0x2c], eax
lea ecx, [edi + 0x2198]
cmp esi, eax
je 0x10068c9c
mov dword [ebp - 0x20], ecx
mov edi, ecx
push esi
mov ecx, edi
call fcn.10058e60
add esi, 0x18
cmp esi, dword [ebp - 0x2c]
jne 0x10068c83
mov edi, dword [ebp - 0x34]
lea ecx, [edi + 0x2198]
call fcn.1002cd60
test eax, eax
je 0x10068caf
mov dword [edi + 0x21a8], 0
lea ecx, [ebp - 0x98]
call fcn.1002d2f0
lea ecx, [ebp - 0x80]
call fcn.1002d2f0
lea ecx, [ebp - 0x44]
call fcn.1002cd80
push fcn.1002d2f0
push 6
push 0x18
lea eax, [ebp - 0x2d0]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.100c5072
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x100377b0
lea esi, [edi + 0x2110]
lea ecx, [esi + 0x58]
push eax
call fcn.10049550
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049550
push str.chams_enemy_vis
lea ecx, [ebp - 0xf0]
lea esi, [edi + 0x21b0]
call fcn.1002d340
push str.color_visible
lea ecx, [ebp - 0x98]
mov dword [ebp - 4], 0xde
call fcn.1002d340
lea eax, [ebp - 0x98]
mov byte [ebp - 4], 0xdf
push eax
lea ecx, [edi + 0x2220]
mov dword [ebp - 0x1c], 0xff3cc896
call fcn.10052440
lea eax, [ebp - 0xf0]
push eax
lea ecx, [edi + 0x21e8]
call fcn.10052440
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x98]
mov dword [edi + 0x2238], eax
mov dword [edi + 0x2250], 0
call fcn.1002d2f0
lea ecx, [ebp - 0xf0]
mov dword [ebp - 4], 0xffffffff
call fcn.1002d2f0
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x100377b0
lea ecx, [esi + 0x58]
push eax
call fcn.10049550
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049550
push str.chams_enemy2_vis
lea ecx, [ebp - 0x12c]
lea esi, [edi + 0x226c]
call fcn.1002d340
push str.glow_color
lea ecx, [ebp - 0x98]
mov dword [ebp - 4], 0xe0
call fcn.1002d340
lea eax, [ebp - 0x98]
mov byte [ebp - 4], 0xe1
push eax
lea ecx, [edi + 0x22dc]
mov dword [ebp - 0x1c], 0xffc8ffff
call fcn.10052440
lea eax, [ebp - 0x12c]
push eax
lea ecx, [edi + 0x22a4]
call fcn.10052440
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x98]
mov dword [edi + 0x22f4], eax
mov dword [edi + 0x230c], 0
call fcn.1002d2f0
lea ecx, [ebp - 0x12c]
mov dword [ebp - 4], 0xffffffff
call fcn.1002d2f0
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x100377c0
lea ecx, [esi + 0x58]
push eax
call fcn.10049550
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049550
push str.chams_enemy_invis
lea ecx, [ebp - 0x114]
lea esi, [edi + 0x2328]
call fcn.1002d340
push str.color_invisible
lea ecx, [ebp - 0x98]
mov dword [ebp - 4], 0xe2
call fcn.1002d340
lea eax, [ebp - 0x98]
mov byte [ebp - 4], 0xe3
push eax
lea ecx, [edi + 0x2398]
mov dword [ebp - 0x1c], 0xffb4783c
call fcn.10052440
lea eax, [ebp - 0x114]
push eax
lea ecx, [edi + 0x2360]
call fcn.10052440
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x98]
mov dword [edi + 0x23b0], eax
mov dword [edi + 0x23c8], 0
call fcn.1002d2f0
lea ecx, [ebp - 0x114]
mov dword [ebp - 4], 0xffffffff
call fcn.1002d2f0
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x100377b0
lea ecx, [esi + 0x58]
push eax
call fcn.10049550
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049550
push str.chams_enemy2_invis
lea ecx, [ebp - 0x228]
lea esi, [edi + 0x23e4]
call fcn.1002d340
push str.glow_color
lea ecx, [ebp - 0x98]
mov dword [ebp - 4], 0xe4
call fcn.1002d340
lea eax, [ebp - 0x98]
mov byte [ebp - 4], 0xe5
push eax
lea ecx, [edi + 0x2454]
mov dword [ebp - 0x1c], 0xb4c8ffff
call fcn.10052440
lea eax, [ebp - 0x228]
push eax
lea ecx, [edi + 0x241c]
call fcn.10052440
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x98]
mov dword [edi + 0x246c], eax
mov dword [edi + 0x2484], 0
call fcn.1002d2f0
lea ecx, [ebp - 0x228]
mov dword [ebp - 4], 0xffffffff
call fcn.1002d2f0
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x100377c0
lea ecx, [esi + 0x58]
push eax
call fcn.10049550
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049550
push 0x100d5af8
lea ecx, [ebp - 0x210]
lea esi, [edi + 0x2790]
call fcn.1008e3d0
push str.chams_enemy_blend
lea ecx, [ebp - 0x80]
mov dword [ebp - 4], 0xe6
call fcn.1002d340
push str.visible
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 0xe7
call fcn.1002d340
mov byte [ebp - 4], 0xe8
lea eax, [ebp - 0x80]
push eax
lea ecx, [edi + 0x27c8]
call fcn.10052440
lea eax, [ebp - 0x98]
mov byte [edi + 0x27f9], 1
push eax
lea ecx, [edi + 0x2818]
call fcn.10052440
xor ecx, ecx
mov dword [edi + 0x2804], 0
cmp byte [esi + 0x69], cl
mov eax, 0xf
mov dword [edi + 0x2808], 0x42c80000
cmovne ecx, eax
mov dword [edi + 0x2800], 0x42c80000
mov dword [edi + 0x2848], ecx
mov dword [edi + 0x2814], 0
mov dword [edi + 0x280c], 0x3f800000
lea eax, [ecx + 8]
mov dword [edi + 0x27a0], eax
lea ecx, [edi + 0x2830]
mov dword [edi + 0x27a4], eax
lea eax, [ebp - 0x210]
push eax
call fcn.1008e3a0
lea ecx, [ebp - 0x98]
call fcn.1002d2f0
lea ecx, [ebp - 0x80]
call fcn.1002d2f0
lea ecx, [ebp - 0x210]
mov dword [ebp - 4], 0xffffffff
call fcn.100590d0
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x100377b0
lea ecx, [esi + 0x58]
push eax
call fcn.10049550
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049550
push 0x100d5af8
lea ecx, [ebp - 0x240]
lea esi, [edi + 0x28d4]
call fcn.1008e3d0
push str.chams_enemy_blend2
lea ecx, [ebp - 0x80]
mov dword [ebp - 4], 0xe9
call fcn.1002d340
push str.invis
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 0xea
call fcn.1002d340
lea eax, [ebp - 0x80]
mov byte [ebp - 4], 0xeb
push eax
lea ecx, [edi + 0x290c]
call fcn.10052440
lea eax, [ebp - 0x98]
mov byte [edi + 0x293d], 1
push eax
lea ecx, [edi + 0x295c]
call fcn.10052440
xor eax, eax
mov ecx, 0xf
cmp byte [edi + 0x293d], al
cmovne eax, ecx
mov dword [edi + 0x298c], eax
lea ecx, [edi + 0x2974]
add eax, 8
mov dword [edi + 0x2948], 0
mov dword [edi + 0x28e4], eax
mov dword [edi + 0x28e8], eax
lea eax, [ebp - 0x240]
push eax
mov dword [edi + 0x294c], 0x42c80000
mov dword [edi + 0x2944], 0x42480000
mov dword [edi + 0x2958], 0
mov dword [edi + 0x2950], 0x3f800000
call fcn.1008e3a0
lea ecx, [ebp - 0x98]
call fcn.1002d2f0
lea ecx, [ebp - 0x80]
call fcn.1002d2f0
lea ecx, [ebp - 0x240]
mov dword [ebp - 4], 0xffffffff
call fcn.100590d0
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x100377b0
lea ecx, [esi + 0x58]
push eax
call fcn.10049550
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049550
push str.chams_enemy_reflectivity
lea ecx, [ebp - 0xd8]
lea esi, [edi + 0x24a0]
call fcn.1002d340
push str.reflectivity_color
lea ecx, [ebp - 0x98]
mov dword [ebp - 4], 0xec
call fcn.1002d340
lea eax, [ebp - 0x98]
mov byte [ebp - 4], 0xed
push eax
lea ecx, [edi + 0x2510]
mov dword [ebp - 0x1c], 0xff00b2ff
call fcn.10052440
lea eax, [ebp - 0xd8]
push eax
lea ecx, [edi + 0x24d8]
call fcn.10052440
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x98]
mov dword [edi + 0x2528], eax
mov dword [edi + 0x2540], 0
call fcn.1002d2f0
lea ecx, [ebp - 0xd8]
mov dword [ebp - 4], 0xffffffff
call fcn.1002d2f0
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x100377e0
lea ecx, [esi + 0x58]
push eax
call fcn.10049550
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049550
push 0x100d5af8
lea ecx, [ebp - 0x68]
lea esi, [edi + 0x255c]
call fcn.1008e3d0
push str.chams_reflectivity
lea ecx, [ebp - 0x80]
mov dword [ebp - 4], 0xee
call fcn.1002d340
push 0x100d6a38
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 0xef
call fcn.1002d340
lea eax, [ebp - 0x80]
mov byte [ebp - 4], 0xf0
push eax
lea ecx, [edi + 0x2594]
call fcn.10052440
lea eax, [ebp - 0x98]
mov byte [edi + 0x25c5], 1
push eax
lea ecx, [edi + 0x25e4]
call fcn.10052440
xor ecx, ecx
mov dword [edi + 0x25d0], 0
cmp byte [esi + 0x69], cl
mov eax, 0xf
mov dword [edi + 0x25d4], 0x42c80000
cmovne ecx, eax
mov dword [edi + 0x25cc], 0x42860000
mov dword [edi + 0x2614], ecx
mov dword [edi + 0x25e0], 0
mov dword [edi + 0x25d8], 0x3f800000
lea eax, [ecx + 8]
mov dword [edi + 0x256c], eax
lea ecx, [edi + 0x25fc]
mov dword [edi + 0x2570], eax
lea eax, [ebp - 0x68]
push eax
call fcn.1008e3a0
lea ecx, [ebp - 0x98]
call fcn.1002d2f0
lea ecx, [ebp - 0x80]
call fcn.1002d2f0
lea ecx, [ebp - 0x68]
mov dword [ebp - 4], 0xffffffff
call fcn.100590d0
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x100377e0
lea ecx, [esi + 0x58]
push eax
call fcn.10049550
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049550
push 0x100d5af8
lea ecx, [ebp - 0x144]
lea esi, [edi + 0x2618]
call fcn.1008e3d0
push str.chams_enemy_shine
lea ecx, [ebp - 0x80]
mov dword [ebp - 4], 0xf1
call fcn.1002d340
push 0x100d6ab0
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 0xf2
call fcn.1002d340
lea eax, [ebp - 0x80]
mov byte [ebp - 4], 0xf3
push eax
lea ecx, [edi + 0x2650]
call fcn.10052440
lea eax, [ebp - 0x98]
mov byte [edi + 0x2681], 1
push eax
lea ecx, [edi + 0x26a0]
call fcn.10052440
xor eax, eax
mov dword [edi + 0x268c], 0
cmp byte [edi + 0x2681], al
mov ecx, 0xf
mov dword [edi + 0x2690], 0x42c80000
cmovne eax, ecx
mov dword [edi + 0x2688], 0x41200000
mov dword [edi + 0x26d0], eax
lea ecx, [edi + 0x26b8]
add eax, 8
mov dword [edi + 0x269c], 0
mov dword [edi + 0x2628], eax
mov dword [edi + 0x262c], eax
lea eax, [ebp - 0x144]
push eax
mov dword [edi + 0x2694], 0x3f800000
call fcn.1008e3a0
lea ecx, [ebp - 0x98]
call fcn.1002d2f0
lea ecx, [ebp - 0x80]
call fcn.1002d2f0
lea ecx, [ebp - 0x144]
mov dword [ebp - 4], 0xffffffff
call fcn.100590d0
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x100377e0
lea ecx, [esi + 0x58]
push eax
call fcn.10049550
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049550
push 0x100d5af8
lea ecx, [ebp - 0x178]
lea esi, [edi + 0x26d4]
call fcn.1008e3d0
push str.chams_enemy_rim
lea ecx, [ebp - 0x98]
mov dword [ebp - 4], 0xf4
call fcn.1002d340
push 0x100d6a90
lea ecx, [ebp - 0x144]
mov byte [ebp - 4], 0xf5
call fcn.1002d340
mov byte [ebp - 4], 0xf6
lea eax, [ebp - 0x98]
push eax
lea ecx, [edi + 0x270c]
call fcn.10052440
lea eax, [ebp - 0x144]
mov byte [edi + 0x273d], 1
push eax
lea ecx, [edi + 0x275c]
call fcn.10052440
xor eax, eax
mov dword [edi + 0x2748], 0
cmp byte [edi + 0x273d], al
mov ecx, 0xf
mov dword [edi + 0x274c], 0x42c80000
cmovne eax, ecx
mov dword [edi + 0x2744], 0x41200000
mov dword [edi + 0x278c], eax
lea ecx, [edi + 0x2774]
add eax, 8
mov dword [edi + 0x2758], 0
mov dword [edi + 0x26e4], eax
mov dword [edi + 0x26e8], eax
lea eax, [ebp - 0x178]
push eax
mov dword [edi + 0x2750], 0x3f800000
call fcn.1008e3a0
lea ecx, [ebp - 0x144]
call fcn.1002d2f0
lea ecx, [ebp - 0x98]
call fcn.1002d2f0
lea ecx, [ebp - 0x178]
mov dword [ebp - 4], 0xffffffff
call fcn.100590d0
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x100377e0
lea ecx, [esi + 0x58]
push eax
call fcn.10049550
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049550
lea ecx, [ebp - 0x2d]
call fcn.100282b0
push str.visible
lea ecx, [ebp - 0xb0]
mov esi, eax
call fcn.1002d340
push str.invisible
lea ecx, [ebp - 0x98]
mov dword [ebp - 4], 0xf7
call fcn.1002d340
lea eax, [ebp - 0x80]
mov dword [ebp - 4], 0xf8
push eax
lea eax, [ebp - 0xb0]
push eax
lea ecx, [ebp - 0xbc]
call fcn.1008e250
push esi
lea ecx, [ebp - 0x5c]
push dword [eax + 4]
push dword [eax]
call fcn.1008e270
push str.chams_friendly
lea ecx, [ebp - 0x144]
mov byte [ebp - 4], 0xf9
call fcn.1002d340
push 0x100d6b04
lea ecx, [ebp - 0x178]
mov byte [ebp - 4], 0xfa
call fcn.1002d340
lea ecx, [ebp - 0x48]
call fcn.10028290
lea eax, [ebp - 0x144]
mov byte [ebp - 4], 0xfc
push eax
lea ecx, [edi + 0x2d24]
call fcn.10052440
lea eax, [ebp - 0x178]
mov byte [edi + 0x2d55], 1
push eax
lea ecx, [edi + 0x2d5c]
call fcn.10052440
xor eax, eax
mov ecx, 0xf
cmp byte [edi + 0x2d55], al
cmovne eax, ecx
lea ecx, [ebp - 0x5c]
mov dword [edi + 0x2d90], eax
add eax, 0x14
mov dword [edi + 0x2cfc], eax
mov dword [edi + 0x2d00], eax
call fcn.10041910
lea ecx, [ebp - 0x5c]
mov esi, eax
call fcn.10054510
mov dword [ebp - 0x2c], eax
cmp esi, eax
je 0x100698d5
lea ecx, [edi + 0x2d74]
mov dword [ebp - 0x20], ecx
mov edi, ecx
push esi
mov ecx, edi
call fcn.10058e60
add esi, 0x18
cmp esi, dword [ebp - 0x2c]
jne 0x100698c2
mov edi, dword [ebp - 0x34]
lea ecx, [ebp - 0x48]
call fcn.10041910
mov esi, eax
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x24], esi
call fcn.10054510
mov ecx, eax
mov dword [ebp - 0x1c], 0
sub ecx, esi
xor edx, edx
add ecx, 3
shr ecx, 2
cmp esi, eax
cmova ecx, edx
mov dword [ebp - 0x20], ecx
test ecx, ecx
je 0x100699bb
lea ecx, [edi + 0x2d84]
mov eax, dword [esi]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x1f4]
push eax
call fcn.1002cc60
lea ecx, [edi + 0x2d84]
mov esi, dword [eax]
lea eax, [ebp - 0xfc]
push eax
call fcn.1002cc70
push esi
lea edx, [ebp - 0x18]
lea ecx, [ebp - 0xf8]
push dword [eax]
call fcn.1002e600
add esp, 8
lea ecx, [edi + 0x2d84]
mov esi, eax
lea eax, [ebp - 0xf4]
push eax
call fcn.1002cc60
push eax
mov ecx, esi
call fcn.1002d2d0
lea ecx, [edi + 0x2d74]
mov byte [ebp - 0x25], al
call fcn.1002cd60
cmp dword [ebp - 0x18], eax
jae 0x1006998a
lea eax, [ebp - 0x18]
push eax
lea ecx, [edi + 0x2d84]
call fcn.10049550
cmp byte [ebp - 0x25], 0
je 0x1006999c
mov eax, dword [edi + 0x2d50]
test eax, eax
je 0x1006999c
call eax
mov eax, dword [ebp - 0x1c]
lea ecx, [edi + 0x2d84]
mov esi, dword [ebp - 0x24]
inc eax
add esi, 4
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x24], esi
cmp eax, dword [ebp - 0x20]
jne 0x10069913
lea ecx, [ebp - 0x48]
call fcn.1002cc80
lea ecx, [ebp - 0x178]
call fcn.1002d2f0
lea ecx, [ebp - 0x144]
call fcn.1002d2f0
lea ecx, [ebp - 0x5c]
call fcn.1002cd80
push fcn.1002d2f0
push 2
push 0x18
lea eax, [ebp - 0xb0]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.100c5072
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10037800
lea esi, [edi + 0x2cec]
lea ecx, [esi + 0x58]
push eax
call fcn.10049550
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049550
lea ecx, [ebp - 0x2e]
call fcn.100282b0
push str.material
lea ecx, [ebp - 0x2d0]
mov esi, eax
call fcn.1002d340
push str.flat
lea ecx, [ebp - 0x2b8]
mov dword [ebp - 4], 0xfd
call fcn.1002d340
push str.metallic
lea ecx, [ebp - 0x2a0]
mov byte [ebp - 4], 0xfe
call fcn.1002d340
push str.gloss
lea ecx, [ebp - 0x288]
mov byte [ebp - 4], 0xff
call fcn.1002d340
push str.glow
lea ecx, [ebp - 0x270]
mov dword [ebp - 4], pe_nt_image_headers32
call fcn.1002d340
push str.outline_glow
lea ecx, [ebp - 0x258]
mov byte [ebp - 4], 1
call fcn.1002d340
lea eax, [ebp - 0x240]
mov dword [ebp - 4], 0x102
push eax
lea eax, [ebp - 0x2d0]
push eax
lea ecx, [ebp - 0xbc]
call fcn.1008e250
push esi
lea ecx, [ebp - 0x44]
push dword [eax + 4]
push dword [eax]
call fcn.1008e270
push str.chams_friendly_mat
lea ecx, [ebp - 0x144]
mov byte [ebp - 4], 3
call fcn.1002d340
push str.chams_friendly_material
lea ecx, [ebp - 0x178]
mov byte [ebp - 4], 4
call fcn.1002d340
lea eax, [ebp - 0x144]
mov byte [ebp - 4], 5
push eax
lea ecx, [edi + 0x2dcc]
call fcn.10052440
lea eax, [ebp - 0x178]
mov byte [edi + 0x2dfd], 1
push eax
lea ecx, [edi + 0x2e04]
call fcn.10052440
xor ecx, ecx
mov eax, 0xf
cmp byte [edi + 0x2dfd], cl
cmovne ecx, eax
mov dword [edi + 0x2e30], ecx
lea eax, [ecx + 0x14]
lea ecx, [ebp - 0x44]
mov dword [edi + 0x2da4], eax
mov dword [edi + 0x2da8], eax
call fcn.10041910
lea ecx, [ebp - 0x44]
mov esi, eax
call fcn.10054510
mov dword [ebp - 0x2c], eax
lea ecx, [edi + 0x2e1c]
cmp esi, eax
je 0x10069bba
mov dword [ebp - 0x20], ecx
mov edi, ecx
push esi
mov ecx, edi
call fcn.10058e60
add esi, 0x18
cmp esi, dword [ebp - 0x2c]
jne 0x10069ba1
mov edi, dword [ebp - 0x34]
lea ecx, [edi + 0x2e1c]
call fcn.1002cd60
test eax, eax
je 0x10069bcd
mov dword [edi + 0x2e2c], 0
lea ecx, [ebp - 0x178]
call fcn.1002d2f0
lea ecx, [ebp - 0x144]
call fcn.1002d2f0
lea ecx, [ebp - 0x44]
call fcn.1002cd80
push fcn.1002d2f0
push 6
push 0x18
lea eax, [ebp - 0x2d0]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.100c5072
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10037800
lea esi, [edi + 0x2d94]
lea ecx, [esi + 0x58]
push eax
call fcn.10049550
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049550
push str.chams_friendly_vis
lea ecx, [ebp - 0x98]
lea esi, [edi + 0x2e34]
call fcn.1002d340
push str.color_visible
lea ecx, [ebp - 0x178]
mov dword [ebp - 4], 0x106
call fcn.1002d340
lea eax, [ebp - 0x178]
mov byte [ebp - 4], 7
push eax
lea ecx, [edi + 0x2ea4]
mov dword [ebp - 0x1c], 0xff00c8ff
call fcn.10052440
lea eax, [ebp - 0x98]
push eax
lea ecx, [edi + 0x2e6c]
call fcn.10052440
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x178]
mov dword [edi + 0x2ebc], eax
mov dword [edi + 0x2ed4], 0
call fcn.1002d2f0
lea ecx, [ebp - 0x98]
mov dword [ebp - 4], 0xffffffff
call fcn.1002d2f0
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10037800
lea ecx, [esi + 0x58]
push eax
call fcn.10049550
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049550
push str.chams_friendly_invis
lea ecx, [ebp - 0x80]
lea esi, [edi + 0x2ef0]
call fcn.1002d340
push str.color_invisible
lea ecx, [ebp - 0x178]
mov dword [ebp - 4], 0x108
call fcn.1002d340
lea eax, [ebp - 0x178]
mov byte [ebp - 4], 9
push eax
lea ecx, [edi + 0x2f60]
mov dword [ebp - 0x1c], 0xff0032ff
call fcn.10052440
lea eax, [ebp - 0x80]
push eax
lea ecx, [edi + 0x2f28]
call fcn.10052440
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x178]
mov dword [edi + 0x2f78], eax
mov dword [edi + 0x2f90], 0
call fcn.1002d2f0
lea ecx, [ebp - 0x80]
mov dword [ebp - 4], 0xffffffff
call fcn.1002d2f0
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10037800
lea ecx, [esi + 0x58]
push eax
call fcn.10049550
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049550
push 0x100d5af8
lea ecx, [ebp - 0xf0]
lea esi, [edi + 0x2fac]
call fcn.1008e3d0
push str.chams_friendly_blend
lea ecx, [ebp - 0x178]
mov dword [ebp - 4], 0x10a
call fcn.1002d340
push 0x100d37e4
lea ecx, [ebp - 0x144]
mov byte [ebp - 4], 0xb
call fcn.1002d340
lea eax, [ebp - 0x178]
mov byte [ebp - 4], 0xc
push eax
lea ecx, [edi + 0x2fe4]
call fcn.10052440
lea eax, [ebp - 0xf0]
mov byte [edi + 0x3015], 0
mov dword [edi + 0x3064], 0
lea ecx, [edi + 0x304c]
mov dword [edi + 0x2fbc], 8
mov dword [edi + 0x2fc0], 8
mov dword [edi + 0x3020], 0
mov dword [edi + 0x3024], 0x42c80000
mov dword [edi + 0x301c], 0x42c80000
mov dword [edi + 0x3030], 0
mov dword [edi + 0x3028], 0x3f800000
push eax
call fcn.1008e3a0
lea ecx, [ebp - 0x144]
call fcn.1002d2f0
lea ecx, [ebp - 0x178]
call fcn.1002d2f0
lea ecx, [ebp - 0xf0]
mov dword [ebp - 4], 0xffffffff
call fcn.100590d0
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10037800
lea ecx, [esi + 0x58]
push eax
call fcn.10049550
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049550
push 0x100d6b24
lea ecx, [ebp - 0x12c]
lea esi, [edi + 0x284c]
call fcn.1002d340
push str.chams_history
lea ecx, [ebp - 0x178]
mov dword [ebp - 4], 0x10d
call fcn.1002d340
lea eax, [ebp - 0x12c]
mov byte [ebp - 4], 0xe
push eax
lea ecx, [edi + 0x2884]
call fcn.10052440
lea eax, [ebp - 0x178]
mov byte [edi + 0x28b5], 1
push eax
lea ecx, [edi + 0x28bc]
call fcn.10052440
lea ecx, [ebp - 0x178]
mov byte [edi + 0x28b8], 0
call fcn.1002d2f0
lea ecx, [ebp - 0x12c]
mov dword [ebp - 4], 0xffffffff
call fcn.1002d2f0
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10037810
lea ecx, [esi + 0x58]
push eax
call fcn.10049550
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049550
lea ecx, [ebp - 0x2d]
call fcn.100282b0
push str.material
lea ecx, [ebp - 0x2d0]
mov esi, eax
call fcn.1002d340
push str.flat
lea ecx, [ebp - 0x2b8]
mov dword [ebp - 4], 0x10f
call fcn.1002d340
push str.metallic
lea ecx, [ebp - 0x2a0]
mov byte [ebp - 4], 0x10
call fcn.1002d340
push str.gloss
lea ecx, [ebp - 0x288]
mov byte [ebp - 4], 0x11
call fcn.1002d340
push str.glow
lea ecx, [ebp - 0x270]
mov byte [ebp - 4], 0x12
call fcn.1002d340
push str.outline_glow
lea ecx, [ebp - 0x258]
mov byte [ebp - 4], 0x13
call fcn.1002d340
lea eax, [ebp - 0x240]
mov dword [ebp - 4], 0x114
push eax
lea eax, [ebp - 0x2d0]
push eax
lea ecx, [ebp - 0xbc]
call fcn.1008e250
push esi
lea ecx, [ebp - 0x44]
push dword [eax + 4]
push dword [eax]
call fcn.1008e270
push str.chams_enemy_history_mat
lea ecx, [ebp - 0x144]
mov byte [ebp - 4], 0x15
call fcn.1002d340
push str.chams_history_material
lea ecx, [ebp - 0x178]
mov byte [ebp - 4], 0x16
call fcn.1002d340
lea eax, [ebp - 0x144]
mov byte [ebp - 4], 0x17
push eax
lea ecx, [edi + 0x29c8]
call fcn.10052440
lea eax, [ebp - 0x178]
mov byte [edi + 0x29f9], 1
push eax
lea ecx, [edi + 0x2a00]
call fcn.10052440
xor ecx, ecx
mov eax, 0xf
cmp byte [edi + 0x29f9], cl
cmovne ecx, eax
mov dword [edi + 0x2a2c], ecx
lea eax, [ecx + 0x14]
lea ecx, [ebp - 0x44]
mov dword [edi + 0x29a0], eax
mov dword [edi + 0x29a4], eax
call fcn.10041910
lea ecx, [ebp - 0x44]
mov esi, eax
call fcn.10054510
mov dword [ebp - 0x2c], eax
lea ecx, [edi + 0x2a18]
cmp esi, eax
je 0x1006a169
mov dword [ebp - 0x20], ecx
mov edi, ecx
nop
push esi
mov ecx, edi
call fcn.10058e60
add esi, 0x18
cmp esi, dword [ebp - 0x2c]
jne 0x1006a150
mov edi, dword [ebp - 0x34]
lea ecx, [edi + 0x2a18]
call fcn.1002cd60
test eax, eax
je 0x1006a17c
mov dword [edi + 0x2a28], 0
lea ecx, [ebp - 0x178]
call fcn.1002d2f0
lea ecx, [ebp - 0x144]
call fcn.1002d2f0
lea ecx, [ebp - 0x44]
call fcn.1002cd80
push fcn.1002d2f0
push 6
push 0x18
lea eax, [ebp - 0x2d0]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.100c5072
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10037810
lea esi, [edi + 0x2990]
lea ecx, [esi + 0x58]
push eax
call fcn.10049550
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049550
push str.chams_history_col
lea ecx, [ebp - 0x98]
lea esi, [edi + 0x2a30]
call fcn.1002d340
push str.color
lea ecx, [ebp - 0x178]
mov dword [ebp - 4], 0x118
call fcn.1002d340
lea eax, [ebp - 0x178]
mov byte [ebp - 4], 0x19
push eax
lea ecx, [edi + 0x2aa0]
mov dword [ebp - 0x1c], 0xff000000
call fcn.10052440
lea eax, [ebp - 0x98]
push eax
lea ecx, [edi + 0x2a68]
call fcn.10052440
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x178]
mov dword [edi + 0x2ab8], eax
mov dword [edi + 0x2ad0], 0
call fcn.1002d2f0
lea ecx, [ebp - 0x98]
mov dword [ebp - 4], 0xffffffff
call fcn.1002d2f0
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10037810
lea ecx, [esi + 0x58]
push eax
call fcn.10049550
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049550
push 0x100d5af8
lea ecx, [ebp - 0x80]
lea esi, [edi + 0x2aec]
call fcn.1008e3d0
push str.chams_history_blend
lea ecx, [ebp - 0x178]
mov dword [ebp - 4], 0x11a
call fcn.1002d340
push 0x100d37e4
lea ecx, [ebp - 0x144]
mov byte [ebp - 4], 0x1b
call fcn.1002d340
lea eax, [ebp - 0x178]
mov byte [ebp - 4], 0x1c
push eax
lea ecx, [edi + 0x2b24]
call fcn.10052440
lea eax, [ebp - 0x80]
mov byte [edi + 0x2b55], 0
push eax
lea ecx, [edi + 0x2b8c]
mov dword [edi + 0x2ba4], 0
mov dword [edi + 0x2afc], 8
mov dword [edi + 0x2b00], 8
mov dword [edi + 0x2b60], 0
mov dword [edi + 0x2b64], 0x42c80000
mov dword [edi + 0x2b5c], 0x42c80000
mov dword [edi + 0x2b70], 0
mov dword [edi + 0x2b68], 0x3f800000
call fcn.1008e3a0
lea ecx, [ebp - 0x144]
call fcn.1002d2f0
lea ecx, [ebp - 0x178]
call fcn.1002d2f0
lea ecx, [ebp - 0x80]
mov dword [ebp - 4], 0xffffffff
call fcn.100590d0
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10037810
lea ecx, [esi + 0x58]
push eax
call fcn.10049550
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049550
push str.history_skeleton
lea ecx, [ebp - 0xf0]
lea esi, [edi + 0x2ba8]
call fcn.1002d340
push 0x100d6be4
lea ecx, [ebp - 0x178]
mov dword [ebp - 4], 0x11d
call fcn.1002d340
lea eax, [ebp - 0xf0]
mov byte [ebp - 4], 0x1e
push eax
lea ecx, [edi + 0x2be0]
call fcn.10052440
lea eax, [ebp - 0x178]
mov byte [edi + 0x2c11], 1
push eax
lea ecx, [edi + 0x2c18]
call fcn.10052440
lea ecx, [ebp - 0x178]
mov byte [edi + 0x2c14], 0
call fcn.1002d2f0
lea ecx, [ebp - 0xf0]
mov dword [ebp - 4], 0xffffffff
call fcn.1002d2f0
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10037810
lea ecx, [esi + 0x58]
push eax
call fcn.10049550
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049550
push str.history_skeleton_col
lea ecx, [ebp - 0x12c]
lea esi, [edi + 0x2c30]
call fcn.1002d340
push str.color
lea ecx, [ebp - 0x178]
mov dword [ebp - 4], 0x11f
call fcn.1002d340
lea eax, [ebp - 0x178]
mov byte [ebp - 4], 0x20
push eax
lea ecx, [edi + 0x2ca0]
mov dword [ebp - 0x1c], 0xffffffff
call fcn.10052440
lea eax, [ebp - 0x12c]
push eax
lea ecx, [edi + 0x2c68]
call fcn.10052440
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x178]
mov dword [edi + 0x2cb8], eax
mov dword [edi + 0x2cd0], 0
call fcn.1002d2f0
lea ecx, [ebp - 0x12c]
mov dword [ebp - 4], 0xffffffff
call fcn.1002d2f0
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10037810
lea ecx, [esi + 0x58]
push eax
call fcn.10049550
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049550
push str.chams_shot
lea ecx, [ebp - 0x114]
lea esi, [edi + 0x3720]
call fcn.1002d340
mov dword [ebp - 4], 0x121
push str.shot_chams
lea ecx, [ebp - 0x178]
call fcn.1002d340
lea eax, [ebp - 0x114]
mov byte [ebp - 4], 0x22
push eax
lea ecx, [edi + 0x3758]
call fcn.10052440
lea eax, [ebp - 0x178]
mov byte [edi + 0x3789], 1
push eax
lea ecx, [edi + 0x3790]
call fcn.10052440
lea ecx, [ebp - 0x178]
mov byte [edi + 0x378c], 0
call fcn.1002d2f0
lea ecx, [ebp - 0x114]
mov dword [ebp - 4], 0xffffffff
call fcn.1002d2f0
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10037820
lea ecx, [esi + 0x58]
push eax
call fcn.10049550
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049550
lea ecx, [ebp - 0x2e]
call fcn.100282b0
push str.material
lea ecx, [ebp - 0x2d0]
mov esi, eax
call fcn.1002d340
push str.flat
lea ecx, [ebp - 0x2b8]
mov dword [ebp - 4], 0x123
call fcn.1002d340
push str.metallic
lea ecx, [ebp - 0x2a0]
mov byte [ebp - 4], 0x24
call fcn.1002d340
push str.gloss
lea ecx, [ebp - 0x288]
mov byte [ebp - 4], 0x25
call fcn.1002d340
push str.glow
lea ecx, [ebp - 0x270]
mov byte [ebp - 4], 0x26
call fcn.1002d340
push str.outline_glow
lea ecx, [ebp - 0x258]
mov byte [ebp - 4], 0x27
call fcn.1002d340
lea eax, [ebp - 0x240]
mov dword [ebp - 4], 0x128
push eax
lea eax, [ebp - 0x2d0]
push eax
lea ecx, [ebp - 0xbc]
call fcn.1008e250
push esi
push dword [eax + 4]
push dword [eax]
lea ecx, [ebp - 0x44]
call fcn.1008e270
push str.chams_shot_mat
lea ecx, [ebp - 0x144]
mov byte [ebp - 4], 0x29
call fcn.1002d340
push str.chams_material
lea ecx, [ebp - 0x178]
mov byte [ebp - 4], 0x2a
call fcn.1002d340
lea eax, [ebp - 0x144]
mov byte [ebp - 4], 0x2b
push eax
lea ecx, [edi + 0x37e0]
call fcn.10052440
lea eax, [ebp - 0x178]
mov byte [edi + 0x3811], 1
push eax
lea ecx, [edi + 0x3818]
call fcn.10052440
xor ecx, ecx
mov eax, 0xf
cmp byte [edi + 0x3811], cl
cmovne ecx, eax
mov dword [edi + 0x3844], ecx
lea eax, [ecx + 0x14]
lea ecx, [ebp - 0x44]
mov dword [edi + 0x37b8], eax
mov dword [edi + 0x37bc], eax
call fcn.10041910
lea ecx, [ebp - 0x44]
mov esi, eax
call fcn.10054510
mov dword [ebp - 0x2c], eax
lea ecx, [edi + 0x3830]
cmp esi, eax
je 0x1006a7e9
mov dword [ebp - 0x20], ecx
mov edi, ecx
nop word [eax + eax]
push esi
mov ecx, edi
call fcn.10058e60
add esi, 0x18
cmp esi, dword [ebp - 0x2c]
jne 0x1006a7d0
mov edi, dword [ebp - 0x34]
lea ecx, [edi + 0x3830]
call fcn.1002cd60
test eax, eax
je 0x1006a7fc
mov dword [edi + 0x3840], 0
lea ecx, [ebp - 0x178]
call fcn.1002d2f0
lea ecx, [ebp - 0x144]
call fcn.1002d2f0
lea ecx, [ebp - 0x44]
call fcn.1002cd80
push fcn.1002d2f0
push 6
push 0x18
lea eax, [ebp - 0x2d0]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.100c5072
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10037820
lea esi, [edi + 0x37a8]
lea ecx, [esi + 0x58]
push eax
call fcn.10049550
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049550
push str.chams_shot_col
lea ecx, [ebp - 0x98]
lea esi, [edi + 0x3848]
call fcn.1002d340
push str.color
lea ecx, [ebp - 0x178]
mov dword [ebp - 4], 0x12c
call fcn.1002d340
lea eax, [ebp - 0x178]
mov byte [ebp - 4], 0x2d
push eax
lea ecx, [edi + 0x38b8]
mov dword [ebp - 0x1c], 0xffffffff
call fcn.10052440
lea eax, [ebp - 0x98]
push eax
lea ecx, [edi + 0x3880]
call fcn.10052440
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x178]
mov dword [edi + 0x38d0], eax
mov dword [edi + 0x38e8], 0
call fcn.1002d2f0
lea ecx, [ebp - 0x98]
mov dword [ebp - 4], 0xffffffff
call fcn.1002d2f0
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10037820
lea ecx, [esi + 0x58]
push eax
call fcn.10049550
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049550
push 0x100d5af8
lea ecx, [ebp - 0x80]
lea esi, [edi + 0x3904]
call fcn.1008e3d0
push str.chams_shot_blend
lea ecx, [ebp - 0x178]
mov dword [ebp - 4], 0x12e
call fcn.1002d340
push 0x100d37e4
lea ecx, [ebp - 0x144]
mov byte [ebp - 4], 0x2f
call fcn.1002d340
lea eax, [ebp - 0x178]
mov byte [ebp - 4], 0x30
push eax
lea ecx, [edi + 0x393c]
call fcn.10052440
lea eax, [ebp - 0x80]
mov byte [edi + 0x396d], 0
push eax
lea ecx, [edi + 0x39a4]
mov dword [edi + 0x39bc], 0
mov dword [edi + 0x3914], 8
mov dword [edi + 0x3918], 8
mov dword [edi + 0x3978], 0x3f800000
mov dword [edi + 0x397c], 0x437f0000
mov dword [edi + 0x3974], 0x437f0000
mov dword [edi + 0x3988], 0
mov dword [edi + 0x3980], 0x3f800000
call fcn.1008e3a0
lea ecx, [ebp - 0x144]
call fcn.1002d2f0
lea ecx, [ebp - 0x178]
call fcn.1002d2f0
lea ecx, [ebp - 0x80]
mov dword [ebp - 4], 0xffffffff
call fcn.100590d0
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10037820
lea ecx, [esi + 0x58]
push eax
call fcn.10049550
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049550
push 0x100d5f28
lea ecx, [ebp - 0xf0]
lea esi, [edi + 0x39c0]
call fcn.1008e3d0
push str.chams_shot_fadetime
lea ecx, [ebp - 0x144]
mov dword [ebp - 4], 0x131
call fcn.1002d340
push str.fade_time
lea ecx, [ebp - 0x178]
mov byte [ebp - 4], 0x32
call fcn.1002d340
lea eax, [ebp - 0x144]
mov byte [ebp - 4], 0x33
push eax
lea ecx, [edi + 0x39f8]
call fcn.10052440
lea eax, [ebp - 0x178]
mov byte [edi + 0x3a29], 1
push eax
lea ecx, [edi + 0x3a48]
call fcn.10052440
xor eax, eax
mov dword [edi + 0x3a34], 0
cmp byte [edi + 0x3a29], al
mov ecx, 0xf
mov dword [edi + 0x3a38], 0x41200000
cmovne eax, ecx
mov dword [edi + 0x3a30], 0x3e99999a
mov dword [edi + 0x3a78], eax
lea ecx, [edi + 0x3a60]
add eax, 8
mov dword [edi + 0x3a44], 1
mov dword [edi + 0x39d0], eax
mov dword [edi + 0x39d4], eax
lea eax, [ebp - 0xf0]
push eax
mov dword [edi + 0x3a3c], 0x3dcccccd
call fcn.1008e3a0
lea ecx, [ebp - 0x178]
call fcn.1002d2f0
lea ecx, [ebp - 0x144]
call fcn.1002d2f0
lea ecx, [ebp - 0xf0]
mov dword [ebp - 4], 0xffffffff
call fcn.100590d0
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10037820
lea ecx, [esi + 0x58]
push eax
call fcn.10049550
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049550
push 0x100d6c5c
lea ecx, [ebp - 0x12c]
lea esi, [edi + 0x3b38]
call fcn.1002d340
push str.weapon_chams
lea ecx, [ebp - 0x178]
mov dword [ebp - 4], 0x134
call fcn.1002d340
lea eax, [ebp - 0x12c]
mov byte [ebp - 4], 0x35
push eax
lea ecx, [edi + 0x3b70]
call fcn.10052440
lea eax, [ebp - 0x178]
mov byte [edi + 0x3ba1], 1
push eax
lea ecx, [edi + 0x3ba8]
call fcn.10052440
lea ecx, [ebp - 0x178]
mov byte [edi + 0x3ba4], 0
call fcn.1002d2f0
lea ecx, [ebp - 0x12c]
mov dword [ebp - 4], 0xffffffff
call fcn.1002d2f0
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10037830
lea ecx, [esi + 0x58]
push eax
call fcn.10049550
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049550
lea ecx, [ebp - 0x2d]
call fcn.100282b0
push str.material
lea ecx, [ebp - 0x2d0]
mov esi, eax
call fcn.1002d340
push str.flat
lea ecx, [ebp - 0x2b8]
mov dword [ebp - 4], 0x136
call fcn.1002d340
push str.metallic
lea ecx, [ebp - 0x2a0]
mov byte [ebp - 4], 0x37
call fcn.1002d340
push str.gloss
lea ecx, [ebp - 0x288]
mov byte [ebp - 4], 0x38
call fcn.1002d340
push str.glow
lea ecx, [ebp - 0x270]
mov byte [ebp - 4], 0x39
call fcn.1002d340
push str.outline_glow
lea ecx, [ebp - 0x258]
mov byte [ebp - 4], 0x3a
call fcn.1002d340
lea eax, [ebp - 0x240]
mov dword [ebp - 4], 0x13b
push eax
lea eax, [ebp - 0x2d0]
push eax
lea ecx, [ebp - 0xbc]
call fcn.1008e250
push esi
lea ecx, [ebp - 0x44]
push dword [eax + 4]
push dword [eax]
call fcn.1008e270
push str.weapon_chams_mat
lea ecx, [ebp - 0x144]
mov byte [ebp - 4], 0x3c
call fcn.1002d340
push str.weapon_material
lea ecx, [ebp - 0x178]
mov byte [ebp - 4], 0x3d
call fcn.1002d340
lea eax, [ebp - 0x144]
mov byte [ebp - 4], 0x3e
push eax
lea ecx, [edi + 0x3bf8]
call fcn.10052440
lea eax, [ebp - 0x178]
mov byte [edi + 0x3c29], 1
push eax
lea ecx, [edi + 0x3c30]
call fcn.10052440
xor ecx, ecx
cmp byte [edi + 0x3c29], cl
mov eax, 0xf
cmovne ecx, eax
mov dword [edi + 0x3c5c], ecx
lea eax, [ecx + 0x14]
lea ecx, [ebp - 0x44]
mov dword [edi + 0x3bd0], eax
mov dword [edi + 0x3bd4], eax
call fcn.10041910
lea ecx, [ebp - 0x44]
mov esi, eax
call fcn.10054510
mov dword [ebp - 0x2c], eax
lea ecx, [edi + 0x3c48]
cmp esi, eax
je 0x1006ae0c
mov dword [ebp - 0x20], ecx
mov edi, ecx
push esi
mov ecx, edi
call fcn.10058e60
add esi, 0x18
cmp esi, dword [ebp - 0x2c]
jne 0x1006adf3
mov edi, dword [ebp - 0x34]
lea ecx, [edi + 0x3c48]
call fcn.1002cd60
test eax, eax
je 0x1006ae1f
mov dword [edi + 0x3c58], 0
lea ecx, [ebp - 0x178]
call fcn.1002d2f0
lea ecx, [ebp - 0x144]
call fcn.1002d2f0
lea ecx, [ebp - 0x44]
call fcn.1002cd80
push fcn.1002d2f0
push 6
push 0x18
lea eax, [ebp - 0x2d0]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.100c5072
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10037830
lea esi, [edi + 0x3bc0]
lea ecx, [esi + 0x58]
push eax
call fcn.10049550
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049550
push str.weapon_chams_col
lea ecx, [ebp - 0x98]
lea esi, [edi + 0x3c60]
call fcn.1002d340
push str.weapon_color
lea ecx, [ebp - 0x178]
mov dword [ebp - 4], 0x13f
call fcn.1002d340
lea eax, [ebp - 0x178]
mov byte [ebp - 4], 0x40
push eax
lea ecx, [edi + 0x3cd0]
mov dword [ebp - 0x1c], 0xff000000
call fcn.10052440
lea eax, [ebp - 0x98]
push eax
lea ecx, [edi + 0x3c98]
call fcn.10052440
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x178]
mov dword [edi + 0x3ce8], eax
mov dword [edi + 0x3d00], 0
call fcn.1002d2f0
lea ecx, [ebp - 0x98]
mov dword [ebp - 4], 0xffffffff
call fcn.1002d2f0
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10037830
lea ecx, [esi + 0x58]
push eax
call fcn.10049550
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049550
push 0x100d5af8
lea ecx, [ebp - 0x80]
lea esi, [edi + 0x3dd8]
call fcn.1008e3d0
push str.weapon_chams_blend
lea ecx, [ebp - 0x178]
mov dword [ebp - 4], 0x141
call fcn.1002d340
push 0x100d37e4
lea ecx, [ebp - 0x144]
mov byte [ebp - 4], 0x42
call fcn.1002d340
lea eax, [ebp - 0x178]
mov byte [ebp - 4], 0x43
push eax
lea ecx, [edi + 0x3e10]
call fcn.10052440
lea eax, [ebp - 0x80]
mov byte [edi + 0x3e41], 0
push eax
lea ecx, [edi + 0x3e78]
mov dword [edi + 0x3e90], 0
mov dword [edi + 0x3de8], 8
mov dword [edi + 0x3dec], 8
mov dword [edi + 0x3e4c], 0x3f800000
mov dword [edi + 0x3e50], 0x437f0000
mov dword [edi + 0x3e48], 0x437f0000
mov dword [edi + 0x3e5c], 0
mov dword [edi + 0x3e54], 0x3f800000
call fcn.1008e3a0
lea ecx, [ebp - 0x144]
call fcn.1002d2f0
lea ecx, [ebp - 0x178]
call fcn.1002d2f0
lea ecx, [ebp - 0x80]
mov dword [ebp - 4], 0xffffffff
call fcn.100590d0
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10037830
lea ecx, [esi + 0x58]
push eax
call fcn.10049550
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049550
push str.weapon_chams_col2
lea ecx, [ebp - 0xf0]
lea esi, [edi + 0x3d1c]
call fcn.1002d340
push str.weapon_color_2
lea ecx, [ebp - 0x178]
mov dword [ebp - 4], 0x144
call fcn.1002d340
lea eax, [ebp - 0x178]
mov byte [ebp - 4], 0x45
push eax
lea ecx, [edi + 0x3d8c]
mov dword [ebp - 0x1c], 0xffffffff
call fcn.10052440
lea eax, [ebp - 0xf0]
push eax
lea ecx, [edi + 0x3d54]
call fcn.10052440
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x178]
mov dword [edi + 0x3da4], eax
mov dword [edi + 0x3dbc], 0
call fcn.1002d2f0
lea ecx, [ebp - 0xf0]
mov dword [ebp - 4], 0xffffffff
call fcn.1002d2f0
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10037830
lea ecx, [esi + 0x58]
push eax
call fcn.10049550
mov dword [ebp - 0x1c], esi
mov dword [esi + 0x18], 1
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ecx + 0x18], 0xeb
add eax, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], 0xaf
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.10049550
push 0x100d5af8
lea ecx, [ebp - 0x12c]
call fcn.1008e3d0
push str.weapon_chams_blend2
lea ecx, [ebp - 0x178]
mov dword [ebp - 4], 0x146
call fcn.1002d340
push 0x100d37e4
lea ecx, [ebp - 0x144]
mov byte [ebp - 4], 0x47
call fcn.1002d340
lea eax, [ebp - 0x178]
mov byte [ebp - 4], 0x48
push eax
lea ecx, [edi + 0x3ecc]
call fcn.10052440
lea eax, [ebp - 0x12c]
mov byte [edi + 0x3efd], 0
push eax
lea ecx, [edi + 0x3f34]
mov dword [edi + 0x3f4c], 0
mov dword [edi + 0x3ea4], 8
mov dword [edi + 0x3ea8], 8
mov dword [edi + 0x3f08], 0x3f800000
mov dword [edi + 0x3f0c], 0x437f0000
mov dword [edi + 0x3f04], 0x437f0000
mov dword [edi + 0x3f18], 0
mov dword [edi + 0x3f10], 0x3f800000
call fcn.1008e3a0
lea ecx, [ebp - 0x144]
call fcn.1002d2f0
lea ecx, [ebp - 0x178]
call fcn.1002d2f0
lea ecx, [ebp - 0x12c]
mov dword [ebp - 4], 0xffffffff
call fcn.100590d0
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x10037830
push eax
lea ecx, [edi + 0x3eec]
call fcn.10049550
lea eax, [edi + 0x3e94]
mov dword [ebp - 0x18], eax
mov dword [eax + 0x18], 1
mov edx, dword [ebp - 0x18]
imul eax, dword [edx + 0x18], 0xeb
add eax, 0x14
mov dword [edx + 4], eax
mov eax, dword [ebp - 0x18]
mov dword [eax + 0xc], 0xaf
mov eax, dword [ebp - 0x18]
lea ecx, [edi + 0x18]
mov edx, dword [edi + 0x2c]
mov dword [eax + 0x1c], edx
lea eax, [ebp - 0x18]
push eax
call fcn.10049550
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.100c4f7f
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret