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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100c370c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x68
xor eax, eax
mov ecx, 0x1e7
push ebx
mov dword [ebp - 0x18], eax
mov ebx, dword [ebp + 0xc]
push esi
mov si, word [0x100fe0c0]
mov dword [ebp - 0x14], eax
lea eax, [ecx + 0x20]
push edi
cmp si, cx
je 0x100517ec
cmp si, ax
je 0x100517ec
cmp si, 1
jne 0x10051e59
mov eax, dword [ebp + 0x10]
lea ecx, [ebp - 0x5c]
mov eax, dword [eax + 0x34]
mov eax, dword [eax + 0x18]
add eax, 0x14
push eax
call fcn.1000a160
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x5c]
mov eax, dword [ebx + 0x34]
cmp dword [ebp - 0x48], 0x10
mov edi, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x4c]
cmovae ecx, edi
mov esi, dword [eax + 0x28]
push 0x10
push str.MOB_SD_SETH_DROP
call fcn.1000ba70
add esp, 8
test al, al
jne 0x10051851
cmp dword [ebp - 0x48], 0x10
lea ecx, [ebp - 0x5c]
mov edx, dword [ebp - 0x4c]
push 0x14
cmovae ecx, edi
push str.MOB_SD_HAROERIS_DROP
call fcn.1000ba70
add esp, 8
test al, al
je 0x10051861
cmp esi, 0x3a1b
jl 0x10051861
cmp esi, 0x3a34
jle 0x10051870
lea eax, [esi - 0x773]
cmp eax, 0x19
ja 0x10051e18
cmp dword [ebp - 0x48], 0x10
lea ecx, [ebp - 0x5c]
mov edx, dword [ebp - 0x4c]
push 0x10
cmovae ecx, edi
push str.MOB_SD_SETH_DROP
call fcn.1000ba70
add esp, 8
test al, al
je 0x10051b24
push 0xb
push str.MOB_SD_SETH
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0xf
mov byte [ebp - 0x44], 0
call fcn.1000a420
cmp dword [ebp - 0x30], 0x10
lea esi, [ebp - 0x44]
mov edi, dword [0x100fe444]
mov edx, 0x811c9dc5
cmovae esi, dword [ebp - 0x44]
xor ecx, ecx
cmp dword [ebp - 0x34], ecx
jbe 0x100518e4
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [ebp - 0x34]
jb 0x100518d2
and edx, dword [0x100fe458]
mov ecx, dword [0x100fe44c]
lea eax, [edx + edx]
mov esi, dword [ecx + edx*8]
lea edx, [eax*4 + 4]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x18], eax
cmp eax, edi
jne 0x1005190e
mov eax, edi
jmp 0x10051913
mov eax, dword [ecx + edx]
mov eax, dword [eax]
cmp esi, eax
je 0x1005198a
cmp dword [ebp - 0x30], 0x10
lea edx, [ebp - 0x44]
mov ebx, dword [esi + 0x1c]
lea ecx, [esi + 8]
cmovae edx, dword [ebp - 0x44]
cmp ebx, 0x10
mov dword [ebp - 0x1c], ebx
mov ebx, dword [ebp + 0xc]
jb 0x10051936
mov ecx, dword [esi + 8]
push dword [ebp - 0x34]
mov eax, dword [esi + 0x18]
push edx
mov edx, eax
mov dword [ebp - 0x20], eax
call fcn.1000ba70
add esp, 8
test al, al
jne 0x1005195e
mov esi, dword [esi]
mov ecx, dword [0x100fe44c]
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
jmp 0x10051906
cmp dword [ebp - 0x1c], 0x10
lea eax, [esi + 8]
jb 0x10051969
mov eax, dword [eax]
cmp dword [ebp - 0x30], 0x10
lea ecx, [ebp - 0x44]
push dword [ebp - 0x20]
cmovae ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x34]
push eax
call fcn.1000ba70
add esp, 8
test al, al
cmove esi, edi
jmp 0x1005198c
mov esi, edi
mov eax, dword [ebp - 0x30]
cmp eax, 0x10
jb 0x100519c2
mov edx, dword [ebp - 0x44]
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x100519b8
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10052a17
push ecx
push edx
call fcn.1006cd71
add esp, 8
cmp esi, edi
je 0x10051dca
push 0xb
push str.MOB_SD_SETH
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x60], 0xf
mov byte [ebp - 0x74], 0
call fcn.1000a420
mov eax, 1
mov byte [ebp - 4], 1
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10068030
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebx + 0x34]
add ecx, 0x20
add edx, 0x30
call fcn.10066090
test al, al
je 0x10051a75
push 0xb
push str.MOB_SD_SETH
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0xf
mov byte [ebp - 0x44], 0
call fcn.1000a420
mov eax, 3
mov dword [ebp - 4], 2
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10068030
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebx + 0x34]
add ecx, 0x20
add edx, 0x4c
call fcn.10066090
mov byte [ebp - 0xd], 1
test al, al
jne 0x10051a79
mov byte [ebp - 0xd], 0
mov dword [ebp - 4], 1
mov eax, dword [ebp - 0x14]
test al, 2
je 0x10051ad6
mov edx, dword [ebp - 0x30]
and eax, 0xfffffffd
mov dword [ebp - 0x14], eax
cmp edx, 0x10
jb 0x10051ac4
mov ecx, dword [ebp - 0x44]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10051ab7
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10052a1c
push edx
push ecx
call fcn.1006cd71
mov eax, dword [ebp - 0x14]
add esp, 8
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0xf
mov byte [ebp - 0x44], 0
mov dword [ebp - 4], 0
and eax, 0xfffffffe
mov edx, dword [ebp - 0x60]
mov dword [ebp - 0x14], eax
cmp edx, 0x10
jb 0x10051b17
mov ecx, dword [ebp - 0x74]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10051b0d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10052a21
push edx
push ecx
call fcn.1006cd71
add esp, 8
cmp byte [ebp - 0xd], 0
jne 0x10051dca
mov edi, dword [ebp - 0x5c]
cmp dword [ebp - 0x48], 0x10
lea ecx, [ebp - 0x5c]
mov edx, dword [ebp - 0x4c]
push 0x14
cmovae ecx, edi
push str.MOB_SD_HAROERIS_DROP
call fcn.1000ba70
add esp, 8
test al, al
je 0x10051e18
push 0xf
push str.MOB_SD_HAROERIS
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0xf
mov byte [ebp - 0x44], 0
call fcn.1000a420
cmp dword [ebp - 0x30], 0x10
lea esi, [ebp - 0x44]
mov edi, dword [0x100fe444]
mov edx, 0x811c9dc5
cmovae esi, dword [ebp - 0x44]
xor ecx, ecx
cmp dword [ebp - 0x34], ecx
jbe 0x10051b98
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [ebp - 0x34]
jb 0x10051b86
and edx, dword [0x100fe458]
mov ecx, dword [0x100fe44c]
lea eax, [edx + edx]
mov esi, dword [ecx + edx*8]
lea edx, [eax*4 + 4]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x20], eax
nop word [eax + eax]
cmp eax, edi
jne 0x10051bc8
mov eax, edi
jmp 0x10051bcd
mov eax, dword [ecx + edx]
mov eax, dword [eax]
cmp esi, eax
je 0x10051c44
cmp dword [ebp - 0x30], 0x10
lea edx, [ebp - 0x44]
mov ebx, dword [esi + 0x1c]
lea ecx, [esi + 8]
cmovae edx, dword [ebp - 0x44]
cmp ebx, 0x10
mov dword [ebp - 0x18], ebx
mov ebx, dword [ebp + 0xc]
jb 0x10051bf0
mov ecx, dword [esi + 8]
push dword [ebp - 0x34]
mov eax, dword [esi + 0x18]
push edx
mov edx, eax
mov dword [ebp - 0x28], eax
call fcn.1000ba70
add esp, 8
test al, al
jne 0x10051c18
mov esi, dword [esi]
mov ecx, dword [0x100fe44c]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
jmp 0x10051bc0
cmp dword [ebp - 0x18], 0x10
lea eax, [esi + 8]
jb 0x10051c23
mov eax, dword [eax]
cmp dword [ebp - 0x30], 0x10
lea ecx, [ebp - 0x44]
push dword [ebp - 0x28]
cmovae ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x34]
push eax
call fcn.1000ba70
add esp, 8
test al, al
cmove esi, edi
jmp 0x10051c46
mov esi, edi
mov eax, dword [ebp - 0x30]
cmp eax, 0x10
jb 0x10051c7c
mov edx, dword [ebp - 0x44]
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x10051c72
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10052a26
push ecx
push edx
call fcn.1006cd71
add esp, 8
cmp esi, edi
je 0x10051dca
push 0xf
push str.MOB_SD_HAROERIS
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x60], 0xf
mov byte [ebp - 0x74], 0
call fcn.1000a420
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x14]
or eax, 4
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10068030
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebx + 0x34]
add ecx, 0x20
add edx, 0x30
call fcn.10066090
test al, al
je 0x10051d31
push 0xf
push str.MOB_SD_HAROERIS
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0xf
mov byte [ebp - 0x44], 0
call fcn.1000a420
mov dword [ebp - 4], 4
mov eax, dword [ebp - 0x14]
or eax, 8
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10068030
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebx + 0x34]
add ecx, 0x20
add edx, 0x4c
call fcn.10066090
mov byte [ebp + 0xf], 1
test al, al
jne 0x10051d35
mov byte [ebp + 0xf], 0
mov dword [ebp - 4], 3
mov eax, dword [ebp - 0x14]
test al, 8
je 0x10051d89
mov edx, dword [ebp - 0x30]
cmp edx, 0x10
jb 0x10051d77
mov ecx, dword [ebp - 0x44]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10051d6d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10052a2b
push edx
push ecx
call fcn.1006cd71
add esp, 8
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0xf
mov byte [ebp - 0x44], 0
mov dword [ebp - 4], 0
mov edx, dword [ebp - 0x60]
cmp edx, 0x10
jb 0x10051dc4
mov ecx, dword [ebp - 0x74]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10051dba
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10052a30
push edx
push ecx
call fcn.1006cd71
add esp, 8
cmp byte [ebp + 0xf], 0
je 0x10051e15
mov eax, dword [ebp - 0x48]
cmp eax, 0x10
jb 0x10051e00
mov edx, dword [ebp - 0x5c]
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x10051df6
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10052a35
push ecx
push edx
call fcn.1006cd71
add esp, 8
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov edi, dword [ebp - 0x5c]
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x48]
cmp eax, 0x10
jb 0x10051e52
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x10051e48
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10052a3a
push ecx
push edi
call fcn.1006cd71
add esp, 8
mov si, word [0x100fe0c0]
mov ecx, 0x8c
mov eax, 0x147
cmp si, cx
je 0x10051e85
cmp si, ax
je 0x10051e85
mov eax, 0x6ba
cmp si, ax
je 0x10051e85
mov eax, 0x8a6
cmp si, ax
jne 0x10052067
mov ax, word [ebx + 0x78]
sub ax, 0x79
cmp ax, 0x31
ja 0x10052067
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 0x34]
mov edi, dword [eax + 0x18]
cmp dword [edi + 0x7c], 0x10
lea ecx, [edi + 0x68]
jb 0x10051eac
mov ecx, dword [edi + 0x68]
mov edx, dword [edi + 0x78]
push 9
push str.protected
call fcn.1000ba70
add esp, 8
test al, al
je 0x10052067
mov ecx, dword [ebx + 0x34]
mov eax, dword [ecx + 0x28]
cmp eax, 0x773
jb 0x10051eda
cmp eax, 0x78c
jbe 0x10051ee8
add eax, 0xffffc5e5
cmp eax, 0x19
ja 0x10052067
movzx esi, byte [ecx + 0xec]
mov eax, esi
mov dword [ebp + 0xc], eax
lea eax, [ebp + 0xc]
push eax
call fcn.1003bb40
test eax, eax
jne 0x10051f59
mov eax, dword [ebx]
mov ecx, ebx
push 0xdd87
mov eax, dword [eax + 0x278]
call eax
mov esi, eax
mov byte [ebp + 0x10], 7
lea eax, [ebp + 0x10]
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x1c], 0x404090
mov edx, dword [ebp - 0x28]
push edx
mov eax, 1
mov ecx, dword [ebp - 0x20]
call dword [ebp - 0x1c]
mov eax, dword [ebx]
mov ecx, ebx
push esi
mov eax, dword [eax + 0x27c]
call eax
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, esi
mov dword [ebp - 0x28], eax
lea eax, [edi + 0x14]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.1003bf40
mov ecx, eax
call fcn.10009920
test eax, eax
jne 0x10051fce
mov eax, dword [ebx]
mov ecx, ebx
push 0xdd87
mov eax, dword [eax + 0x278]
call eax
mov esi, eax
mov byte [ebp + 0x10], 7
lea eax, [ebp + 0x10]
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x1c], 0x404090
mov edx, dword [ebp - 0x28]
push edx
mov eax, 1
mov ecx, dword [ebp - 0x20]
call dword [ebp - 0x1c]
mov eax, dword [ebx]
mov ecx, ebx
push esi
mov eax, dword [eax + 0x27c]
call eax
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [ebx + 0x34]
mov edi, dword [ebp + 0x10]
movzx eax, byte [eax + 0xec]
mov dword [ebp - 0x28], eax
mov eax, dword [edi + 0x34]
mov esi, dword [eax + 0x18]
lea eax, [ebp - 0x28]
push eax
add esi, 0x14
call fcn.1003bf40
push esi
lea ecx, [ebp - 0x24]
push ecx
mov ecx, eax
call fcn.1003ec90
mov eax, dword [ebp - 0x24]
mov al, byte [eax + 0x20]
test al, al
jne 0x1005205e
mov eax, dword [ebx]
mov ecx, ebx
push 0xdd87
mov eax, dword [eax + 0x278]
call eax
mov esi, eax
mov byte [ebp + 0x10], 7
lea eax, [ebp + 0x10]
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x1c], 0x404090
mov edx, dword [ebp - 0x28]
push edx
mov eax, 1
mov ecx, dword [ebp - 0x20]
call dword [ebp - 0x1c]
mov eax, dword [ebx]
mov ecx, ebx
push esi
mov eax, dword [eax + 0x27c]
call eax
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov si, word [0x100fe0c0]
jmp 0x1005206a
mov edi, dword [ebp + 0x10]
mov eax, 0x652
cmp si, ax
je 0x1005208c
mov eax, 0x6e2
cmp si, ax
je 0x1005208c
mov eax, 0x8c4
cmp si, ax
jne 0x10052269
mov ax, word [ebx + 0x78]
sub ax, 0x67
cmp ax, 0x13
ja 0x10052269
mov eax, dword [edi + 0x34]
mov edi, dword [eax + 0x18]
cmp dword [edi + 0x7c], 0x10
lea ecx, [edi + 0x68]
jb 0x100520b0
mov ecx, dword [edi + 0x68]
mov edx, dword [edi + 0x78]
push 9
push str.protected
call fcn.1000ba70
add esp, 8
test al, al
je 0x10052269
mov ecx, dword [ebx + 0x34]
mov eax, dword [ecx + 0x28]
cmp eax, 0x773
jb 0x100520de
cmp eax, 0x78c
jbe 0x100520ec
add eax, 0xffffc5e5
cmp eax, 0x19
ja 0x10052269
movzx esi, byte [ecx + 0xec]
mov eax, esi
mov dword [ebp + 0xc], eax
lea eax, [ebp + 0xc]
push eax
call fcn.1003bb40
test eax, eax
jne 0x1005215d
mov eax, dword [ebx]
mov ecx, ebx
push 0xdd87
mov eax, dword [eax + 0x278]
call eax
mov esi, eax
mov byte [ebp + 0x10], 0x11
lea eax, [ebp + 0x10]
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x1c], 0x404090
mov edx, dword [ebp - 0x28]
push edx
mov eax, 1
mov ecx, dword [ebp - 0x20]
call dword [ebp - 0x1c]
mov eax, dword [ebx]
mov ecx, ebx
push esi
mov eax, dword [eax + 0x27c]
call eax
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, esi
mov dword [ebp - 0x28], eax
lea eax, [edi + 0x14]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.1003bf40
mov ecx, eax
call fcn.10009920
test eax, eax
jne 0x100521d2
mov eax, dword [ebx]
mov ecx, ebx
push 0xdd87
mov eax, dword [eax + 0x278]
call eax
mov esi, eax
mov byte [ebp + 0x10], 0x11
lea eax, [ebp + 0x10]
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x1c], 0x404090
mov edx, dword [ebp - 0x28]
push edx
mov eax, 1
mov ecx, dword [ebp - 0x20]
call dword [ebp - 0x1c]
mov eax, dword [ebx]
mov ecx, ebx
push esi
mov eax, dword [eax + 0x27c]
call eax
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [ebx + 0x34]
movzx eax, byte [eax + 0xec]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 0x34]
mov esi, dword [eax + 0x18]
lea eax, [ebp - 0x28]
push eax
add esi, 0x14
call fcn.1003bf40
push esi
lea ecx, [ebp - 0x24]
push ecx
mov ecx, eax
call fcn.1003ec90
mov eax, dword [ebp - 0x24]
mov al, byte [eax + 0x20]
test al, al
jne 0x10052262
mov eax, dword [ebx]
mov ecx, ebx
push 0xdd87
mov eax, dword [eax + 0x278]
call eax
mov esi, eax
mov byte [ebp + 0x10], 0x11
lea eax, [ebp + 0x10]
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x1c], 0x404090
mov edx, dword [ebp - 0x28]
push edx
mov eax, 1
mov ecx, dword [ebp - 0x20]
call dword [ebp - 0x1c]
mov eax, dword [ebx]
mov ecx, ebx
push esi
mov eax, dword [eax + 0x27c]
call eax
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov si, word [0x100fe0c0]
movzx edx, word [ebx + 0x78]
mov edi, dword [0x100fe66c]
mov eax, edx
mov dword [ebp - 0x28], eax
movzx eax, dl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, edx
shr eax, 8
xor ecx, eax
imul ecx, ecx, 0x1000193
and ecx, dword [0x100fe678]
mov eax, dword [edi + ecx*8]
add ecx, ecx
lea edx, [ecx*4 + 4]
mov ecx, dword [edi + ecx*4]
mov dword [ebp + 0xc], edx
mov edx, dword [0x100fe664]
mov dword [ebp - 0x20], ecx
cmp ecx, edx
jne 0x100522bc
mov ecx, edx
jmp 0x100522c4
mov ecx, dword [ebp + 0xc]
mov ecx, dword [edi + ecx]
mov ecx, dword [ecx]
cmp eax, ecx
je 0x100523dd
mov ecx, dword [ebp - 0x28]
cmp word [eax + 8], cx
je 0x100522dc
mov eax, dword [eax]
mov ecx, dword [ebp - 0x20]
jmp 0x100522b4
cmp eax, edx
je 0x100523dd
mov eax, dword [ebx + 0x34]
mov edi, dword [eax + 0x18]
cmp dword [edi + 0x44], 0x10
lea ecx, [edi + 0x30]
jb 0x100522f6
mov ecx, dword [edi + 0x30]
mov edx, dword [edi + 0x40]
push 5
push str.cape:
push ecx
call fcn.10007490
add esp, 0xc
cmp eax, 0xffffffff
jne 0x1005233f
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 0x34]
mov edx, dword [eax + 0x18]
cmp dword [edx + 0x44], 0x10
lea ecx, [edx + 0x30]
jb 0x10052323
mov ecx, dword [edx + 0x30]
mov edx, dword [edx + 0x40]
push 5
push str.cape:
push ecx
call fcn.10007490
add esp, 0xc
cmp eax, 0xffffffff
je 0x100523dd
mov eax, dword [ebx + 0x34]
mov eax, dword [eax + 0x28]
cmp eax, 0x3a1b
jl 0x10052353
cmp eax, 0x3a34
jle 0x1005235d
add eax, 0xfffff88d
cmp eax, 0x19
ja 0x100523a0
movzx esi, byte [ebx + 0x21ec]
lea eax, [ebp - 0x74]
push 1
push 5
push eax
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 0x34]
mov ecx, dword [eax + 0x18]
add ecx, 0x30
call fcn.1001fab0
push ecx
mov ecx, eax
mov dword [ebp - 4], 5
call fcn.1000f8a0
add esp, 4
lea ecx, [ebp - 0x74]
mov ebx, eax
call fcn.1000a030
cmp ebx, esi
jmp 0x10052a01
mov eax, dword [ebp + 0x10]
lea ecx, [edi + 0x30]
push 1
push 5
movzx ebx, byte [eax + 0x21ec]
lea eax, [ebp - 0x74]
push eax
call fcn.1001fab0
push ecx
mov ecx, eax
mov dword [ebp - 4], 6
call fcn.1000f8a0
add esp, 4
lea ecx, [ebp - 0x74]
mov esi, eax
call fcn.1000a030
cmp ebx, esi
jmp 0x10052a01
movzx edx, word [ebx + 0x78]
mov eax, 0x88
cmp dx, ax
je 0x100524a0
cmp edx, 0x6c
je 0x100524a0
cmp edx, 0x63
jne 0x10052458
mov eax, 0x1cf
cmp si, ax
je 0x100524a0
mov eax, 0x282
cmp si, ax
je 0x100524a0
mov eax, 0x303
cmp si, ax
je 0x100524a0
mov eax, 0x207
cmp si, ax
je 0x100524a0
mov eax, 0x1e7
cmp si, ax
je 0x100524a0
call fcn.100279d0
test al, al
jne 0x100524a0
mov eax, 0x3c5
cmp si, ax
je 0x100524a0
mov eax, 0x56e
cmp si, ax
je 0x100524a0
mov eax, 0x4d0
cmp si, ax
je 0x100524a0
mov eax, 0xb4
cmp si, ax
jne 0x10052471
cmp edx, 0x6e
ja 0x100524a0
call fcn.100279f0
test al, al
je 0x1005247f
cmp edx, 0x6e
je 0x100524a0
mov eax, 0x8c
cmp si, ax
je 0x10052493
mov eax, 0x147
cmp si, ax
jne 0x100524ff
lea eax, [edx - 0x79]
mov ecx, 0x95
cmp ax, cx
ja 0x100524ff
mov edi, dword [ebx + 0x34]
mov esi, dword [edi + 0x18]
cmp dword [esi + 0x44], 0x10
lea ecx, [esi + 0x30]
jb 0x100524b2
mov ecx, dword [esi + 0x30]
mov edx, dword [esi + 0x40]
push 5
push str.cape:
push ecx
call fcn.10007490
add esp, 0xc
cmp eax, 0xffffffff
jne 0x1005297b
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 0x34]
mov edx, dword [eax + 0x18]
cmp dword [edx + 0x44], 0x10
lea ecx, [edx + 0x30]
jb 0x100524e3
mov ecx, dword [edx + 0x30]
mov edx, dword [edx + 0x40]
push 5
push str.cape:
push ecx
call fcn.10007490
add esp, 0xc
cmp eax, 0xffffffff
jne 0x1005297b
mov edx, dword [0x100fe074]
mov ecx, dword [ebp + 0x10]
test edx, edx
jle 0x10052610
mov eax, dword [ecx + 0x34]
mov esi, dword [eax + 0x18]
mov al, byte [esi + 0x89]
cmp al, 3
je 0x10052528
cmp al, 8
jne 0x10052610
mov ecx, dword [ebx + 0x34]
mov eax, dword [ecx + 0x28]
cmp eax, 0x773
jb 0x1005253c
cmp eax, 0x78c
jbe 0x1005254a
add eax, 0xffffc5e5
cmp eax, 0x19
ja 0x1005260d
mov al, byte [esi + 0x198]
mov cl, byte [ecx + 0x65]
cmp cl, al
jbe 0x1005260d
movzx ecx, cl
movzx eax, al
sub ecx, eax
mov dword [ebp + 0xc], ecx
cmp ecx, edx
jle 0x1005260d
mov eax, dword [ebx]
mov ecx, ebx
push 0xdd87
mov eax, dword [eax + 0x278]
call eax
mov esi, eax
mov byte [ebp + 0x10], 4
lea eax, [ebp + 0x10]
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x20], 0x404090
mov edx, dword [ebp - 0x28]
push edx
mov eax, 1
mov ecx, dword [ebp - 0x18]
call dword [ebp - 0x20]
mov cl, byte [0x100fe074]
lea eax, [ebp + 0x10]
mov byte [ebp + 0x10], cl
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x20], 0x404090
mov edx, dword [ebp - 0x28]
push edx
mov eax, 1
mov ecx, dword [ebp - 0x18]
call dword [ebp - 0x20]
mov eax, dword [ebp + 0xc]
mov byte [ebp + 0x10], al
lea eax, [ebp + 0x10]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x20], 0x404090
mov edx, dword [ebp - 0x28]
push edx
mov eax, 1
mov ecx, dword [ebp - 0x18]
call dword [ebp - 0x20]
mov eax, dword [ebx]
mov ecx, ebx
push esi
mov eax, dword [eax + 0x27c]
call eax
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov ecx, dword [ebp + 0x10]
cmp byte [0x100fe0a1], 0
je 0x1005273e
mov eax, dword [ecx + 0x34]
mov esi, dword [eax + 0x18]
add esi, 0x30
mov ecx, esi
mov edi, dword [esi + 0x14]
cmp edi, 0x10
jb 0x10052632
mov ecx, dword [esi]
mov eax, dword [esi + 0x10]
mov edx, eax
push 3
push 0x100e2310
mov dword [ebp + 0xc], eax
call fcn.1000ba70
add esp, 8
test al, al
jne 0x10052670
mov ecx, esi
cmp edi, 0x10
jb 0x10052656
mov ecx, dword [esi]
mov edx, dword [ebp + 0xc]
push 3
push 0x100e2314
call fcn.1000ba70
add esp, 8
test al, al
je 0x1005273e
mov edi, dword [ebx + 0x34]
mov eax, dword [edi + 0x28]
cmp eax, 0x773
jb 0x10052684
cmp eax, 0x78c
jbe 0x10052692
add eax, 0xffffc5e5
cmp eax, 0x19
ja 0x1005273e
cmp dword [esi + 0x14], 0x10
mov ecx, esi
jb 0x1005269c
mov ecx, dword [esi]
mov edx, dword [ebp + 0xc]
push 3
push 0x100e2310
call fcn.1000ba70
add esp, 8
test al, al
je 0x100526bc
mov ax, word [edi + 0x74]
cmp ax, word [edi + 0x76]
jbe 0x100526e6
cmp dword [esi + 0x14], 0x10
jb 0x100526c4
mov esi, dword [esi]
mov edx, dword [ebp + 0xc]
mov ecx, esi
push 3
push 0x100e2314
call fcn.1000ba70
add esp, 8
test al, al
je 0x1005273e
mov ax, word [edi + 0x76]
cmp ax, word [edi + 0x74]
ja 0x1005273e
mov eax, dword [ebx]
mov ecx, ebx
push 0xdd87
mov eax, dword [eax + 0x278]
call eax
mov esi, eax
mov byte [ebp + 0x10], 0
lea eax, [ebp + 0x10]
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x1c], 0x404090
mov edx, dword [ebp - 0x28]
push edx
mov eax, 1
mov ecx, dword [ebp - 0x20]
call dword [ebp - 0x1c]
mov eax, dword [ebx]
mov ecx, ebx
push esi
mov eax, dword [eax + 0x27c]
call eax
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp byte [0x100fe06b], 0
je 0x10052879
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 0x34]
mov esi, dword [eax + 0x18]
add esi, 0x68
mov ecx, esi
mov edi, dword [esi + 0x14]
cmp edi, 0x10
jb 0x10052763
mov ecx, dword [esi]
mov eax, dword [esi + 0x10]
mov edx, eax
push 2
push 0x100e3680
mov dword [ebp + 0xc], eax
call fcn.1000ba70
add esp, 8
test al, al
jne 0x100527a1
mov ecx, esi
cmp edi, 0x10
jb 0x10052787
mov ecx, dword [esi]
mov edx, dword [ebp + 0xc]
push 2
push 0x100e3690
call fcn.1000ba70
add esp, 8
test al, al
je 0x10052879
mov eax, dword [ebx + 0x34]
mov edi, dword [eax + 0x28]
cmp edi, 0x773
jb 0x100527b7
cmp edi, 0x78c
jbe 0x100527c6
lea eax, [edi - 0x3a1b]
cmp eax, 0x19
ja 0x10052879
cmp dword [esi + 0x14], 0x10
mov ecx, esi
jb 0x100527d0
mov ecx, dword [esi]
mov edx, dword [ebp + 0xc]
push 2
push 0x100e3680
call fcn.1000ba70
add esp, 8
test al, al
je 0x100527f6
cmp edi, 0x3a1b
jb 0x100527f6
cmp edi, 0x3a34
jbe 0x10052821
cmp dword [esi + 0x14], 0x10
jb 0x100527fe
mov esi, dword [esi]
mov edx, dword [ebp + 0xc]
mov ecx, esi
push 2
push 0x100e3690
call fcn.1000ba70
add esp, 8
test al, al
je 0x10052879
lea eax, [edi - 0x773]
cmp eax, 0x19
ja 0x10052879
mov eax, dword [ebx]
mov ecx, ebx
push 0xdd87
mov eax, dword [eax + 0x278]
call eax
mov esi, eax
mov byte [ebp + 0x10], 1
lea eax, [ebp + 0x10]
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x1c], 0x404090
mov edx, dword [ebp - 0x28]
push edx
mov eax, 1
mov ecx, dword [ebp - 0x20]
call dword [ebp - 0x1c]
mov eax, dword [ebx]
mov ecx, ebx
push esi
mov eax, dword [eax + 0x27c]
call eax
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp byte [0x100fe069], 0
je 0x10052966
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 0x34]
mov esi, dword [eax + 0x18]
add esi, 0x68
mov ecx, esi
mov edi, dword [esi + 0x14]
cmp edi, 0x10
jb 0x1005289e
mov ecx, dword [esi]
mov eax, dword [esi + 0x10]
mov edx, eax
push 3
push 0x100e368c
mov dword [ebp + 0x10], eax
call fcn.1000ba70
add esp, 8
test al, al
je 0x10052966
mov eax, dword [ebx + 0x34]
mov eax, dword [eax + 0x28]
cmp eax, 0x773
jb 0x100528d1
cmp eax, 0x78c
jbe 0x100528df
add eax, 0xffffc5e5
cmp eax, 0x19
ja 0x10052966
cmp edi, 0x10
jb 0x100528e6
mov esi, dword [esi]
mov edx, dword [ebp + 0x10]
mov ecx, esi
push 3
push 0x100e368c
call fcn.1000ba70
add esp, 8
test al, al
je 0x10052966
mov eax, dword [ebx]
mov ecx, ebx
mov eax, dword [eax + 0x11c]
call eax
cmp al, 4
jne 0x10052966
mov eax, dword [ebx]
mov ecx, ebx
push 0xdd87
mov eax, dword [eax + 0x278]
call eax
mov esi, eax
mov byte [ebp + 0xc], 0x10
lea eax, [ebp + 0xc]
mov dword [ebp - 0x28], esi
mov dword [ebp + 0x10], eax
mov dword [ebp - 0x20], 0x404090
mov edx, dword [ebp + 0x10]
push edx
mov eax, 1
mov ecx, dword [ebp - 0x28]
call dword [ebp - 0x20]
mov eax, dword [ebx]
mov ecx, ebx
push esi
mov eax, dword [eax + 0x27c]
call eax
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [edi + 0x28]
cmp eax, 0x3a1b
jl 0x1005298c
cmp eax, 0x3a34
jle 0x10052996
add eax, 0xfffff88d
cmp eax, 0x19
ja 0x100529c9
movzx esi, byte [ebx + 0x21ec]
lea eax, [ebp - 0x74]
push 1
push 5
push eax
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 0x34]
mov ecx, dword [eax + 0x18]
add ecx, 0x30
call fcn.1001fab0
push ecx
mov ecx, eax
mov dword [ebp - 4], 7
call fcn.1000f8a0
mov edi, eax
jmp 0x100529f4
mov eax, dword [ebp + 0x10]
lea ecx, [esi + 0x30]
push 1
push 5
movzx edi, byte [eax + 0x21ec]
lea eax, [ebp - 0x74]
push eax
call fcn.1001fab0
push ecx
mov ecx, eax
mov dword [ebp - 4], 8
call fcn.1000f8a0
mov esi, eax
add esp, 4
lea ecx, [ebp - 0x74]
call fcn.1000a030
cmp edi, esi
mov ecx, dword [ebp - 0xc]
sete al
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 0xc
call fcn.10087f1c
call fcn.10087f1c
call fcn.10087f1c
call fcn.10087f1c
call fcn.10087f1c
call fcn.10087f1c
call fcn.10087f1c
call fcn.10087f1c
int3