Function at 0x1004faa0
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100c366b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x124
mov eax, 0xb4
mov dword [ebp - 0x70], 0
push esi
push edi
cmp word [0x100fe0c0], ax
je 0x1004fd9d
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x34]
mov esi, dword [eax + 0x18]
add esi, 0x14
mov ecx, esi
mov edi, dword [esi + 0x14]
cmp edi, 0x10
jb 0x1004faf1
mov ecx, dword [esi]
mov eax, dword [esi + 0x10]
mov edx, eax
push 0x1a
push str.STRUCTURE_FORT_STONE_JA_01
mov dword [ebp - 0x14], eax
call fcn.1000ba70
add esp, 8
test al, al
jne 0x1004fd9d
mov ecx, esi
cmp edi, 0x10
jb 0x1004fb19
mov ecx, dword [esi]
mov edx, dword [ebp - 0x14]
push 0x1a
push str.STRUCTURE_FORT_STONE_BJ_01
call fcn.1000ba70
add esp, 8
test al, al
jne 0x1004fd9d
mov ecx, esi
cmp edi, 0x10
jb 0x1004fb3c
mov ecx, dword [esi]
mov edx, dword [ebp - 0x14]
push 0x1a
push str.STRUCTURE_FORT_STONE_CT_01
call fcn.1000ba70
add esp, 8
test al, al
jne 0x1004fd9d
mov ecx, esi
cmp edi, 0x10
jb 0x1004fb5f
mov ecx, dword [esi]
mov edx, dword [ebp - 0x14]
push 0x1a
push str.STRUCTURE_FORT_STONE_HT_01
call fcn.1000ba70
add esp, 8
test al, al
jne 0x1004fd9d
mov ecx, esi
cmp edi, 0x10
jb 0x1004fb82
mov ecx, dword [esi]
mov edx, dword [ebp - 0x14]
push 0x1a
push str.STRUCTURE_FORT_STONE_JA_02
call fcn.1000ba70
add esp, 8
test al, al
jne 0x1004fd9d
mov ecx, esi
cmp edi, 0x10
jb 0x1004fba5
mov ecx, dword [esi]
mov edx, dword [ebp - 0x14]
push 0x1a
push str.STRUCTURE_FORT_STONE_BJ_02
call fcn.1000ba70
add esp, 8
test al, al
jne 0x1004fd9d
mov ecx, esi
cmp edi, 0x10
jb 0x1004fbc8
mov ecx, dword [esi]
mov edx, dword [ebp - 0x14]
push 0x1a
push str.STRUCTURE_FORT_STONE_CT_02
call fcn.1000ba70
add esp, 8
test al, al
jne 0x1004fd9d
mov ecx, esi
cmp edi, 0x10
jb 0x1004fbeb
mov ecx, dword [esi]
mov edx, dword [ebp - 0x14]
push 0x1a
push str.STRUCTURE_FORT_STONE_HT_02
call fcn.1000ba70
add esp, 8
test al, al
jne 0x1004fd9d
mov ecx, esi
cmp edi, 0x10
jb 0x1004fc0e
mov ecx, dword [esi]
mov edx, dword [ebp - 0x14]
push 0x1a
push str.STRUCTURE_FORT_STONE_JA_03
call fcn.1000ba70
add esp, 8
test al, al
jne 0x1004fd9d
mov ecx, esi
cmp edi, 0x10
jb 0x1004fc31
mov ecx, dword [esi]
mov edx, dword [ebp - 0x14]
push 0x1a
push str.STRUCTURE_FORT_STONE_BJ_03
call fcn.1000ba70
add esp, 8
test al, al
jne 0x1004fd9d
mov ecx, esi
cmp edi, 0x10
jb 0x1004fc54
mov ecx, dword [esi]
mov edx, dword [ebp - 0x14]
push 0x1a
push str.STRUCTURE_FORT_STONE_CT_03
call fcn.1000ba70
add esp, 8
test al, al
jne 0x1004fd9d
mov ecx, esi
cmp edi, 0x10
jb 0x1004fc77
mov ecx, dword [esi]
mov edx, dword [ebp - 0x14]
push 0x1a
push str.STRUCTURE_FORT_STONE_HT_03
call fcn.1000ba70
add esp, 8
test al, al
jne 0x1004fd9d
mov ecx, esi
cmp edi, 0x10
jb 0x1004fc9a
mov ecx, dword [esi]
mov edx, dword [ebp - 0x14]
push 0x1a
push str.STRUCTURE_FORT_STONE_JA_04
call fcn.1000ba70
add esp, 8
test al, al
jne 0x1004fd9d
mov ecx, esi
cmp edi, 0x10
jb 0x1004fcbd
mov ecx, dword [esi]
mov edx, dword [ebp - 0x14]
push 0x1a
push str.STRUCTURE_FORT_STONE_BJ_04
call fcn.1000ba70
add esp, 8
test al, al
jne 0x1004fd9d
mov ecx, esi
cmp edi, 0x10
jb 0x1004fce0
mov ecx, dword [esi]
mov edx, dword [ebp - 0x14]
push 0x1a
push str.STRUCTURE_FORT_STONE_CT_04
call fcn.1000ba70
add esp, 8
test al, al
jne 0x1004fd9d
mov ecx, esi
cmp edi, 0x10
jb 0x1004fd03
mov ecx, dword [esi]
mov edx, dword [ebp - 0x14]
push 0x1a
push str.STRUCTURE_FORT_STONE_HT_04
call fcn.1000ba70
add esp, 8
test al, al
jne 0x1004fd9d
mov ecx, esi
cmp edi, 0x10
jb 0x1004fd26
mov ecx, dword [esi]
mov edx, dword [ebp - 0x14]
push 0x1a
push str.STRUCTURE_FORT_STONE_JA_05
call fcn.1000ba70
add esp, 8
test al, al
jne 0x1004fd9d
mov ecx, esi
cmp edi, 0x10
jb 0x1004fd45
mov ecx, dword [esi]
mov edx, dword [ebp - 0x14]
push 0x1a
push str.STRUCTURE_FORT_STONE_BJ_05
call fcn.1000ba70
add esp, 8
test al, al
jne 0x1004fd9d
mov ecx, esi
cmp edi, 0x10
jb 0x1004fd64
mov ecx, dword [esi]
mov edx, dword [ebp - 0x14]
push 0x1a
push str.STRUCTURE_FORT_STONE_CT_05
call fcn.1000ba70
add esp, 8
test al, al
jne 0x1004fd9d
cmp edi, 0x10
jb 0x1004fd81
mov esi, dword [esi]
mov edx, dword [ebp - 0x14]
mov ecx, esi
push 0x1a
push str.STRUCTURE_FORT_STONE_HT_05
call fcn.1000ba70
add esp, 8
test al, al
je 0x1005145c
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x34]
mov esi, dword [eax + 0x18]
add esi, 0x14
mov ecx, esi
mov edi, dword [esi + 0x14]
cmp edi, 0x10
jb 0x1004fdb5
mov ecx, dword [esi]
mov eax, dword [esi + 0x10]
mov edx, eax
push 0x1a
push str.STRUCTURE_FORT_STONE_JA_01
mov dword [ebp - 0x14], eax
call fcn.1000ba70
add esp, 8
test al, al
je 0x1004fdd9
mov byte [ebp - 0xd], 1
jmp 0x100500b3
mov ecx, esi
cmp edi, 0x10
jb 0x1004fde2
mov ecx, dword [esi]
mov edx, dword [ebp - 0x14]
push 0x1a
push str.STRUCTURE_FORT_STONE_BJ_01
call fcn.1000ba70
add esp, 8
test al, al
je 0x1004fe01
mov byte [ebp - 0xd], 2
jmp 0x100500b3
mov ecx, esi
cmp edi, 0x10
jb 0x1004fe0a
mov ecx, dword [esi]
mov edx, dword [ebp - 0x14]
push 0x1a
push str.STRUCTURE_FORT_STONE_CT_01
call fcn.1000ba70
add esp, 8
test al, al
je 0x1004fe29
mov byte [ebp - 0xd], 3
jmp 0x100500b3
mov ecx, esi
cmp edi, 0x10
jb 0x1004fe32
mov ecx, dword [esi]
mov edx, dword [ebp - 0x14]
push 0x1a
push str.STRUCTURE_FORT_STONE_HT_01
call fcn.1000ba70
add esp, 8
test al, al
jne 0x100500af
mov ecx, esi
cmp edi, 0x10
jb 0x1004fe55
mov ecx, dword [esi]
mov edx, dword [ebp - 0x14]
push 0x1a
push str.STRUCTURE_FORT_STONE_JA_02
call fcn.1000ba70
add esp, 8
test al, al
je 0x1004fe74
mov byte [ebp - 0xd], 1
jmp 0x100500b3
mov ecx, esi
cmp edi, 0x10
jb 0x1004fe7d
mov ecx, dword [esi]
mov edx, dword [ebp - 0x14]
push 0x1a
push str.STRUCTURE_FORT_STONE_BJ_02
call fcn.1000ba70
add esp, 8
test al, al
je 0x1004fe9c
mov byte [ebp - 0xd], 2
jmp 0x100500b3
mov ecx, esi
cmp edi, 0x10
jb 0x1004fea5
mov ecx, dword [esi]
mov edx, dword [ebp - 0x14]
push 0x1a
push str.STRUCTURE_FORT_STONE_CT_02
call fcn.1000ba70
add esp, 8
test al, al
je 0x1004fec4
mov byte [ebp - 0xd], 3
jmp 0x100500b3
mov ecx, esi
cmp edi, 0x10
jb 0x1004fecd
mov ecx, dword [esi]
mov edx, dword [ebp - 0x14]
push 0x1a
push str.STRUCTURE_FORT_STONE_HT_02
call fcn.1000ba70
add esp, 8
test al, al
jne 0x100500af
mov ecx, esi
cmp edi, 0x10
jb 0x1004fef0
mov ecx, dword [esi]
mov edx, dword [ebp - 0x14]
push 0x1a
push str.STRUCTURE_FORT_STONE_JA_03
call fcn.1000ba70
add esp, 8
test al, al
je 0x1004ff0f
mov byte [ebp - 0xd], 1
jmp 0x100500b3
mov ecx, esi
cmp edi, 0x10
jb 0x1004ff18
mov ecx, dword [esi]
mov edx, dword [ebp - 0x14]
push 0x1a
push str.STRUCTURE_FORT_STONE_BJ_03
call fcn.1000ba70
add esp, 8
test al, al
je 0x1004ff37
mov byte [ebp - 0xd], 2
jmp 0x100500b3
mov ecx, esi
cmp edi, 0x10
jb 0x1004ff40
mov ecx, dword [esi]
mov edx, dword [ebp - 0x14]
push 0x1a
push str.STRUCTURE_FORT_STONE_CT_03
call fcn.1000ba70
add esp, 8
test al, al
je 0x1004ff5f
mov byte [ebp - 0xd], 3
jmp 0x100500b3
mov ecx, esi
cmp edi, 0x10
jb 0x1004ff68
mov ecx, dword [esi]
mov edx, dword [ebp - 0x14]
push 0x1a
push str.STRUCTURE_FORT_STONE_HT_03
call fcn.1000ba70
add esp, 8
test al, al
jne 0x100500af
mov ecx, esi
cmp edi, 0x10
jb 0x1004ff8b
mov ecx, dword [esi]
mov edx, dword [ebp - 0x14]
push 0x1a
push str.STRUCTURE_FORT_STONE_JA_04
call fcn.1000ba70
add esp, 8
test al, al
je 0x1004ffaa
mov byte [ebp - 0xd], 1
jmp 0x100500b3
mov ecx, esi
cmp edi, 0x10
jb 0x1004ffb3
mov ecx, dword [esi]
mov edx, dword [ebp - 0x14]
push 0x1a
push str.STRUCTURE_FORT_STONE_BJ_04
call fcn.1000ba70
add esp, 8
test al, al
je 0x1004ffd2
mov byte [ebp - 0xd], 2
jmp 0x100500b3
mov ecx, esi
cmp edi, 0x10
jb 0x1004ffdb
mov ecx, dword [esi]
mov edx, dword [ebp - 0x14]
push 0x1a
push str.STRUCTURE_FORT_STONE_CT_04
call fcn.1000ba70
add esp, 8
test al, al
je 0x1004fffa
mov byte [ebp - 0xd], 3
jmp 0x100500b3
mov ecx, esi
cmp edi, 0x10
jb 0x10050003
mov ecx, dword [esi]
mov edx, dword [ebp - 0x14]
push 0x1a
push str.STRUCTURE_FORT_STONE_HT_04
call fcn.1000ba70
add esp, 8
test al, al
jne 0x100500af
mov ecx, esi
cmp edi, 0x10
jb 0x10050026
mov ecx, dword [esi]
mov edx, dword [ebp - 0x14]
push 0x1a
push str.STRUCTURE_FORT_STONE_JA_05
call fcn.1000ba70
add esp, 8
test al, al
je 0x10050042
mov byte [ebp - 0xd], 1
jmp 0x100500b3
mov ecx, esi
cmp edi, 0x10
jb 0x1005004b
mov ecx, dword [esi]
mov edx, dword [ebp - 0x14]
push 0x1a
push str.STRUCTURE_FORT_STONE_BJ_05
call fcn.1000ba70
add esp, 8
test al, al
je 0x10050067
mov byte [ebp - 0xd], 2
jmp 0x100500b3
mov ecx, esi
cmp edi, 0x10
jb 0x10050070
mov ecx, dword [esi]
mov edx, dword [ebp - 0x14]
push 0x1a
push str.STRUCTURE_FORT_STONE_CT_05
call fcn.1000ba70
add esp, 8
test al, al
je 0x1005008c
mov byte [ebp - 0xd], 3
jmp 0x100500b3
cmp edi, 0x10
jb 0x10050093
mov esi, dword [esi]
mov edx, dword [ebp - 0x14]
mov ecx, esi
push 0x1a
push str.STRUCTURE_FORT_STONE_HT_05
call fcn.1000ba70
add esp, 8
test al, al
je 0x10051185
mov byte [ebp - 0xd], 4
lea ecx, [ebp - 0x114]
call fcn.100289e0
mov eax, dword [ebp + 8]
mov dword [ebp - 4], 0
mov edi, dword [0x100fe58c]
mov eax, dword [eax + 0x34]
mov esi, dword [eax + 0x18]
movzx eax, byte [esi + 8]
add esi, 8
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
movzx eax, byte [esi + 1]
xor ecx, eax
movzx eax, byte [esi + 2]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [esi + 3]
imul ecx, ecx, 0x1000193
xor ecx, eax
imul ecx, ecx, 0x1000193
and ecx, dword [0x100fe598]
mov eax, dword [edi + ecx*8]
add ecx, ecx
lea edx, [ecx*4 + 4]
mov ecx, dword [edi + ecx*4]
mov dword [ebp - 0x34], edx
mov edx, dword [0x100fe584]
mov dword [ebp - 0x28], ecx
nop dword [eax + eax]
cmp ecx, edx
jne 0x10050138
mov ecx, edx
jmp 0x10050140
mov ecx, dword [ebp - 0x34]
mov ecx, dword [ecx + edi]
mov ecx, dword [ecx]
cmp eax, ecx
je 0x10050152
mov ecx, dword [eax + 8]
cmp ecx, dword [esi]
je 0x10050154
mov eax, dword [eax]
mov ecx, dword [ebp - 0x28]
jmp 0x10050130
mov eax, edx
cmp eax, edx
je 0x10050398
push esi
call fcn.100651f0
mov eax, dword [eax + 4]
mov dword [ebp - 0x68], eax
mov esi, dword [eax]
mov dword [ebp - 0x3c], esi
cmp esi, eax
je 0x10050398
lea edi, [esi + 8]
push edi
lea ecx, [ebp - 0x60]
call fcn.1000a160
mov byte [ebp - 4], 1
add edi, 0x18
push 0
push 0
mov dword [ebp - 0xbc], 0
mov eax, dword [edi]
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xb8], 0
call fcn.1000ea50
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xb4], 0
mov dword [ebp - 0xb0], 0
mov dword [ebp - 0xac], 0
push edi
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], 3
call fcn.10029310
mov eax, dword [ebp + 8]
mov byte [ebp - 4], 4
mov eax, dword [eax + 0x34]
mov eax, dword [eax + 0x18]
add eax, 8
push eax
call fcn.100651f0
lea ecx, [ebp - 0x60]
push ecx
lea ecx, [ebp - 0x30]
push ecx
mov ecx, eax
call fcn.10067ee0
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x24]
mov dword [ebp - 0x64], eax
mov edi, dword [eax]
mov dword [ebp - 0x28], edi
cmp edi, eax
je 0x10050347
nop dword [eax]
cmp dword [ebp - 0x4c], 0x10
lea esi, [ebp - 0x60]
mov eax, dword [edi + 0xc]
mov edx, 0x811c9dc5
cmovae esi, dword [ebp - 0x60]
xor ecx, ecx
mov dword [ebp - 0x7c], eax
cmp dword [ebp - 0x50], ecx
jbe 0x10050252
nop dword [eax]
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [ebp - 0x50]
jb 0x10050240
and edx, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0x108]
lea eax, [edx + edx]
mov esi, dword [ecx + edx*8]
lea edx, [eax*4 + 4]
mov dword [ebp - 0x34], edx
mov edx, dword [ecx + eax*4]
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x110]
cmp edx, eax
je 0x10050286
mov eax, dword [ebp - 0x34]
mov eax, dword [ecx + eax]
mov eax, dword [eax]
cmp esi, eax
je 0x10050304
cmp dword [ebp - 0x4c], 0x10
lea edx, [ebp - 0x60]
mov edi, dword [esi + 0x1c]
lea ecx, [esi + 8]
cmovae edx, dword [ebp - 0x60]
cmp edi, 0x10
mov dword [ebp - 0x24], edi
mov edi, dword [ebp - 0x28]
jb 0x100502a9
mov ecx, dword [esi + 8]
push dword [ebp - 0x50]
mov eax, dword [esi + 0x18]
push edx
mov edx, eax
mov dword [ebp - 0x14], eax
call fcn.1000ba70
add esp, 8
test al, al
jne 0x100502ce
mov esi, dword [esi]
mov ecx, dword [ebp - 0x108]
mov edx, dword [ebp - 0x40]
jmp 0x10050274
cmp dword [ebp - 0x24], 0x10
lea eax, [esi + 8]
jb 0x100502d9
mov eax, dword [eax]
cmp dword [ebp - 0x4c], 0x10
lea ecx, [ebp - 0x60]
push dword [ebp - 0x14]
cmovae ecx, dword [ebp - 0x60]
mov edx, dword [ebp - 0x50]
push eax
call fcn.1000ba70
add esp, 8
test al, al
cmove esi, dword [ebp - 0x110]
cmp esi, dword [ebp - 0x110]
jne 0x1005031a
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0x84]
push eax
lea ecx, [ebp - 0x114]
call fcn.10068530
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0x48]
push eax
lea ecx, [ebp - 0x114]
call fcn.10068530
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x7c]
add dword [eax + 0x20], ecx
mov edi, dword [edi]
mov dword [ebp - 0x28], edi
cmp edi, dword [ebp - 0x64]
jne 0x10050220
mov esi, dword [ebp - 0x3c]
lea ecx, [ebp - 0xc0]
call fcn.10021bc0
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x4c]
cmp edx, 0x10
jb 0x1005038a
mov ecx, dword [ebp - 0x60]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10050380
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005146e
push edx
push ecx
call fcn.1006cd71
add esp, 8
mov esi, dword [esi]
mov dword [ebp - 0x3c], esi
cmp esi, dword [ebp - 0x68]
jne 0x10050175
mov ax, word [0x100fe0c0]
mov ecx, 0x652
cmp ax, cx
je 0x100503d9
mov ecx, 0x6e2
cmp ax, cx
je 0x100503d9
mov ecx, 0x8c4
cmp ax, cx
je 0x100503d9
mov ecx, 0x56e
cmp ax, cx
je 0x100503d9
cmp ax, 0xf
je 0x100503d9
cmp byte [0x100fe0a0], 0
je 0x10050933
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0x34]
mov eax, dword [eax + 0x18]
add eax, 8
push eax
call fcn.10065070
mov ecx, dword [eax + 4]
mov dword [ebp - 0x18], ecx
mov eax, dword [ecx]
mov dword [ebp - 0x34], eax
cmp eax, ecx
je 0x10050933
nop
lea esi, [eax + 8]
push esi
lea ecx, [ebp - 0xf4]
call fcn.1000a160
mov byte [ebp - 4], 5
add esi, 0x18
push 0
push 0
mov dword [ebp - 0xbc], 0
mov eax, dword [esi]
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xb8], 0
call fcn.1002b7a0
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xb4], 0
mov dword [ebp - 0xb0], 0
mov dword [ebp - 0xac], 0
push esi
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], 7
call fcn.10065990
xor eax, eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x4c], eax
mov byte [ebp - 4], 9
mov eax, dword [edi + 0x34]
mov eax, dword [eax + 0x18]
add eax, 8
push eax
call fcn.10065070
lea ecx, [ebp - 0xf4]
push ecx
lea ecx, [ebp - 0x84]
push ecx
mov ecx, eax
call fcn.10067d90
mov edi, dword [ebp - 0x84]
mov edi, dword [edi + 0x24]
mov esi, dword [edi]
cmp esi, edi
je 0x100505ea
nop dword [eax + eax]
lea eax, [esi + 8]
push eax
lea ecx, [ebp - 0xa0]
call fcn.1000a160
mov eax, dword [esi + 0x20]
mov dword [ebp - 0x88], eax
lea eax, [ebp - 0xa0]
mov byte [ebp - 4], 0xa
push eax
lea ecx, [ebp - 0xdc]
call fcn.1000a160
mov ecx, dword [ebp - 0x88]
or dword [ebp - 0x70], 1
mov dword [ebp - 0xc4], ecx
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x50]
cmp dword [ebp - 0x14], eax
je 0x10050546
movups xmm0, xmmword [ebp - 0xdc]
mov dword [eax + 0x10], 0
mov edx, 0xf
mov dword [eax + 0x14], 0
movups xmmword [eax], xmm0
mov byte [ebp - 0xdc], 0
movq xmm0, qword [ebp - 0xcc]
movq qword [eax + 0x10], xmm0
mov dword [eax + 0x18], ecx
add eax, 0x1c
mov dword [ebp - 0x50], eax
jmp 0x10050562
lea ecx, [ebp - 0xdc]
push ecx
push eax
lea ecx, [ebp - 0x54]
call fcn.10066650
mov eax, dword [ebp - 0x4c]
mov edx, dword [ebp - 0xc8]
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 0xa
cmp edx, 0x10
jb 0x1005059a
mov ecx, dword [ebp - 0xdc]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10050590
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005146e
push edx
push ecx
call fcn.1006cd71
add esp, 8
mov byte [ebp - 4], 9
mov edx, dword [ebp - 0x8c]
cmp edx, 0x10
jb 0x100505d8
mov ecx, dword [ebp - 0xa0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100505ce
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005146e
push edx
push ecx
call fcn.1006cd71
add esp, 8
mov esi, dword [esi]
cmp esi, edi
jne 0x100504c0
mov edi, dword [ebp - 0x54]
mov dword [ebp - 0x40], edi
jmp 0x100505ec
xor edi, edi
mov esi, dword [ebp - 0x50]
mov eax, 0x92492493
mov ecx, esi
sub ecx, edi
imul ecx
push 0x1004a100
add edx, ecx
mov ecx, edi
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, esi
push eax
mov dword [ebp - 0x7c], eax
call fcn.10066f50
add esp, 8
mov dword [ebp - 0x3c], edi
cmp edi, esi
je 0x10050841
nop word [eax + eax]
push edi
lea ecx, [ebp - 0x130]
call fcn.1000a160
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x118], eax
lea eax, [ebp - 0x130]
mov byte [ebp - 4], 0xc
push eax
lea ecx, [ebp - 0xd8]
call fcn.1000a160
mov byte [ebp - 4], 0xd
lea eax, [ebp - 0xd8]
cmp dword [ebp - 0xc4], 0x10
cmovae eax, dword [ebp - 0xd8]
push eax
mov eax, 0x485e20
call eax
add esp, 4
mov dword [ebp - 0x2c], eax
test eax, eax
je 0x100507b7
mov edx, dword [eax]
mov ecx, eax
push 0x30cf
mov edx, dword [edx + 0x278]
call edx
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x1c]
mov byte [ebp - 0x1c], 0xc6
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], 0x404090
mov edx, dword [ebp - 0x68]
push edx
mov eax, 1
mov ecx, dword [ebp - 0x24]
call dword [ebp - 0x64]
mov eax, dword [ebp - 0x7c]
mov byte [ebp - 0x1c], al
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], 0x404090
mov edx, dword [ebp - 0x68]
push edx
mov eax, 1
mov ecx, dword [ebp - 0x24]
call dword [ebp - 0x64]
mov esi, dword [ebp - 0x40]
lea eax, [ebp - 0x68]
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x64], 0x426040
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x44], 0x404090
nop dword [eax]
push esi
lea ecx, [ebp - 0xa0]
call fcn.1000a160
mov eax, dword [esi + 0x18]
mov dword [ebp - 0x88], eax
mov byte [ebp - 4], 0xe
lea eax, [ebp - 0xa0]
cmp dword [ebp - 0x8c], 0x10
cmovae eax, dword [ebp - 0xa0]
mov dword [ebp - 0x68], eax
mov esi, dword [ebp - 0x24]
mov edi, dword [ebp - 0x68]
call dword [ebp - 0x64]
mov eax, dword [ebp - 0x88]
mov dword [ebp - 0x68], eax
mov edx, dword [ebp - 0x74]
push edx
mov eax, 4
mov ecx, dword [ebp - 0x24]
call dword [ebp - 0x44]
mov byte [ebp - 4], 0xd
mov edx, dword [ebp - 0x8c]
cmp edx, 0x10
jb 0x1005078f
mov eax, dword [ebp - 0xa0]
inc edx
mov ecx, eax
cmp edx, 0x1000
jb 0x10050785
mov eax, dword [eax - 4]
add edx, 0x23
sub ecx, eax
add ecx, 0xfffffffc
cmp ecx, 0x1f
ja 0x1005146e
push edx
push eax
call fcn.1006cd71
add esp, 8
mov esi, dword [ebp - 0x28]
add esi, 0x1c
mov dword [ebp - 0x28], esi
cmp esi, dword [ebp - 0x50]
jne 0x10050700
mov ecx, dword [ebp - 0x2c]
push dword [ebp - 0x24]
mov eax, dword [ecx]
mov eax, dword [eax + 0x27c]
call eax
mov esi, dword [ebp - 0x50]
mov edi, dword [ebp - 0x3c]
mov byte [ebp - 4], 0xc
mov edx, dword [ebp - 0xc4]
cmp edx, 0x10
jb 0x100507f5
mov ecx, dword [ebp - 0xd8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100507eb
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005146e
push edx
push ecx
call fcn.1006cd71
add esp, 8
mov byte [ebp - 4], 9
mov edx, dword [ebp - 0x11c]
cmp edx, 0x10
jb 0x10050833
mov ecx, dword [ebp - 0x130]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10050829
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005146e
push edx
push ecx
call fcn.1006cd71
add esp, 8
add edi, 0x1c
mov dword [ebp - 0x3c], edi
cmp edi, esi
jne 0x10050630
mov edi, dword [ebp - 0x40]
mov byte [ebp - 4], 8
test edi, edi
je 0x100508ba
push ecx
mov edx, esi
mov ecx, edi
call fcn.10066b00
mov ecx, dword [ebp - 0x14]
mov eax, 0x92492493
sub ecx, edi
add esp, 4
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax*8]
sub ecx, eax
mov eax, edi
shl ecx, 2
cmp ecx, 0x1000
jb 0x1005089b
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005146e
push ecx
push edi
call fcn.1006cd71
add esp, 8
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
lea ecx, [ebp - 0xb4]
call fcn.1000e0c0
lea ecx, [ebp - 0xbc]
call fcn.10029760
push 0x24
push dword [ebp - 0xbc]
call fcn.1006cd71
mov byte [ebp - 4], 0
add esp, 8
mov edx, dword [ebp - 0xe0]
cmp edx, 0x10
jb 0x1005091e
mov ecx, dword [ebp - 0xf4]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10050914
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005146e
push edx
push ecx
call fcn.1006cd71
add esp, 8
mov eax, dword [ebp - 0x34]
mov eax, dword [eax]
mov dword [ebp - 0x34], eax
cmp eax, dword [ebp - 0x18]
je 0x10050933
mov edi, dword [ebp + 8]
jmp 0x10050400
mov edi, dword [ebp - 0x110]
xor edx, edx
xor eax, eax
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x50], eax
mov esi, dword [edi]
mov dword [ebp - 0x4c], eax
mov byte [ebp - 4], 0xf
cmp esi, edi
je 0x10050a21
nop word [eax + eax]
lea eax, [esi + 8]
push eax
lea ecx, [ebp - 0xa0]
call fcn.1000a160
mov ecx, dword [esi + 0x20]
mov dword [ebp - 0x88], ecx
mov byte [ebp - 4], 0x10
mov eax, dword [ebp - 0x50]
cmp dword [ebp - 0x4c], eax
je 0x100509c0
movups xmm0, xmmword [ebp - 0xa0]
mov dword [eax + 0x10], 0
mov edx, 0xf
mov dword [eax + 0x14], 0
movups xmmword [eax], xmm0
mov byte [ebp - 0xa0], 0
movq xmm0, qword [ebp - 0x90]
movq qword [eax + 0x10], xmm0
mov dword [eax + 0x18], ecx
add eax, 0x1c
mov dword [ebp - 0x50], eax
jmp 0x100509d6
lea ecx, [ebp - 0xa0]
push ecx
push eax
lea ecx, [ebp - 0x54]
call fcn.10066650
mov edx, dword [ebp - 0x8c]
mov byte [ebp - 4], 0xf
cmp edx, 0x10
jb 0x10050a0e
mov ecx, dword [ebp - 0xa0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10050a04
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005146e
push edx
push ecx
call fcn.1006cd71
add esp, 8
mov esi, dword [esi]
cmp esi, edi
jne 0x10050960
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x14], edx
mov esi, dword [ebp - 0x14]
mov ecx, eax
sub ecx, edx
mov eax, 0x92492493
imul ecx
push 0x1004a100
add edx, ecx
mov ecx, esi
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x50]
push eax
mov dword [ebp - 0x28], eax
call fcn.10066f50
xor ecx, ecx
add esp, 8
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x3c], ecx
cmp dword [ebp - 0x28], ecx
jbe 0x10050f45
mov ecx, esi
mov dword [ebp - 0x34], esi
nop word [eax + eax]
push ecx
lea ecx, [ebp - 0xf4]
call fcn.1000a160
mov al, byte [ebp - 0x3c]
inc al
mov byte [ebp - 4], 0x11
mov byte [ebp - 0x20], al
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x34]
mov eax, dword [eax + 0x18]
add eax, 8
push eax
call fcn.100651f0
lea ecx, [ebp - 0xf4]
push ecx
lea ecx, [ebp - 0x84]
push ecx
mov ecx, eax
call fcn.10067ee0
mov edi, dword [ebp - 0x84]
mov edi, dword [edi + 0x24]
mov esi, dword [edi]
cmp esi, edi
je 0x10050bee
push dword [esi + 8]
mov eax, 0x485df0
call eax
add esp, 4
mov dword [ebp - 0x70], eax
test eax, eax
je 0x10050be4
mov ecx, dword [ebp - 0x40]
test ecx, ecx
cmove ecx, eax
mov eax, dword [eax + 0x1cbc]
mov dword [ebp - 0x40], ecx
test eax, eax
je 0x10050be4
mov eax, dword [eax + 4]
lea ecx, [ebp - 0x114]
add eax, 0x20
push eax
lea eax, [ebp - 0x74]
push eax
call fcn.10009830
mov eax, dword [eax]
cmp eax, dword [ebp - 0x110]
je 0x10050be4
mov ecx, dword [ebp - 0x70]
push 0x30cf
mov eax, dword [ecx]
mov eax, dword [eax + 0x278]
call eax
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x1c]
mov byte [ebp - 0x1c], 0x4e
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x2c], 0x404090
mov edx, dword [ebp - 0x18]
push edx
mov eax, 1
mov ecx, dword [ebp - 0x24]
call dword [ebp - 0x2c]
mov al, byte [ebp - 0xd]
mov byte [ebp - 0x1c], al
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x2c], 0x404090
mov edx, dword [ebp - 0x18]
push edx
mov eax, 1
mov ecx, dword [ebp - 0x24]
call dword [ebp - 0x2c]
mov al, byte [ebp - 0x20]
mov byte [ebp - 0x1c], al
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x2c], 0x404090
mov edx, dword [ebp - 0x18]
push edx
mov eax, 1
mov ecx, dword [ebp - 0x24]
call dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x70]
mov eax, dword [ecx + 0x1cbc]
lea ecx, [ebp - 0x114]
mov eax, dword [eax + 4]
add eax, 0x20
push eax
lea eax, [ebp - 0x6c]
push eax
call fcn.10068530
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x44], 0x404090
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x18]
mov dword [ebp - 0x2c], eax
mov edx, dword [ebp - 0x2c]
push edx
mov eax, 4
mov ecx, dword [ebp - 0x24]
call dword [ebp - 0x44]
mov ecx, dword [ebp - 0x70]
push dword [ebp - 0x24]
mov eax, dword [ecx]
mov eax, dword [eax + 0x27c]
call eax
mov esi, dword [esi]
cmp esi, edi
jne 0x10050ac2
mov byte [ebp - 4], 0xf
mov edx, dword [ebp - 0xe0]
cmp edx, 0x10
jb 0x10050c2c
mov ecx, dword [ebp - 0xf4]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10050c22
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005146e
push edx
push ecx
call fcn.1006cd71
add esp, 8
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x34]
inc eax
add ecx, 0x1c
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x34], ecx
cmp eax, dword [ebp - 0x28]
jb 0x10050a70
mov esi, dword [ebp - 0x40]
test esi, esi
je 0x10050f45
mov eax, dword [esi]
mov ecx, esi
push 0xdd92
mov eax, dword [eax + 0x278]
call eax
mov dword [ebp - 0x24], eax
mov al, byte [ebp - 0xd]
mov byte [ebp - 0x20], al
lea eax, [ebp - 0x20]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x2c], 0x404090
mov edx, dword [ebp - 0x18]
push edx
mov eax, 1
mov ecx, dword [ebp - 0x24]
call dword [ebp - 0x2c]
mov eax, dword [ebp + 8]
mov dword [ebp - 0x44], 0x404090
mov ecx, dword [eax + 0x34]
lea eax, [ebp - 0x18]
mov dword [ebp - 0x2c], eax
mov ecx, dword [ecx + 0x18]
mov ecx, dword [ecx + 8]
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x2c]
push edx
mov eax, 4
mov ecx, dword [ebp - 0x24]
call dword [ebp - 0x44]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x2c], 0x404090
cmp eax, 8
jb 0x10050cdb
lea eax, [ebp - 0x20]
mov byte [ebp - 0x20], 8
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x18]
push edx
mov eax, 1
mov ecx, dword [ebp - 0x24]
call dword [ebp - 0x2c]
jmp 0x10050cf3
mov byte [ebp - 0x20], al
lea eax, [ebp - 0x20]
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x18]
push edx
mov eax, 1
mov ecx, dword [ebp - 0x24]
call dword [ebp - 0x2c]
mov edi, dword [ebp - 0x14]
xor eax, eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x28], edi
cmp edi, dword [ebp - 0x50]
je 0x10050d5f
cmp eax, 8
je 0x10050d5c
cmp dword [edi + 0x14], 0x10
mov eax, edi
jb 0x10050d12
mov eax, dword [edi]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x2c], 0x426040
mov esi, dword [ebp - 0x24]
mov edi, dword [ebp - 0x18]
call dword [ebp - 0x2c]
mov edi, dword [ebp - 0x28]
mov dword [ebp - 0x44], 0x404090
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x18]
mov dword [ebp - 0x2c], eax
mov edx, dword [ebp - 0x2c]
push edx
mov eax, 4
mov ecx, dword [ebp - 0x24]
call dword [ebp - 0x44]
mov eax, dword [ebp - 0x34]
add edi, 0x1c
inc eax
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x34], eax
cmp edi, dword [ebp - 0x50]
jne 0x10050d03
mov esi, dword [ebp - 0x40]
mov eax, dword [esi]
mov ecx, esi
push dword [ebp - 0x24]
mov eax, dword [eax + 0x27c]
call eax
cmp word [0x100fe0c0], 1
jne 0x10050f45
mov eax, dword [esi]
mov ecx, esi
push 0xdd85
mov eax, dword [eax + 0x278]
call eax
mov esi, dword [ebp + 8]
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x18]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x44], 0x404090
mov ecx, dword [esi + 0x34]
mov ecx, dword [ecx + 0x18]
mov ecx, dword [ecx + 8]
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x2c]
push edx
mov eax, 4
mov ecx, dword [ebp - 0x24]
call dword [ebp - 0x44]
mov eax, dword [esi + 0x34]
mov eax, dword [eax + 0x18]
add eax, 0x14
cmp dword [eax + 0x14], 0x10
jb 0x10050dcc
mov eax, dword [eax]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x2c], 0x426040
mov esi, dword [ebp - 0x24]
mov edi, dword [ebp - 0x18]
call dword [ebp - 0x2c]
mov edi, dword [ebp - 0x14]
cmp edi, dword [ebp - 0x50]
je 0x10050f35
nop dword [eax + eax]
mov eax, dword [ebp + 8]
mov esi, dword [eax + 0x34]
mov eax, dword [esi + 0x18]
add eax, 8
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.100648a0
mov eax, dword [eax]
cmp eax, dword [0x100fe584]
je 0x10050f26
mov eax, dword [esi + 0x18]
add eax, 8
push eax
call fcn.100651f0
push edi
mov esi, dword [eax + 4]
lea eax, [ebp - 0x7c]
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x34]
mov eax, dword [eax + 0x18]
add eax, 8
push eax
call fcn.100651f0
mov ecx, eax
call fcn.10009830
cmp dword [eax], esi
je 0x10050f26
cmp dword [edi + 0x14], 0x10
mov eax, edi
jb 0x10050e53
mov eax, dword [edi]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x2c], 0x426040
mov esi, dword [ebp - 0x24]
mov edi, dword [ebp - 0x18]
call dword [ebp - 0x2c]
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0x34]
mov eax, dword [eax + 0x18]
add eax, 8
push eax
call fcn.100651f0
mov esi, dword [ebp - 0x14]
lea ecx, [ebp - 0x84]
push esi
push ecx
mov ecx, eax
call fcn.10067ee0
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0x2c], 0x404090
mov eax, dword [eax + 0x28]
mov byte [ebp - 0x20], al
lea eax, [ebp - 0x20]
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x18]
push edx
mov eax, 1
mov ecx, dword [ebp - 0x24]
call dword [ebp - 0x2c]
mov eax, dword [edi + 0x34]
mov eax, dword [eax + 0x18]
add eax, 8
push eax
call fcn.100651f0
push esi
lea ecx, [ebp - 0x38]
push ecx
mov ecx, eax
call fcn.10067ee0
mov edi, dword [ebp - 0x38]
mov edi, dword [edi + 0x24]
mov esi, dword [edi]
cmp esi, edi
je 0x10050f23
lea eax, [ebp - 0x18]
mov dword [ebp - 0x44], 0x404090
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x18]
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x68], 0x404090
mov eax, dword [esi + 8]
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x2c]
push edx
mov eax, 4
mov ecx, dword [ebp - 0x24]
call dword [ebp - 0x44]
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x74]
push edx
mov eax, 4
mov ecx, dword [ebp - 0x24]
call dword [ebp - 0x68]
mov esi, dword [esi]
cmp esi, edi
jne 0x10050ef3
mov edi, dword [ebp - 0x14]
add edi, 0x1c
mov dword [ebp - 0x14], edi
cmp edi, dword [ebp - 0x50]
jne 0x10050df0
mov ecx, dword [ebp - 0x40]
push dword [ebp - 0x24]
mov eax, dword [ecx]
mov eax, dword [eax + 0x27c]
call eax
mov eax, dword [ebp + 8]
mov edx, dword [0x100fe58c]
mov eax, dword [eax + 0x34]
mov edi, dword [eax + 0x18]
mov dword [ebp - 0x3c], edi
movzx eax, byte [edi + 8]
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
movzx eax, byte [edi + 9]
xor ecx, eax
movzx eax, byte [edi + 0xa]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [edi + 0xb]
imul ecx, ecx, 0x1000193
xor ecx, eax
imul eax, ecx, 0x1000193
and eax, dword [0x100fe598]
mov esi, dword [edx + eax*8]
add eax, eax
lea ecx, [eax*4]
lea eax, [eax*4 + 4]
mov dword [ebp - 0x28], ecx
mov ecx, dword [0x100fe584]
mov dword [ebp - 0x34], eax
nop
mov edi, dword [ebp - 0x28]
cmp dword [edx + edi], ecx
mov edi, dword [ebp - 0x3c]
jne 0x10050fbf
mov eax, ecx
jmp 0x10050fc4
mov eax, dword [edx + eax]
mov eax, dword [eax]
mov edx, ecx
cmp esi, eax
je 0x1005102a
mov eax, dword [edi + 8]
cmp dword [esi + 8], eax
je 0x10050fdf
mov esi, dword [esi]
mov edx, dword [0x100fe58c]
mov eax, dword [ebp - 0x34]
jmp 0x10050fb0
mov edx, dword [0x100fe584]
mov ecx, esi
mov edi, esi
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x2c], edi
mov edi, dword [0x100fe58c]
mov eax, dword [ebp - 0x28]
cmp dword [edi + eax], edx
jne 0x10051004
mov eax, edx
jmp 0x10051009
mov eax, dword [edi + ecx]
mov eax, dword [eax]
cmp esi, eax
je 0x10051022
mov edi, dword [ebp - 0x3c]
mov eax, dword [edi + 8]
mov edi, dword [0x100fe58c]
cmp eax, dword [esi + 8]
jne 0x10051022
mov esi, dword [esi]
jmp 0x10050ff8
mov edi, dword [ebp - 0x2c]
cmp dword [ebp - 0x18], esi
jne 0x1005102e
mov edi, edx
mov esi, edx
mov eax, dword [0x100fe584]
mov dword [ebp - 0x18], edi
cmp edi, dword [eax]
jne 0x1005105e
cmp esi, eax
jne 0x1005105e
mov ecx, 0x100fe584
mov byte [ebp - 4], 0x12
call fcn.10028f00
push 8
mov ecx, 0x100fe580
call fcn.1000d020
mov byte [ebp - 4], 0xf
jmp 0x10051077
cmp edi, esi
je 0x10051077
push edi
mov edi, dword [edi]
lea eax, [ebp - 0x18]
push eax
mov ecx, 0x100fe580
call fcn.10065d90
cmp edi, esi
jne 0x10051062
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x34]
mov edi, dword [eax + 0x18]
movzx eax, byte [edi + 8]
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
movzx eax, byte [edi + 9]
xor ecx, eax
movzx eax, byte [edi + 0xa]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [edi + 0xb]
imul ecx, ecx, 0x1000193
xor ecx, eax
mov eax, dword [0x100fe6ec]
imul edx, ecx, 0x1000193
and edx, dword [0x100fe6f8]
mov dword [ebp - 0x28], edx
mov esi, dword [eax + edx*8]
lea eax, [edx + edx]
mov edx, dword [0x100fe6ec]
lea ecx, [eax*4 + 4]
mov dword [ebp - 0x18], ecx
mov ecx, dword [0x100fe6e4]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x2c], eax
cmp eax, ecx
jne 0x100510ee
mov eax, ecx
jmp 0x100510fe
mov edx, dword [ebp - 0x18]
mov eax, dword [0x100fe6ec]
mov eax, dword [edx + eax]
mov edx, dword [ebp - 0x28]
mov eax, dword [eax]
cmp esi, eax
je 0x1005115c
mov eax, dword [edi + 8]
mov dword [ebp - 0x44], eax
cmp dword [esi + 8], eax
je 0x10051114
mov esi, dword [esi]
mov eax, dword [ebp - 0x2c]
jmp 0x100510e6
push edx
lea eax, [ebp - 0x18]
mov dword [ebp - 0x2c], esi
mov edi, esi
mov ecx, 0x100fe6e0
push eax
mov dword [ebp - 0x74], edi
call fcn.10065b90
cmp esi, dword [eax]
je 0x10051156
mov edi, dword [ebp - 0x44]
cmp edi, dword [esi + 8]
jne 0x1005114e
push dword [ebp - 0x28]
mov esi, dword [esi]
lea eax, [ebp - 0x18]
push eax
mov ecx, 0x100fe6e0
call fcn.10065b90
cmp esi, dword [eax]
jne 0x10051132
mov edi, dword [ebp - 0x74]
cmp dword [ebp - 0x2c], esi
jne 0x10051160
mov ecx, dword [0x100fe6e4]
mov edi, ecx
mov esi, ecx
push esi
push edi
lea eax, [ebp - 0x18]
push eax
call fcn.10065850
lea ecx, [ebp - 0x54]
call fcn.10064780
lea ecx, [ebp - 0x114]
mov dword [ebp - 4], 0xffffffff
call fcn.10021a70
mov ax, word [0x100fe0c0]
mov ecx, 0xb4
cmp ax, cx
je 0x100511a3
mov ecx, 0x4f0
cmp ax, cx
jne 0x1005145c
mov edi, dword [ebp + 8]
push ecx
push str.STRUCTURE
mov eax, dword [edi + 0x34]
mov ecx, dword [eax + 0x18]
add ecx, 0x14
call fcn.10007450
cmp eax, 0xffffffff
je 0x1005145c
lea ecx, [ebp - 0x78]
call fcn.10009800
lea ecx, [ebp - 0x48]
mov dword [ebp - 4], 0x13
call fcn.1003c4b0
mov byte [ebp - 4], 0x14
cmp dword [edi + 0x1ca8], 0
mov esi, dword [edi + 0x1ca4]
mov dword [ebp - 0x34], 0
mov esi, dword [esi]
mov dword [ebp - 0x28], esi
jbe 0x10051240
nop dword [eax]
mov eax, dword [esi + 0x10]
lea ecx, [ebp - 0x78]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x18]
mov edi, dword [esi + 0x14]
push eax
call fcn.10009790
mov dword [eax], edi
mov eax, dword [ebp + 8]
mov edi, dword [ebp - 0x34]
inc edi
mov dword [ebp - 0x34], edi
mov eax, dword [eax + 0x1ca8]
mov dword [ebp - 0x2c], eax
cmp edi, eax
jae 0x10051240
lea ecx, [ebp - 0x28]
call fcn.1002e0d0
mov eax, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x28]
cmp edi, eax
jb 0x10051200
mov edi, dword [ebp - 0x78]
mov esi, dword [edi]
mov dword [ebp - 0x28], esi
cmp esi, edi
je 0x100512d4
mov eax, 0x485d90
push dword [esi + 0x10]
call eax
add esp, 4
mov dword [ebp - 0x18], eax
test eax, eax
je 0x100512c0
mov eax, dword [eax + 0x1cbc]
mov dword [ebp - 0x34], eax
test eax, eax
je 0x100512c0
mov eax, dword [eax + 4]
lea ecx, [ebp - 0x48]
add eax, 0x20
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10064600
mov eax, dword [eax]
cmp eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x34]
jne 0x100512ac
mov eax, dword [eax + 4]
lea ecx, [ebp - 0x48]
add eax, 0x20
push eax
call fcn.1003c340
mov dword [eax], 0
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x1cbc]
mov eax, dword [eax + 4]
lea ecx, [ebp - 0x48]
add eax, 0x20
push eax
call fcn.1003c340
mov ecx, dword [esi + 0x14]
add dword [eax], ecx
lea ecx, [ebp - 0x28]
call fcn.1000a2d0
mov esi, dword [ebp - 0x28]
mov eax, 0x485d90
cmp esi, edi
jne 0x10051255
xor ecx, ecx
xor edx, edx
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x50], edx
mov dword [ebp - 0x4c], ecx
mov byte [ebp - 4], 0x15
mov esi, dword [ebp - 0x48]
mov eax, dword [esi]
mov dword [ebp - 0x34], eax
cmp eax, esi
je 0x10051337
lea edx, [eax + 0x10]
lea eax, [edx + 0x18]
push eax
lea ecx, [ebp - 0x130]
call fcn.10066030
add esp, 4
push eax
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 0x16
call fcn.10064720
lea ecx, [ebp - 0x130]
mov byte [ebp - 4], 0x15
call fcn.1000a030
lea ecx, [ebp - 0x34]
call fcn.1000a2d0
mov eax, dword [ebp - 0x34]
cmp eax, esi
jne 0x100512f1
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x54]
push edx
push ecx
call fcn.10066050
add esp, 8
lea ecx, [ebp - 0x54]
call fcn.10064700
test eax, eax
je 0x10051444
call fcn.10022a20
push 0x100fe0ec
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x18], 0
call fcn.10031120
push str.___CALL_dbo._HandleFortressStructureDestroyed_______
lea ecx, [ebp - 0xf4]
mov byte [ebp - 4], 0x17
call fcn.1000a100
push ecx
lea eax, [ebp - 0xf4]
mov byte [ebp - 4], 0x18
push eax
push 0x100fe0ec
lea ecx, [ebp - 0x30]
call fcn.100312d0
lea ecx, [ebp - 0xf4]
mov byte [ebp - 4], 0x17
call fcn.1000a030
push 3
lea eax, [ebp - 0x18]
push eax
push 0
lea ecx, [ebp - 0x30]
call fcn.10035680
mov esi, dword [ebp + 8]
lea ecx, [ebp - 0x30]
push 0
mov eax, dword [esi + 0x34]
mov eax, dword [eax + 0x18]
add eax, 8
push eax
push 1
call fcn.10035680
mov eax, dword [esi + 0x34]
push ecx
mov ecx, dword [eax + 0x18]
add ecx, 0x14
call fcn.10009f40
push eax
push 2
lea ecx, [ebp - 0x30]
call fcn.10035660
sub esp, 8
lea ecx, [ebp - 0x54]
call fcn.100646d0
mov ecx, eax
call fcn.10009f40
push eax
push 3
lea ecx, [ebp - 0x30]
call fcn.10035660
push ecx
lea edx, [ebp - 0x30]
lea ecx, [ebp - 0x6c]
call fcn.10030ed0
add esp, 4
mov byte [ebp - 4], 0x19
nop dword [eax]
lea ecx, [ebp - 0x6c]
call fcn.100314e0
test al, al
jne 0x10051420
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 0x1a
call fcn.100327a0
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0x1b
call fcn.100327a0
lea ecx, [ebp - 0x54]
call fcn.10064780
lea ecx, [ebp - 0x48]
call fcn.1002aa90
lea ecx, [ebp - 0x78]
call fcn.100087e0
mov ecx, dword [ebp - 0xc]
pop edi
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
ret 4
call fcn.10087f1c
int3