Function at 0x1008bb20
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x94
push ebx
push ebp
push esi
mov esi, ecx
mov dword [esp + 0x48], edx
push edi
mov dword [esp + 0x88], esi
cmp dword [esi + 0x34], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x18], 0
jne 0x1008bb5e
lea edx, [esp + 0x30]
call fcn.1008ba90
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x30]
jmp 0x1008bb68
mov eax, dword [esi + 0x20]
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0x24]
mov ebp, dword [esi + 0x28]
mov dword [esp + 0x1c], eax
cmp ebp, 2
jb 0x1008cef8
push dword [esi]
mov eax, 0x111
cmp ebp, eax
cmova ebp, eax
mov eax, dword [esi + 0xc]
call eax
xor edx, edx
add esp, 4
mov dword [esp + 0x34], edx
xor ebx, ebx
lea ecx, [eax - 1]
mov al, byte [ecx]
mov dword [esp + 0x3c], ecx
mov byte [esp + 0x12], al
mov eax, dword [esi + ebx*4 + 0x38]
mov edi, ecx
sub edi, eax
mov dword [esp + ebx*4 + 0x6c], eax
mov al, byte [esp + 0x12]
cmp al, byte [edi]
jne 0x1008bc00
mov al, byte [ecx + 1]
cmp al, byte [edi + 1]
jne 0x1008bc00
mov edx, 2
cmp ebp, edx
jbe 0x1008bbe1
add ecx, edx
sub edi, dword [esp + 0x3c]
nop dword [eax]
mov al, byte [ecx]
cmp al, byte [edi + ecx]
jne 0x1008bbdd
inc edx
inc ecx
cmp edx, ebp
jb 0x1008bbd0
mov ecx, dword [esp + 0x3c]
mov edi, dword [esp + 0x34]
mov eax, ebx
mov dword [esp + ebx*4 + 0x94], edx
cmp edx, dword [esp + edi*4 + 0x94]
cmovbe eax, edi
mov edx, eax
mov dword [esp + 0x34], edx
jmp 0x1008bc0b
mov dword [esp + ebx*4 + 0x94], 0
inc ebx
cmp ebx, 4
jb 0x1008bba1
mov edi, dword [esp + edx*4 + 0x94]
mov eax, dword [esi + 0x30]
cmp edi, eax
jb 0x1008bc46
lea ecx, [edi - 1]
mov dword [esi + 0x90], edx
add dword [esi + 0x34], ecx
lea ecx, [edi - 1]
push ecx
push dword [esi]
mov ecx, dword [esi + 0x14]
call ecx
add esp, 8
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x94
ret
mov ebp, dword [esp + 0x28]
cmp ebp, eax
jb 0x1008bc83
mov eax, dword [esp + 0x1c]
mov eax, dword [esi + eax*4 + 0x944]
add eax, 4
mov dword [esi + 0x90], eax
lea eax, [ebp - 1]
add dword [esi + 0x34], eax
lea eax, [ebp - 1]
push eax
push dword [esi]
mov eax, dword [esi + 0x14]
call eax
add esp, 8
mov eax, ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x94
ret
mov ebx, dword [esp + 0x6c]
mov eax, ecx
mov dl, byte [ecx]
sub eax, ebx
mov dword [esp + 0x58], ebx
cmp edi, ebp
mov ebx, ebp
mov byte [esp + 0x12], dl
cmova ebx, edi
mov al, byte [eax]
mov byte [esp + 0x13], al
mov dword [esp + 0x18], ebx
cmp ebx, 2
jae 0x1008bcb3
cmp dl, al
jne 0x1008cef8
mov ax, word [esi + 0x2c]
mov word [esi + 0xbca8], ax
mov eax, dword [esp + 0x4c]
and eax, dword [esi + 0x4c]
movzx edx, byte [ecx - 1]
mov ecx, dword [esi + 0x94]
mov ebp, dword [esi + 0x2c]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x4c]
shl eax, 8
add edx, eax
mov eax, dword [esi + 0x50]
and edx, dword [esi + 0x48]
shl edx, cl
lea ecx, [edx + edx*2]
movzx edx, byte [esp + 0x12]
lea ecx, [eax + ecx*2]
mov dword [esp + 0x30], ecx
cmp ebp, 7
jb 0x1008bd16
lea eax, [esi + 0x748]
push eax
movzx eax, byte [esp + 0x17]
push eax
call fcn.1008b5d0
add esp, 8
mov edi, eax
mov edx, ebp
jmp 0x1008bd4d
mov ebx, dword [esp + 0x30]
xor edi, edi
or edx, 0x100
mov ecx, edx
shr edx, 1
and ecx, 1
neg ecx
shr ecx, 4
movzx eax, word [ebx + edx*2]
and ecx, 0x7f
shr eax, 4
xor eax, ecx
add edi, dword [esi + eax*4 + 0x748]
cmp edx, 2
jae 0x1008bd22
mov edx, dword [esi + 0x2c]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
shl ebp, 4
add ebp, ecx
movzx eax, word [esi + ebp*2 + 0x1e9c]
shr eax, 4
mov eax, dword [esi + eax*4 + 0x748]
add edi, eax
xor eax, eax
mov dword [esi + 0xbcc4], edi
mov word [esi + 0xbcca], ax
mov eax, edx
shl eax, 4
add ecx, eax
mov dword [esi + 0xbcd0], 0xffffffff
movzx eax, word [esi + ecx*2 + 0x1e9c]
xor eax, 0x7f0
shr eax, 4
mov eax, dword [esi + eax*4 + 0x748]
mov dword [esp + 0x3c], eax
movzx eax, word [esi + edx*2 + 0x1e3c]
xor eax, 0x7f0
shr eax, 4
mov ebp, dword [esi + eax*4 + 0x748]
add ebp, dword [esp + 0x3c]
mov al, byte [esp + 0x12]
mov dword [esp + 0x30], ebp
cmp byte [esp + 0x13], al
jne 0x1008be32
cmp dword [esp + 0x94], 0
jne 0x1008be32
movzx ecx, word [esi + ecx*2 + 0x201c]
movzx eax, word [esi + edx*2 + 0x1e54]
shr ecx, 4
shr eax, 4
mov ecx, dword [esi + ecx*4 + 0x748]
add ecx, dword [esi + eax*4 + 0x748]
or eax, 0xffffffff
add ecx, ebp
cmp ecx, edi
jae 0x1008be17
mov dword [esi + 0xbcc4], ecx
xor eax, eax
mov dword [esi + 0xbcd0], 0
cmp ebx, 2
jae 0x1008be32
pop edi
mov dword [esi + 0x90], eax
mov eax, 1
pop esi
pop ebp
pop ebx
add esp, 0x94
ret
mov eax, dword [esp + 0x70]
xor ebp, ebp
mov ecx, dword [esp + 0x58]
mov ebx, dword [esp + 0x20]
mov dword [esi + 0xbccc], 1
mov dword [esi + 0xbcb4], ecx
mov dword [esi + 0xbcb8], eax
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x74]
mov dword [esi + 0xbcbc], eax
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x78]
mov dword [esi + 0xbcc0], eax
nop dword [eax]
nop word [eax + eax]
mov edx, dword [esp + ebp*4 + 0x94]
cmp edx, 2
jb 0x1008bf7a
mov eax, dword [esi + 0x2c]
movzx ecx, word [esi + eax*2 + 0x1e54]
test ebp, ebp
jne 0x1008bec7
shl eax, 4
add eax, ebx
shr ecx, 4
movzx eax, word [esi + eax*2 + 0x201c]
xor eax, 0x7f0
shr eax, 4
mov eax, dword [esi + eax*4 + 0x748]
add eax, dword [esi + ecx*4 + 0x748]
jmp 0x1008bf2f
movzx edi, word [esi + eax*2 + 0x1e6c]
xor ecx, 0x7f0
shr ecx, 4
mov ecx, dword [esi + ecx*4 + 0x748]
mov dword [esp + 0x2c], ecx
cmp ebp, 1
jne 0x1008bef6
shr edi, 4
mov eax, ecx
add eax, dword [esi + edi*4 + 0x748]
jmp 0x1008bf2f
movzx ecx, word [esi + eax*2 + 0x1e84]
xor edi, 0x7f0
mov eax, 2
shr ecx, 4
sub eax, ebp
shr edi, 4
shr eax, 4
and eax, 0x7f
xor ecx, eax
mov eax, dword [esi + ecx*4 + 0x748]
add eax, dword [esi + edi*4 + 0x748]
add dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
add eax, dword [esp + 0x30]
lea ecx, [esi + 0xbcb0]
imul edi, ebx, 0x110
mov dword [esp + 0x40], eax
mov eax, edx
shl eax, 5
add ecx, eax
add edi, 0x1e27
add edi, edx
lea edi, [esi + edi*4]
mov eax, dword [edi]
add eax, dword [esp + 0x40]
cmp eax, dword [ecx - 0xc]
jae 0x1008bf6e
mov dword [ecx - 0xc], eax
xor eax, eax
mov dword [ecx - 4], edx
mov dword [ecx], ebp
mov word [ecx - 6], ax
dec edx
sub edi, 4
sub ecx, 0x20
cmp edx, 2
jae 0x1008bf55
inc ebp
cmp ebp, 4
jb 0x1008be80
mov edi, dword [esp + 0x94]
mov ebx, dword [esp + 0x18]
inc edi
cmp edi, dword [esp + 0x28]
ja 0x1008c0fa
mov eax, dword [esi + 0x2c]
xor ecx, ecx
mov dword [esp + 0x2c], ecx
movzx eax, word [esi + eax*2 + 0x1e3c]
shr eax, 4
mov eax, dword [esi + eax*4 + 0x748]
add eax, dword [esp + 0x3c]
mov dword [esp + 0x40], eax
cmp edi, 2
jae 0x1008bfc7
lea edi, [ecx + 2]
jmp 0x1008bfe0
cmp edi, dword [esi + 0x948]
jbe 0x1008bfe0
nop
add ecx, 2
cmp edi, dword [esi + ecx*4 + 0x948]
ja 0x1008bfd0
mov dword [esp + 0x2c], ecx
mov eax, edi
lea ebp, [esi + 0xbcb0]
shl eax, 7
mov edx, 0xffff4310
add eax, 0x487
mov dword [esp + 0x30], eax
mov eax, edi
mov ebx, dword [esp + 0x30]
shl eax, 5
add ebp, eax
imul eax, dword [esp + 0x20], 0x110
add eax, 0xd26
add eax, edi
sub edx, esi
mov dword [esp + 0x44], edx
lea eax, [esi + eax*4]
mov edx, dword [esi + ecx*4 + 0x94c]
mov dword [esp + 0x38], eax
mov eax, dword [eax]
add eax, dword [esp + 0x40]
mov dword [esp + 0x48], edx
mov dword [esp + 0x30], eax
cmp edi, 5
jae 0x1008c04a
mov eax, dword [esp + 0x44]
add eax, ebp
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x34], eax
jmp 0x1008c05a
mov dword [esp + 0x34], 0x60
mov dword [esp + 0x3c], 0x707
cmp edx, 0x80
jae 0x1008c070
mov eax, edx
and eax, 0x7f
add eax, dword [esp + 0x3c]
mov eax, dword [esi + eax*4]
jmp 0x1008c0ae
mov eax, dword [esp + 0x48]
cmp edx, 0x20000
sbb edx, edx
and edx, 0xfffffff6
add edx, 0x10
mov ecx, edx
shr eax, cl
movzx ecx, byte [eax + esi + 0x2c9c]
mov eax, dword [esp + 0x34]
add eax, edx
mov edx, dword [esp + 0x48]
lea eax, [ecx + eax*2]
mov ecx, edx
mov eax, dword [esi + eax*4 + 0x121c]
and ecx, 0xf
add eax, dword [esi + ecx*4 + 0x11dc]
add eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
cmp eax, dword [ebp - 0xc]
jae 0x1008c0cd
mov dword [ebp - 0xc], eax
lea eax, [edx + 4]
mov dword [ebp], eax
xor eax, eax
mov dword [ebp - 4], edi
mov word [ebp - 6], ax
cmp edi, dword [esi + ecx*4 + 0x948]
jne 0x1008c0e3
add ecx, 2
mov dword [esp + 0x2c], ecx
cmp ecx, dword [esp + 0x1c]
je 0x1008c0f6
mov eax, dword [esp + 0x38]
inc edi
add eax, 4
sub ebx, 0xffffff80
add ebp, 0x20
jmp 0x1008c01c
mov ebx, dword [esp + 0x18]
mov ebp, 1
mov dword [esp + 0x24], ebp
cmp ebx, ebp
je 0x1008ce2d
mov dword [esp + 0x18], ebx
nop
cmp ebp, 0x7c0
jae 0x1008cddd
lea edx, [esp + 0x3c]
mov ecx, esi
call fcn.1008ba90
mov ecx, eax
mov dword [esp + 0x68], ecx
cmp ecx, dword [esi + 0x30]
jae 0x1008cdd1
inc dword [esp + 0x4c]
mov edi, ebp
shl edi, 5
mov edx, ebp
add edi, esi
mov dword [esp + 0x50], edi
mov eax, dword [edi + 0xbcac]
sub edx, eax
cmp eax, 1
jne 0x1008c188
cmp dword [edi + 0xbcb0], 0
mov eax, str._t_t_t_t_t_t_t_v_v_v_v_v
mov ebp, dword [esp + 0x58]
mov ecx, 0x1017b27c
cmove ecx, eax
shl edx, 5
movzx eax, word [edx + esi + 0xbca8]
mov edx, dword [esp + 0x60]
movzx ecx, byte [ecx + eax]
mov dword [esp + 0x1c], ecx
jmp 0x1008c297
movzx ebp, word [edi + 0xbcaa]
mov ecx, dword [edi + 0xbcb0]
test bp, bp
je 0x1008c1dc
sub edx, ebp
mov dword [esp + 0x1c], 8
cmp ebp, 1
jne 0x1008c1b7
cmp ecx, 4
sbb eax, eax
neg eax
add eax, 7
mov dword [esp + 0x1c], eax
shl edx, 5
lea eax, [edx + 0xbca4]
mov edx, dword [eax + esi + 0x14]
add eax, esi
mov dword [esp + 0x60], edx
mov ebp, dword [eax + 0x10]
mov dword [esp + 0x54], ebp
cmp ecx, 4
jae 0x1008c271
jmp 0x1008c20f
mov eax, edx
shl edx, 5
shl eax, 5
movzx eax, word [eax + esi + 0xbca8]
cmp ecx, 4
jae 0x1008c24f
movzx eax, byte [eax + str._b_b_b_b_b_b_b_v_v_v_v_v]
mov dword [esp + 0x1c], eax
lea eax, [edx + 0xbca4]
mov edx, dword [eax + esi + 0x14]
add eax, esi
mov ebp, dword [eax + 0x10]
mov dword [esp + 0x54], ebp
test ecx, ecx
jne 0x1008c221
mov ecx, edx
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x60], edx
jmp 0x1008c27b
mov dword [esp + 0x70], ebp
mov ebp, edx
mov dword [esp + 0x58], ebp
cmp ecx, 1
jne 0x1008c23c
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x60], edx
jmp 0x1008c287
mov edx, ebp
mov ebp, dword [eax + ecx*4 + 0x10]
xor ecx, 1
mov dword [esp + 0x60], edx
mov eax, dword [eax + ecx*4 + 0x10]
jmp 0x1008c283
movzx eax, byte [eax + str._a_a_a_a_a_a_a_n_n_n_n_n]
mov dword [esp + 0x1c], eax
lea eax, [edx + 0xbca4]
mov edx, dword [eax + esi + 0x10]
add eax, esi
mov dword [esp + 0x54], edx
mov edx, dword [eax + 0x14]
mov dword [esp + 0x60], edx
mov eax, dword [eax + 0x18]
lea ebp, [ecx - 3]
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x58], ebp
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x78], eax
mov dword [esp + 0x74], edx
mov dword [esp + 0x6c], ebp
mov eax, dword [esp + 0x54]
mov word [edi + 0xbca8], cx
mov dword [edi + 0xbcb4], ebp
mov dword [edi + 0xbcb8], eax
mov eax, dword [esp + 0x78]
mov dword [edi + 0xbcbc], edx
mov dword [edi + 0xbcc0], eax
push dword [esi]
mov eax, dword [esi + 0xc]
call eax
mov ecx, dword [esp + 0x50]
add esp, 4
and ecx, dword [esi + 0x4c]
mov edx, dword [edi + 0xbca4]
lea ebp, [eax - 1]
mov dword [esp + 0x30], ecx
mov al, byte [ebp]
mov byte [esp + 0x12], al
mov eax, ebp
sub eax, dword [esp + 0x58]
mov dword [esp + 0x38], eax
mov dword [esp + 0x14], ebp
mov al, byte [eax]
mov byte [esp + 0x13], al
mov eax, dword [esp + 0x1c]
shl eax, 4
add eax, ecx
mov dword [esp + 0x64], eax
movzx ecx, word [esi + eax*2 + 0x1e9c]
mov eax, ecx
shr ecx, 4
xor eax, 0x7f0
shr eax, 4
mov eax, dword [esi + eax*4 + 0x748]
add eax, edx
mov dword [esp + 0x40], eax
mov eax, dword [esi + ecx*4 + 0x748]
add eax, edx
xor edx, edx
mov dword [esp + 0x20], edx
mov edx, dword [edi + 0xbcc4]
mov dword [esp + 0x28], eax
mov dword [esp + 0x34], edx
cmp edx, 0x40000000
jae 0x1008c355
mov cl, byte [esp + 0x12]
cmp byte [esp + 0x13], cl
je 0x1008c359
cmp eax, edx
jbe 0x1008c364
xor ebp, ebp
mov dword [esp + 0x28], ebp
jmp 0x1008c427
mov eax, dword [esp + 0x4c]
movzx edx, byte [ebp - 1]
mov ecx, dword [esi + 0x94]
shl eax, 8
add edx, eax
mov eax, dword [esi + 0x50]
and edx, dword [esi + 0x48]
shl edx, cl
cmp dword [esp + 0x1c], 7
lea ecx, [edx + edx*2]
movzx edx, byte [esp + 0x12]
lea ecx, [eax + ecx*2]
mov dword [esp + 0x44], ecx
jb 0x1008c3ae
lea eax, [esi + 0x748]
push eax
movzx eax, byte [esp + 0x17]
push eax
call fcn.1008b5d0
add esp, 8
mov ebp, eax
jmp 0x1008c3e8
mov edi, dword [esp + 0x44]
xor ebp, ebp
or edx, 0x100
nop word [eax + eax]
mov ecx, edx
shr edx, 1
and ecx, 1
neg ecx
shr ecx, 4
movzx eax, word [edi + edx*2]
and ecx, 0x7f
shr eax, 4
xor eax, ecx
add ebp, dword [esi + eax*4 + 0x748]
cmp edx, 2
jae 0x1008c3c0
mov edi, dword [esp + 0x50]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x34]
add ecx, ebp
mov dword [esp + 0x28], ecx
cmp ecx, edx
jae 0x1008c427
xor eax, eax
mov dword [edi + 0xbcc4], ecx
mov dword [edi + 0xbccc], 1
mov edx, ecx
mov dword [edi + 0xbcd0], 0xffffffff
mov word [edi + 0xbcca], ax
mov dword [esp + 0x20], 1
mov ecx, dword [esp + 0x1c]
mov ebp, 0x7ff
sub ebp, dword [esp + 0x24]
lea eax, [ecx + 0xf1e]
lea eax, [esi + eax*2]
mov dword [esp + 0x84], eax
movzx eax, word [eax]
xor eax, 0x7f0
shr eax, 4
mov eax, dword [esi + eax*4 + 0x748]
add eax, dword [esp + 0x40]
cmp dword [esi + 0x28], ebp
mov dword [esp + 0x5c], eax
cmovbe ebp, dword [esi + 0x28]
cmp ecx, 7
mov al, byte [esp + 0x13]
mov cl, byte [esp + 0x12]
mov dword [esp + 0x2c], ebp
jae 0x1008c509
cmp al, cl
jne 0x1008c509
cmp dword [esp + 0x5c], edx
jae 0x1008c509
cmp dword [edi + 0xbccc], 2
jb 0x1008c49e
cmp dword [edi + 0xbcd0], 0
je 0x1008c509
mov eax, dword [esp + 0x64]
movzx ecx, word [esi + eax*2 + 0x201c]
mov eax, dword [esp + 0x1c]
shr ecx, 4
movzx eax, word [esi + eax*2 + 0x1e54]
mov ecx, dword [esi + ecx*4 + 0x748]
shr eax, 4
add ecx, dword [esi + eax*4 + 0x748]
add ecx, dword [esp + 0x5c]
cmp ecx, edx
jae 0x1008c501
xor eax, eax
mov dword [edi + 0xbcc4], ecx
mov cl, byte [esp + 0x12]
xor edx, edx
mov word [edi + 0xbcca], ax
mov al, byte [esp + 0x13]
mov dword [edi + 0xbccc], 1
mov dword [edi + 0xbcd0], 0
jmp 0x1008c50d
mov al, byte [esp + 0x13]
mov cl, byte [esp + 0x12]
mov edx, dword [esp + 0x20]
cmp dword [esp + 0x2c], 2
jb 0x1008cdbe
mov edi, dword [esi + 0x30]
mov ebp, edi
cmp dword [esp + 0x2c], edi
cmovbe ebp, dword [esp + 0x2c]
mov dword [esp + 0x48], ebp
mov ebp, dword [esp + 0x28]
test edx, edx
jne 0x1008c680
test ebp, ebp
je 0x1008c680
mov edx, dword [esp + 0x14]
cmp al, cl
je 0x1008c684
mov ecx, dword [esp + 0x2c]
cmp ecx, 2
jbe 0x1008c684
mov ebp, dword [esp + 0x38]
mov al, byte [edx + 1]
cmp al, byte [ebp + 1]
jne 0x1008c684
mov al, byte [edx + 2]
cmp al, byte [ebp + 2]
jne 0x1008c684
inc edi
mov edx, 3
cmp edi, ecx
cmova edi, ecx
cmp edi, edx
jbe 0x1008c59d
mov ebx, dword [esp + 0x14]
lea ecx, [ebp + 3]
sub ebx, ebp
nop dword [eax + eax]
mov al, byte [ebx + ecx]
cmp al, byte [ecx]
jne 0x1008c59d
inc edx
inc ecx
cmp edx, edi
jb 0x1008c590
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x24]
inc ebx
and ebx, dword [esi + 0x4c]
add ebp, edx
movzx edi, byte [eax + 0x1017b27c]
mov eax, ebp
cmp dword [esp + 0x18], ebp
cmovae eax, dword [esp + 0x18]
dec edx
movzx ecx, word [esi + edi*2 + 0x1e3c]
mov dword [esp + 0x50], edx
xor ecx, 0x7f0
mov dword [esp + 0x18], eax
mov edx, edi
shl edx, 4
add edx, ebx
shr ecx, 4
shl ebp, 5
movzx eax, word [esi + edx*2 + 0x201c]
mov ecx, dword [esi + ecx*4 + 0x748]
xor eax, 0x7f0
shr eax, 4
add ecx, dword [esi + eax*4 + 0x748]
movzx eax, word [esi + edx*2 + 0x1e9c]
mov edx, ecx
xor eax, 0x7f0
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x50]
shr eax, 4
add edx, dword [esi + eax*4 + 0x748]
movzx eax, word [esi + edi*2 + 0x1e54]
shr eax, 4
add edx, dword [esi + eax*4 + 0x748]
imul eax, ebx, 0x110
mov ebx, dword [esp + 0x18]
add eax, ecx
add edx, dword [esi + eax*4 + 0x789c]
add edx, dword [esp + 0x28]
cmp edx, dword [esi + ebp + 0xbca4]
jae 0x1008c680
mov eax, 1
mov dword [esi + ebp + 0xbca4], edx
mov dword [esi + ebp + 0xbcac], ecx
mov dword [esi + ebp + 0xbcb0], 0
mov word [esi + ebp + 0xbcaa], ax
mov dword [esp + 0x18], ebx
mov edx, dword [esp + 0x14]
xor ecx, ecx
mov dword [esp + 0x34], 2
mov dword [esp + 0x20], ecx
mov ebp, dword [esp + ecx*4 + 0x6c]
mov edi, edx
mov al, byte [edx]
sub edi, ebp
mov dword [esp + 0x90], ebp
mov dword [esp + 0x50], edi
cmp al, byte [edi]
jne 0x1008c9f5
mov al, byte [edx + 1]
cmp al, byte [edi + 1]
jne 0x1008c9f5
mov edx, 2
mov dword [esp + 0x28], edx
cmp dword [esp + 0x48], edx
jbe 0x1008c6e9
mov esi, dword [esp + 0x48]
lea ecx, [edi + 2]
mov al, byte [ecx + ebp]
cmp al, byte [ecx]
jne 0x1008c6de
inc edx
inc ecx
cmp edx, esi
jb 0x1008c6d1
mov esi, dword [esp + 0x88]
mov dword [esp + 0x28], edx
mov ecx, dword [esp + 0x24]
mov edi, edx
add ecx, edx
cmp ebx, ecx
mov dword [esp + 0x7c], ecx
mov eax, ecx
cmovae eax, ebx
mov ecx, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x44], ecx
movzx ecx, word [esi + eax*2 + 0x1e54]
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x1008c741
mov eax, dword [esp + 0x64]
shr ecx, 4
movzx eax, word [esi + eax*2 + 0x201c]
xor eax, 0x7f0
shr eax, 4
mov ebp, dword [esi + eax*4 + 0x748]
add ebp, dword [esi + ecx*4 + 0x748]
jmp 0x1008c7a3
xor ecx, 0x7f0
shr ecx, 4
mov ebp, dword [esi + ecx*4 + 0x748]
mov ecx, dword [esp + 0x1c]
movzx ebx, word [esi + ecx*2 + 0x1e6c]
cmp eax, 1
jne 0x1008c76e
shr ebx, 4
add ebp, dword [esi + ebx*4 + 0x748]
jmp 0x1008c7a3
movzx ecx, word [esi + ecx*2 + 0x1e84]
mov eax, 2
sub eax, dword [esp + 0x20]
xor ebx, 0x7f0
shr eax, 4
and eax, 0x7f
shr ecx, 4
xor ecx, eax
shr ebx, 4
mov eax, dword [esi + ecx*4 + 0x748]
add eax, dword [esi + ebx*4 + 0x748]
add ebp, eax
imul eax, dword [esp + 0x30], 0x110
add ebp, dword [esp + 0x5c]
mov dword [esp + 0x38], ebp
add eax, 0x1e27
add eax, edx
mov edx, dword [esp + 0x20]
lea eax, [esi + eax*4]
mov dword [esp + 0x80], eax
mov ebx, eax
mov eax, dword [esp + 0x7c]
shl eax, 5
add eax, 0xbcb0
add eax, esi
mov ecx, dword [ebx]
add ecx, ebp
cmp ecx, dword [eax - 0xc]
jae 0x1008c7ef
mov dword [eax - 0xc], ecx
xor ecx, ecx
mov dword [eax - 4], edi
mov dword [eax], edx
mov word [eax - 6], cx
dec edi
sub ebx, 4
sub eax, 0x20
cmp edi, 2
jae 0x1008c7d8
test edx, edx
mov edx, dword [esp + 0x28]
jne 0x1008c80e
lea eax, [edx + 1]
mov dword [esp + 0x34], eax
mov ebp, eax
jmp 0x1008c811
lea ebp, [edx + 1]
mov eax, dword [esi + 0x30]
add eax, ebp
cmp eax, dword [esp + 0x2c]
cmova eax, dword [esp + 0x2c]
add ebp, 2
mov dword [esp + 0x7c], eax
cmp ebp, eax
ja 0x1008c9e9
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x14]
add ecx, ebp
mov edi, dword [esp + 0x44]
mov ebx, edi
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x18], ebx
mov al, byte [eax + ebp - 2]
cmp al, byte [ecx - 2]
jne 0x1008c9ed
mov eax, dword [esp + 0x14]
mov dword [esp + 0x18], ebx
mov al, byte [eax + ebp - 1]
cmp al, byte [ecx - 1]
jne 0x1008c9ed
mov ecx, dword [esp + 0x4c]
lea eax, [esi + 0x748]
mov ebx, dword [esp + 0x14]
add ecx, edx
push eax
mov eax, dword [esp + 0x54]
mov edi, ecx
and edi, dword [esi + 0x4c]
shl ecx, 8
movzx eax, byte [edx + eax]
push eax
mov eax, dword [esp + 0x1c]
movzx edx, byte [edx + eax]
mov eax, dword [esp + 0x30]
movzx eax, byte [eax + ebx - 1]
add eax, ecx
mov ecx, dword [esi + 0x94]
and eax, dword [esi + 0x48]
shl eax, cl
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0x50]
lea ecx, [eax + ecx*2]
call fcn.1008b5d0
mov ecx, dword [esp + 0x24]
add esp, 8
mov edx, dword [esp + 0x38]
movzx ecx, byte [ecx + str._b_b_b_b_b_b_b_v_v_v_v_v]
shl ecx, 4
add ecx, edi
movzx ecx, word [esi + ecx*2 + 0x1e9c]
shr ecx, 4
add eax, dword [esi + ecx*4 + 0x748]
mov ecx, dword [esp + 0x80]
add eax, dword [ecx]
add edx, eax
lea eax, [edi + 1]
and eax, dword [esi + 0x4c]
mov dword [esp + 0x80], eax
movzx ecx, word [esi + eax*2 + 0x20bc]
movzx eax, word [esi + eax*2 + 0x1f3c]
xor ecx, 0x7f0
xor eax, 0x7f0
shr ecx, 4
shr eax, 4
mov ecx, dword [esi + ecx*4 + 0x748]
add ecx, dword [esi + eax*4 + 0x748]
movzx eax, word [esi + 0x1e46]
xor eax, 0x7f0
shr eax, 4
add ecx, dword [esi + eax*4 + 0x748]
movzx eax, word [esi + 0x1e5e]
shr eax, 4
add ecx, dword [esi + eax*4 + 0x748]
add edx, ecx
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x7c]
cmp ebp, edx
jae 0x1008c97d
mov ecx, dword [esp + 0x8c]
mov edi, dword [esp + 0x90]
nop dword [eax]
mov al, byte [ecx + edi]
cmp al, byte [ecx]
jne 0x1008c97d
inc ebp
inc ecx
cmp ebp, edx
jb 0x1008c970
mov ebx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
add ebx, ebp
mov ecx, ebx
cmp dword [esp + 0x44], ecx
cmovae ebx, dword [esp + 0x44]
or eax, 0xffffffff
sub eax, edx
shl ecx, 5
add ebp, eax
mov dword [esp + 0x18], ebx
imul eax, dword [esp + 0x80], 0x110
lea edi, [ecx + esi]
mov ecx, dword [esp + 0x20]
add eax, ebp
mov eax, dword [esi + eax*4 + 0x789c]
add eax, dword [esp + 0x38]
cmp eax, dword [edi + 0xbca4]
jae 0x1008c9f1
mov dword [edi + 0xbca4], eax
lea eax, [edx + 1]
mov dword [edi + 0xbcac], ebp
mov word [edi + 0xbcaa], ax
mov dword [edi + 0xbcb0], ecx
mov dword [esp + 0x18], ebx
jmp 0x1008c9f1
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
inc ecx
mov dword [esp + 0x20], ecx
cmp ecx, 4
jb 0x1008c692
mov edx, dword [esp + 0x48]
mov edi, dword [esp + 0x68]
cmp edi, edx
jbe 0x1008ca3c
xor eax, eax
xor ecx, ecx
mov edi, edx
cmp edx, dword [esi + 0x948]
jbe 0x1008ca2e
nop dword [eax]
add eax, 2
mov ecx, eax
cmp edx, dword [esi + eax*4 + 0x948]
ja 0x1008ca20
mov dword [esi + eax*4 + 0x948], edx
lea eax, [ecx + 2]
mov dword [esp + 0x3c], eax
mov ebp, dword [esp + 0x34]
cmp edi, ebp
jb 0x1008cdbe
mov eax, dword [esp + 0x84]
movzx eax, word [eax]
shr eax, 4
mov eax, dword [esi + eax*4 + 0x748]
add eax, dword [esp + 0x40]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x24]
add eax, edi
cmp ebx, eax
cmovae eax, ebx
xor edi, edi
mov ebx, eax
mov dword [esp + 0x48], edi
mov dword [esp + 0x18], ebx
cmp ebp, dword [esi + 0x948]
jbe 0x1008caa0
nop word [eax + eax]
add edi, 2
cmp ebp, dword [esi + edi*4 + 0x948]
ja 0x1008ca90
mov dword [esp + 0x48], edi
lea eax, [edi*4]
mov edi, dword [esp + 0x34]
mov edx, dword [eax + esi + 0x94c]
cmp edx, 0x20000
mov dword [esp + 0x40], eax
mov eax, edx
sbb ecx, ecx
mov dword [esp + 0x50], edx
and ecx, 0xfffffff6
add ecx, 0x10
shr eax, cl
movzx eax, byte [eax + esi + 0x2c9c]
lea eax, [eax + ecx*2]
imul ecx, dword [esp + 0x30], 0x110
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x4c]
add eax, ebp
add ebp, 3
shl eax, 8
add ecx, 0xd26
mov dword [esp + 0x38], eax
add ecx, edi
add edi, dword [esp + 0x24]
shl edi, 5
add edi, 0xbcb0
add edi, esi
lea ecx, [esi + ecx*4]
mov eax, dword [ecx]
add eax, dword [esp + 0x84]
mov dword [esp + 0x34], ecx
mov ecx, 3
mov dword [esp + 0x68], eax
lea eax, [ebp - 5]
cmp eax, ecx
mov dword [esp + 0x28], edi
mov dword [esp + 0x5c], ebp
cmovb ecx, eax
mov eax, edx
cmp edx, 0x80
jae 0x1008cb4e
shl ecx, 7
and eax, 0x7f
add ecx, eax
mov ecx, dword [esi + ecx*4 + 0x161c]
jmp 0x1008cb66
shl ecx, 6
and eax, 0xf
add ecx, dword [esp + 0x64]
mov ecx, dword [esi + ecx*4 + 0x121c]
add ecx, dword [esi + eax*4 + 0x11dc]
mov eax, dword [esp + 0x68]
add eax, ecx
mov dword [esp + 0x68], eax
cmp eax, dword [edi - 0xc]
jae 0x1008cb89
mov dword [edi - 0xc], eax
lea eax, [ebp - 3]
mov dword [edi - 4], eax
lea eax, [edx + 4]
mov dword [edi], eax
xor eax, eax
mov word [edi - 6], ax
mov eax, dword [esp + 0x40]
lea ecx, [ebp - 3]
mov dword [esp + 0x44], ecx
cmp ecx, dword [eax + esi + 0x948]
jne 0x1008cda6
mov ecx, dword [esp + 0x14]
lea edi, [ebp - 2]
add edi, dword [esi + 0x30]
sub ecx, edx
dec ecx
mov edx, ebp
cmp edi, dword [esp + 0x2c]
mov dword [esp + 0x30], ecx
cmova edi, dword [esp + 0x2c]
mov dword [esp + 0x40], edx
cmp ebp, edi
ja 0x1008cd5a
mov eax, dword [esp + 0x14]
mov al, byte [eax + ebp - 2]
cmp al, byte [ecx + ebp - 2]
jne 0x1008cd5a
mov eax, dword [esp + 0x14]
mov al, byte [eax + ebp - 1]
cmp al, byte [ecx + ebp - 1]
jne 0x1008cd5a
cmp ebp, edi
jae 0x1008cc15
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x30]
sub ebx, eax
lea ecx, [eax + ebp]
nop
mov al, byte [ecx]
cmp al, byte [ebx + ecx]
jne 0x1008cc0d
inc edx
inc ecx
cmp edx, edi
jb 0x1008cc00
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x40], edx
mov edi, dword [esp + 0x4c]
lea eax, [esi + 0x748]
push eax
movzx eax, byte [ecx + ebp - 3]
add edi, 0xfffffffd
mov ecx, dword [esi + 0x94]
add edi, ebp
and edi, dword [esi + 0x4c]
push eax
mov eax, dword [esp + 0x1c]
movzx edx, byte [eax + ebp - 3]
movzx eax, byte [eax + ebp - 4]
add eax, dword [esp + 0x40]
and eax, dword [esi + 0x48]
shl eax, cl
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0x50]
lea ecx, [eax + ecx*2]
call fcn.1008b5d0
mov ebp, eax
mov ebx, dword [esp + 0x48]
mov eax, dword [esp + 0x24]
lea edx, [edi + 1]
and edx, dword [esi + 0x4c]
add esp, 8
movzx ecx, byte [eax + str._a_a_a_a_a_a_a_n_n_n_n_n]
shl ecx, 4
add ecx, edi
mov edi, dword [esp + 0x24]
add edi, ebx
mov eax, edi
movzx ecx, word [esi + ecx*2 + 0x1e9c]
shr ecx, 4
add ebp, dword [esi + ecx*4 + 0x748]
add ebp, dword [esp + 0x68]
cmp dword [esp + 0x18], edi
movzx ecx, word [esi + edx*2 + 0x209c]
cmovae eax, dword [esp + 0x18]
xor ecx, 0x7f0
mov dword [esp + 0x18], eax
or eax, 0xffffffff
sub eax, dword [esp + 0x44]
add ebx, eax
shr ecx, 4
movzx eax, word [esi + edx*2 + 0x1f1c]
xor eax, 0x7f0
shl edi, 5
shr eax, 4
mov ecx, dword [esi + ecx*4 + 0x748]
add ecx, dword [esi + eax*4 + 0x748]
movzx eax, word [esi + 0x1e44]
xor eax, 0x7f0
shr eax, 4
add ecx, dword [esi + eax*4 + 0x748]
movzx eax, word [esi + 0x1e5c]
shr eax, 4
add ecx, dword [esi + eax*4 + 0x748]
imul eax, edx, 0x110
add eax, ebx
add ecx, dword [esi + eax*4 + 0x789c]
add ecx, ebp
mov ebp, dword [esp + 0x5c]
cmp ecx, dword [edi + esi + 0xbca4]
jae 0x1008cd56
mov eax, dword [esp + 0x44]
inc eax
mov dword [edi + esi + 0xbcac], ebx
mov ebx, dword [esp + 0x18]
mov word [edi + esi + 0xbcaa], ax
mov eax, dword [esp + 0x50]
add eax, 4
mov dword [edi + esi + 0xbca4], ecx
mov dword [edi + esi + 0xbcb0], eax
mov dword [esp + 0x18], ebx
jmp 0x1008cd5a
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x48]
add edi, 2
mov dword [esp + 0x48], edi
cmp edi, dword [esp + 0x3c]
je 0x1008cdbe
lea eax, [edi*4]
mov edi, dword [esp + 0x28]
mov edx, dword [eax + esi + 0x94c]
cmp edx, 0x20000
mov dword [esp + 0x40], eax
mov eax, edx
sbb ecx, ecx
mov dword [esp + 0x50], edx
and ecx, 0xfffffff6
add ecx, 0x10
shr eax, cl
movzx eax, byte [eax + esi + 0x2c9c]
lea eax, [eax + ecx*2]
mov dword [esp + 0x64], eax
mov ecx, dword [esp + 0x34]
add edi, 0x20
add dword [esp + 0x38], 0x100
add ecx, 4
inc ebp
jmp 0x1008cb0d
mov ebp, dword [esp + 0x24]
inc ebp
mov dword [esp + 0x24], ebp
cmp ebp, ebx
jne 0x1008c110
jmp 0x1008ce2d
mov eax, dword [esp + 0x3c]
mov dword [esi + 0x24], eax
mov dword [esi + 0x20], ecx
jmp 0x1008ce2d
mov edx, dword [esp + 0x24]
mov eax, ebp
shl eax, 5
inc edx
mov edi, dword [eax + esi + 0xbca4]
cmp edx, ebx
ja 0x1008ce13
mov eax, edx
shl eax, 5
mov ecx, dword [eax + esi + 0xbca4]
cmp edi, ecx
mov eax, edx
cmovb eax, ebp
inc edx
cmp edi, ecx
mov ebp, eax
cmovb ecx, edi
mov edi, ecx
cmp edx, ebx
jbe 0x1008cdf2
mov eax, ebp
sub eax, dword [esp + 0x24]
je 0x1008ce29
add dword [esi + 0x34], eax
push eax
push dword [esi]
mov eax, dword [esi + 0x14]
call eax
add esp, 8
mov dword [esp + 0x24], ebp
mov eax, ebx
shl eax, 5
add eax, 0xbca4
add eax, esi
nop dword [eax]
mov dword [eax], 0x40000000
lea eax, [eax - 0x20]
sub ebx, 1
jne 0x1008ce40
lea edi, [ebp + 1]
mov eax, edi
mov dword [esi + 0x1c], edi
shl eax, 5
lea edx, [esi + 0xbcac]
lea ecx, [esi + 0xbcb0]
add edx, eax
add ecx, eax
nop dword [eax]
mov eax, ebp
shl eax, 5
mov ebx, dword [eax + esi + 0xbcac]
mov ebp, dword [eax + esi + 0xbcb0]
movzx eax, word [eax + esi + 0xbcaa]
sub dword [esp + 0x24], ebx
test eax, eax
je 0x1008ceca
sub dword [esp + 0x24], eax
sub edx, 0x20
dec edi
sub ecx, 0x20
mov dword [edx], ebx
mov ebx, eax
cmp eax, 1
jne 0x1008ceae
mov dword [ecx], ebp
or ebp, 0xffffffff
jmp 0x1008ceca
mov dword [ecx], 0
lea ebx, [eax - 1]
sub ecx, 0x20
dec edi
sub edx, 0x20
mov dword [ecx], 0xffffffff
mov dword [edx], 1
cmp dword [esp + 0x24], 0
je 0x1008cee2
sub ecx, 0x20
dec edi
sub edx, 0x20
mov dword [ecx], ebp
mov dword [edx], ebx
mov ebp, dword [esp + 0x24]
jmp 0x1008ce70
mov dword [esi + 0x18], edi
mov eax, ebx
pop edi
mov dword [esi + 0x90], ebp
pop esi
pop ebp
pop ebx
add esp, 0x94
ret
pop edi
mov dword [esi + 0x90], 0xffffffff
mov eax, 1
pop esi
pop ebp
pop ebx
add esp, 0x94
ret