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

Disassembly:
sub esp, 0x94
push ebx
push esi
mov esi, ecx
mov dword [esp + 0x44], edx
mov dword [esp + 0x84], esi
cmp dword [esi + 0x34], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x18], 0
jne 0x100c3d1c
lea edx, [esp + 0x2c]
call fcn.100c7500
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x2c]
jmp 0x100c3d26
mov eax, dword [esi + 0x20]
mov dword [esp + 0x3c], eax
mov eax, dword [esi + 0x24]
mov ebx, dword [esi + 0x28]
mov dword [esp + 0x14], eax
cmp ebx, 2
jae 0x100c3d4a
mov dword [esi + 0x90], 0xffffffff
mov eax, 1
pop esi
pop ebx
add esp, 0x94
ret
mov ecx, dword [esi]
mov eax, 0x111
cmp ebx, eax
push ebp
cmova ebx, eax
mov eax, dword [esi + 0xc]
call eax
xor ecx, ecx
xor ebp, ebp
mov dword [esp + 0x34], ecx
push edi
lea edx, [eax - 1]
mov al, byte [edx]
mov dword [esp + 0x28], edx
mov byte [esp + 0x12], al
mov eax, dword [esi + ebp*4 + 0x38]
mov edi, edx
sub edi, eax
mov dword [esp + ebp*4 + 0x6c], eax
mov al, byte [esp + 0x12]
cmp al, byte [edi]
jne 0x100c3dd8
mov al, byte [edx + 1]
cmp al, byte [edi + 1]
jne 0x100c3dd8
mov edx, 2
cmp ebx, edx
jbe 0x100c3db1
mov eax, dword [esp + 0x28]
sub edi, eax
lea ecx, [eax + 2]
mov al, byte [ecx]
cmp al, byte [edi + ecx]
jne 0x100c3dad
inc edx
inc ecx
cmp edx, ebx
jb 0x100c3da0
mov ecx, dword [esp + 0x38]
mov dword [esp + ebp*4 + 0x94], edx
mov eax, ebp
cmp edx, dword [esp + ecx*4 + 0x94]
cmovbe eax, ecx
mov ecx, eax
cmp edx, 0x111
je 0x100c3de9
mov edx, dword [esp + 0x28]
mov dword [esp + 0x38], ecx
jmp 0x100c3de3
mov dword [esp + ebp*4 + 0x94], 0
inc ebp
cmp ebp, 4
jb 0x100c3d72
mov edi, dword [esp + ecx*4 + 0x94]
mov eax, dword [esi + 0x30]
cmp edi, eax
jb 0x100c3e1a
mov dword [esi + 0x90], ecx
lea edx, [edi - 1]
lea ecx, [edi - 1]
add dword [esi + 0x34], ecx
mov ecx, dword [esi]
mov esi, dword [esi + 0x14]
call esi
mov eax, edi
pop edi
pop ebp
pop esi
pop ebx
add esp, 0x94
ret
mov ebp, dword [esp + 0x44]
cmp ebp, eax
jb 0x100c3e53
mov eax, dword [esp + 0x1c]
lea edx, [ebp - 1]
mov ecx, dword [esi]
mov eax, dword [esi + eax*4 + 0x95c]
add eax, 4
mov dword [esi + 0x90], eax
lea eax, [ebp - 1]
add dword [esi + 0x34], eax
mov eax, dword [esi + 0x14]
call eax
pop edi
mov eax, ebp
pop ebp
pop esi
pop ebx
add esp, 0x94
ret
mov ecx, dword [esp + 0x28]
mov eax, ecx
mov ebx, dword [esp + 0x6c]
sub eax, ebx
mov dword [esp + 0x54], ebx
cmp edi, ebp
mov ebx, ebp
mov dl, byte [ecx]
cmova ebx, edi
mov al, byte [eax]
mov byte [esp + 0x12], dl
mov byte [esp + 0x13], al
mov dword [esp + 0x20], ebx
cmp ebx, 2
jae 0x100c3e9d
cmp dl, al
je 0x100c3e9d
pop edi
pop ebp
mov dword [esi + 0x90], 0xffffffff
mov eax, 1
pop esi
pop ebx
add esp, 0x94
ret
mov ax, word [esi + 0x2c]
mov word [esi + 0xbcbc], ax
mov ebp, dword [esi + 0x4c]
mov eax, dword [esp + 0x4c]
and ebp, eax
movzx edx, byte [ecx - 1]
mov ecx, dword [esi + 0x94]
mov edi, dword [esi + 0x2c]
shl eax, 8
add edx, eax
mov dword [esp + 0x30], ebp
and edx, dword [esi + 0x48]
mov eax, dword [esi + 0x50]
shl edx, cl
lea ecx, [edx + edx*2]
movzx edx, byte [esp + 0x12]
lea ecx, [eax + ecx*2]
lea eax, [esi + 0x760]
push eax
cmp edi, 7
jb 0x100c3ef3
movzx eax, byte [esp + 0x17]
push eax
call fcn.100c5880
jmp 0x100c3ef8
call fcn.100c5840
mov ecx, eax
shl edi, 4
add edi, ebp
movzx eax, word [esi + edi*2 + 0x1eb0]
shr eax, 4
mov edx, dword [esi + eax*4 + 0x760]
xor eax, eax
mov word [esi + 0xbcde], ax
add edx, ecx
mov dword [esi + 0xbcd8], edx
mov dword [esi + 0xbce4], 0xffffffff
mov ecx, dword [esi + 0x2c]
mov edi, ecx
shl edi, 4
add edi, ebp
movzx eax, word [esi + edi*2 + 0x1eb0]
xor eax, 0x7f0
shr eax, 4
mov eax, dword [esi + eax*4 + 0x760]
mov dword [esp + 0x38], eax
movzx eax, word [esi + ecx*2 + 0x1e50]
xor eax, 0x7f0
shr eax, 4
mov ebp, dword [esi + eax*4 + 0x760]
add ebp, dword [esp + 0x38]
mov al, byte [esp + 0x12]
mov dword [esp + 0x34], ebp
cmp byte [esp + 0x13], al
jne 0x100c3fe5
cmp dword [esp + 0x94], 0
jne 0x100c3fe5
movzx ecx, word [esi + ecx*2 + 0x1e68]
movzx eax, word [esi + edi*2 + 0x2030]
shr ecx, 4
shr eax, 4
mov ecx, dword [esi + ecx*4 + 0x760]
add ecx, dword [esi + eax*4 + 0x760]
or eax, 0xffffffff
add ecx, ebp
cmp ecx, edx
jae 0x100c3fca
xor eax, eax
mov dword [esi + 0xbcd8], ecx
mov dword [esi + 0xbce4], 0
mov word [esi + 0xbcde], ax
cmp ebx, 2
jae 0x100c3fe5
pop edi
pop ebp
mov dword [esi + 0x90], eax
mov eax, 1
pop esi
pop ebx
add esp, 0x94
ret
mov eax, dword [esp + 0x70]
xor ebp, ebp
mov ecx, dword [esp + 0x54]
mov ebx, dword [esp + 0x30]
mov dword [esi + 0xbce0], 1
mov dword [esi + 0xbcc8], ecx
mov dword [esi + 0xbccc], eax
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x74]
mov dword [esi + 0xbcd0], eax
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x78]
mov dword [esi + 0xbcd4], eax
nop word [eax + eax]
mov edx, dword [esp + ebp*4 + 0x94]
cmp edx, 2
jb 0x100c4128
mov eax, dword [esi + 0x2c]
movzx ecx, word [esi + eax*2 + 0x1e68]
test ebp, ebp
jne 0x100c4077
shl eax, 4
add eax, ebx
shr ecx, 4
movzx eax, word [esi + eax*2 + 0x2030]
xor eax, 0x7f0
shr eax, 4
mov eax, dword [esi + eax*4 + 0x760]
add eax, dword [esi + ecx*4 + 0x760]
jmp 0x100c40df
movzx edi, word [esi + eax*2 + 0x1e80]
xor ecx, 0x7f0
shr ecx, 4
mov ecx, dword [esi + ecx*4 + 0x760]
mov dword [esp + 0x14], ecx
cmp ebp, 1
jne 0x100c40a6
shr edi, 4
mov eax, ecx
add eax, dword [esi + edi*4 + 0x760]
jmp 0x100c40df
movzx ecx, word [esi + eax*2 + 0x1e98]
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 + 0x760]
add eax, dword [esi + edi*4 + 0x760]
add dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x34]
mov dword [esp + 0x3c], eax
imul eax, ebx, 0x110
add eax, 0x1e2c
add eax, edx
lea edi, [esi + eax*4]
mov eax, edx
shl eax, 5
add eax, 0xbcc4
add eax, esi
mov ecx, dword [edi]
add ecx, dword [esp + 0x3c]
cmp ecx, dword [eax - 0xc]
jae 0x100c411c
mov dword [eax - 0xc], ecx
xor ecx, ecx
mov dword [eax - 4], edx
mov dword [eax], ebp
mov word [eax - 6], cx
dec edx
sub edi, 4
sub eax, 0x20
cmp edx, 2
jae 0x100c4103
inc ebp
cmp ebp, 4
jb 0x100c4030
mov edi, dword [esp + 0x94]
mov ebx, dword [esp + 0x20]
inc edi
cmp edi, dword [esp + 0x44]
ja 0x100c42ba
mov eax, dword [esi + 0x2c]
xor ecx, ecx
mov dword [esp + 0x14], ecx
movzx eax, word [esi + eax*2 + 0x1e50]
shr eax, 4
mov eax, dword [esi + eax*4 + 0x760]
add eax, dword [esp + 0x38]
mov dword [esp + 0x3c], eax
cmp edi, 2
jae 0x100c4175
lea edi, [ecx + 2]
jmp 0x100c4190
cmp edi, dword [esi + 0x960]
jbe 0x100c4190
nop dword [eax]
add ecx, 2
cmp edi, dword [esi + ecx*4 + 0x960]
ja 0x100c4180
mov dword [esp + 0x14], ecx
mov eax, edi
lea ebp, [esi + 0xbcc4]
shl eax, 7
add eax, 0x48c
mov dword [esp + 0x34], eax
imul eax, dword [esp + 0x30], 0x110
mov ebx, dword [esp + 0x34]
add eax, 0xd2b
add eax, edi
lea eax, [esi + eax*4]
mov dword [esp + 0x28], eax
mov eax, edi
shl eax, 5
add ebp, eax
mov eax, 0xffff4542
sub eax, esi
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x28]
nop dword [eax]
nop dword [eax + eax]
mov eax, dword [eax]
add eax, dword [esp + 0x3c]
mov edx, dword [esi + ecx*4 + 0x964]
mov dword [esp + 0x48], edx
mov dword [esp + 0x34], eax
cmp edi, 5
jae 0x100c420a
mov eax, dword [esp + 0x40]
add eax, ebp
mov dword [esp + 0x38], ebx
mov dword [esp + 0x30], eax
jmp 0x100c421a
mov dword [esp + 0x38], 0x70c
mov dword [esp + 0x30], 0x2a6
cmp edx, 0x80
jae 0x100c4230
mov eax, edx
and eax, 0x7f
add eax, dword [esp + 0x38]
mov eax, dword [esi + eax*4]
jmp 0x100c426a
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 + 0x2cb0]
mov eax, dword [esp + 0x30]
add eax, edx
mov edx, dword [esp + 0x48]
lea eax, [ecx + eax*2]
mov ecx, edx
mov eax, dword [esi + eax*4]
and ecx, 0xf
add eax, dword [esi + ecx*4 + 0x11f0]
add eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x14]
cmp eax, dword [ebp - 0xc]
jae 0x100c4289
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 + 0x960]
jne 0x100c429f
add ecx, 2
mov dword [esp + 0x14], ecx
cmp ecx, dword [esp + 0x1c]
je 0x100c42b6
mov eax, dword [esp + 0x28]
inc edi
add eax, 4
sub ebx, 0xffffff80
mov dword [esp + 0x28], eax
add ebp, 0x20
jmp 0x100c41e0
mov ebx, dword [esp + 0x20]
mov ebp, 1
mov dword [esp + 0x24], ebp
cmp ebx, ebp
je 0x100c4fc9
mov dword [esp + 0x20], ebx
nop
cmp ebp, 0x7c0
jae 0x100c4f70
lea edx, [esp + 0x38]
mov ecx, esi
call fcn.100c7500
mov ecx, eax
mov dword [esp + 0x68], ecx
cmp ecx, dword [esi + 0x30]
jae 0x100c4f64
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 + 0xbcc0]
sub edx, eax
cmp eax, 1
jne 0x100c434c
cmp dword [edi + 0xbcc4], 0
mov eax, 0x100f7690
mov ebp, dword [esp + 0x54]
mov ecx, 0x100f766c
cmove ecx, eax
shl edx, 5
movzx eax, word [edx + esi + 0xbcbc]
mov edx, dword [esp + 0x5c]
movzx ecx, byte [ecx + eax]
mov eax, dword [esp + 0x78]
mov dword [esp + 0x2c], ecx
jmp 0x100c4424
movzx ebp, word [edi + 0xbcbe]
mov ecx, dword [edi + 0xbcc4]
test bp, bp
je 0x100c4379
sub edx, ebp
mov dword [esp + 0x2c], 8
cmp ebp, 1
jne 0x100c439f
cmp ecx, 4
sbb eax, eax
neg eax
add eax, 7
jmp 0x100c439b
mov eax, edx
shl eax, 5
movzx eax, word [eax + esi + 0xbcbc]
cmp ecx, 4
jae 0x100c4394
movzx eax, byte [eax + 0x100f7684]
jmp 0x100c439b
movzx eax, byte [eax + str._a_a_a_a_a_a_a_n_n_n_n_n_b_b_b_b_b_b_b_v_v_v_v_v_t_t_t_t_t_t_t_v_v_v_v_v]
mov dword [esp + 0x2c], eax
shl edx, 5
lea eax, [edx + 0xbcb8]
mov edx, dword [eax + esi + 0x14]
add eax, esi
mov dword [esp + 0x5c], edx
mov ebp, dword [eax + 0x10]
mov dword [esp + 0x60], ebp
cmp ecx, 4
jae 0x100c43fe
test ecx, ecx
jne 0x100c43d0
mov ecx, edx
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x5c], edx
jmp 0x100c4408
mov dword [esp + 0x70], ebp
mov ebp, edx
mov dword [esp + 0x54], ebp
cmp ecx, 1
jne 0x100c43eb
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x5c], edx
jmp 0x100c4414
mov edx, ebp
mov ebp, dword [eax + ecx*4 + 0x10]
xor ecx, 1
mov dword [esp + 0x5c], edx
mov eax, dword [eax + ecx*4 + 0x10]
jmp 0x100c4410
mov eax, dword [eax + 0x18]
lea ebp, [ecx - 3]
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x54], ebp
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x78], eax
mov dword [esp + 0x74], edx
mov dword [esp + 0x6c], ebp
mov word [edi + 0xbcbc], cx
mov ecx, dword [esp + 0x60]
mov dword [edi + 0xbcc8], ebp
mov dword [edi + 0xbccc], ecx
mov dword [edi + 0xbcd0], edx
mov dword [edi + 0xbcd4], eax
mov ecx, dword [esi]
mov eax, dword [esi + 0xc]
call eax
mov ecx, dword [esi + 0x4c]
and ecx, dword [esp + 0x4c]
mov edx, dword [edi + 0xbcb8]
lea ebp, [eax - 1]
mov dword [esp + 0x34], ecx
mov al, byte [ebp]
mov byte [esp + 0x12], al
mov eax, ebp
sub eax, dword [esp + 0x54]
mov dword [esp + 0x28], eax
mov dword [esp + 0x18], ebp
mov al, byte [eax]
mov byte [esp + 0x13], al
mov eax, dword [esp + 0x2c]
shl eax, 4
add eax, ecx
mov dword [esp + 0x64], eax
movzx ecx, word [esi + eax*2 + 0x1eb0]
mov eax, ecx
shr ecx, 4
xor eax, 0x7f0
shr eax, 4
mov eax, dword [esi + eax*4 + 0x760]
add eax, edx
mov dword [esp + 0x3c], eax
mov eax, dword [esi + ecx*4 + 0x760]
add eax, edx
xor edx, edx
mov dword [esp + 0x1c], edx
mov edx, dword [edi + 0xbcd8]
mov dword [esp + 0x14], eax
mov dword [esp + 0x30], edx
cmp edx, 0x40000000
jae 0x100c44db
mov cl, byte [esp + 0x12]
cmp byte [esp + 0x13], cl
je 0x100c44df
cmp eax, edx
jbe 0x100c44ea
xor ebp, ebp
mov dword [esp + 0x14], ebp
jmp 0x100c45a7
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 + 0x2c], 7
lea ecx, [edx + edx*2]
movzx edx, byte [esp + 0x12]
lea ecx, [eax + ecx*2]
mov dword [esp + 0x40], ecx
jb 0x100c4531
lea eax, [esi + 0x760]
push eax
movzx eax, byte [esp + 0x17]
push eax
call fcn.100c5880
mov ebp, eax
jmp 0x100c4568
mov edi, dword [esp + 0x40]
xor ebp, ebp
or edx, 0x100
nop dword [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 + 0x760]
cmp edx, 2
jae 0x100c4540
mov edi, dword [esp + 0x50]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x30]
add ecx, ebp
mov dword [esp + 0x14], ecx
cmp ecx, edx
jae 0x100c45a7
xor eax, eax
mov dword [edi + 0xbcd8], ecx
mov dword [edi + 0xbce0], 1
mov edx, ecx
mov dword [edi + 0xbce4], 0xffffffff
mov word [edi + 0xbcde], ax
mov dword [esp + 0x1c], 1
mov ecx, dword [esp + 0x2c]
mov ebp, 0x7ff
sub ebp, dword [esp + 0x24]
lea eax, [ecx + 0xf28]
lea eax, [esi + eax*2]
mov dword [esp + 0x88], eax
movzx eax, word [eax]
xor eax, 0x7f0
shr eax, 4
mov eax, dword [esi + eax*4 + 0x760]
add eax, dword [esp + 0x3c]
mov dword [esp + 0x58], eax
mov eax, dword [esi + 0x28]
cmp eax, ebp
cmovbe ebp, eax
mov al, byte [esp + 0x13]
mov ah, byte [esp + 0x12]
mov dword [esp + 0x44], ebp
mov ebp, dword [esp + 0x14]
cmp ecx, 7
jae 0x100c468a
cmp al, ah
jne 0x100c468a
cmp dword [esp + 0x58], edx
jae 0x100c468a
cmp dword [edi + 0xbce0], 2
jb 0x100c461f
cmp dword [edi + 0xbce4], 0
je 0x100c468a
mov eax, dword [esp + 0x64]
movzx ecx, word [esi + eax*2 + 0x2030]
mov eax, dword [esp + 0x2c]
shr ecx, 4
movzx eax, word [esi + eax*2 + 0x1e68]
mov ecx, dword [esi + ecx*4 + 0x760]
shr eax, 4
add ecx, dword [esi + eax*4 + 0x760]
add ecx, dword [esp + 0x58]
cmp ecx, edx
jae 0x100c4682
xor eax, eax
mov dword [edi + 0xbcd8], ecx
mov word [edi + 0xbcde], ax
xor edx, edx
mov al, byte [esp + 0x13]
mov ah, byte [esp + 0x12]
mov dword [edi + 0xbce0], 1
mov dword [edi + 0xbce4], 0
jmp 0x100c468e
mov al, byte [esp + 0x13]
mov ah, byte [esp + 0x12]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x44]
cmp edi, 2
jb 0x100c4f51
mov ecx, dword [esi + 0x30]
cmp edi, ecx
cmova edi, ecx
test edx, edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x48], edi
jne 0x100c47fc
test ebp, ebp
je 0x100c47fc
cmp al, ah
je 0x100c47fc
cmp dword [esp + 0x44], 2
jbe 0x100c47fc
mov ebp, dword [esp + 0x28]
mov al, byte [edx + 1]
cmp al, byte [ebp + 1]
jne 0x100c47fc
mov al, byte [edx + 2]
cmp al, byte [ebp + 2]
jne 0x100c47fc
mov edi, dword [esp + 0x44]
lea eax, [ecx + 1]
cmp eax, edi
mov edx, 3
cmovbe edi, eax
cmp edi, edx
jbe 0x100c4715
mov ebx, dword [esp + 0x18]
lea ecx, [ebp + 3]
sub ebx, ebp
mov al, byte [ebx + ecx]
cmp al, byte [ecx]
jne 0x100c4715
inc edx
inc ecx
cmp edx, edi
jb 0x100c4708
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x24]
inc ebx
and ebx, dword [esi + 0x4c]
add ebp, edx
movzx edi, byte [eax + 0x100f766c]
mov eax, ebp
cmp dword [esp + 0x20], ebp
cmovae eax, dword [esp + 0x20]
dec edx
movzx ecx, word [esi + edi*2 + 0x1e50]
mov dword [esp + 0x50], edx
xor ecx, 0x7f0
mov dword [esp + 0x20], eax
mov edx, edi
shl edx, 4
add edx, ebx
shr ecx, 4
shl ebp, 5
movzx eax, word [esi + edx*2 + 0x2030]
mov ecx, dword [esi + ecx*4 + 0x760]
xor eax, 0x7f0
shr eax, 4
add ecx, dword [esi + eax*4 + 0x760]
movzx eax, word [esi + edx*2 + 0x1eb0]
mov edx, ecx
xor eax, 0x7f0
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x50]
shr eax, 4
add edx, dword [esi + eax*4 + 0x760]
movzx eax, word [esi + edi*2 + 0x1e68]
shr eax, 4
add edx, dword [esi + eax*4 + 0x760]
imul eax, ebx, 0x110
mov ebx, dword [esp + 0x20]
add eax, ecx
add edx, dword [esi + eax*4 + 0x78b0]
add edx, dword [esp + 0x14]
cmp edx, dword [esi + ebp + 0xbcb8]
jae 0x100c47f8
mov eax, 1
mov dword [esi + ebp + 0xbcb8], edx
mov dword [esi + ebp + 0xbcc0], ecx
mov dword [esi + ebp + 0xbcc4], 0
mov word [esi + ebp + 0xbcbe], ax
mov dword [esp + 0x20], ebx
mov edx, dword [esp + 0x18]
xor ecx, ecx
mov dword [esp + 0x30], 2
mov dword [esp + 0x1c], ecx
nop word [eax + eax]
mov edi, dword [esp + ecx*4 + 0x6c]
mov ebp, edx
mov al, byte [edx]
sub ebp, edi
mov dword [esp + 0x84], edi
mov dword [esp + 0x50], ebp
cmp al, byte [ebp]
jne 0x100c4b71
mov al, byte [edx + 1]
cmp al, byte [ebp + 1]
jne 0x100c4b71
mov edx, 2
mov dword [esp + 0x28], edx
cmp dword [esp + 0x48], edx
jbe 0x100c4868
mov esi, dword [esp + 0x48]
lea ecx, [ebp + 2]
mov al, byte [ecx + edi]
cmp al, byte [ecx]
jne 0x100c485d
inc edx
inc ecx
cmp edx, esi
jb 0x100c4850
mov esi, dword [esp + 0x8c]
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 + 0x2c]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x40], ecx
movzx ecx, word [esi + eax*2 + 0x1e68]
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x100c48c0
mov eax, dword [esp + 0x64]
shr ecx, 4
movzx eax, word [esi + eax*2 + 0x2030]
xor eax, 0x7f0
shr eax, 4
mov ebp, dword [esi + eax*4 + 0x760]
add ebp, dword [esi + ecx*4 + 0x760]
jmp 0x100c4922
xor ecx, 0x7f0
shr ecx, 4
mov ebp, dword [esi + ecx*4 + 0x760]
mov ecx, dword [esp + 0x2c]
movzx ebx, word [esi + ecx*2 + 0x1e80]
cmp eax, 1
jne 0x100c48ed
shr ebx, 4
add ebp, dword [esi + ebx*4 + 0x760]
jmp 0x100c4922
movzx ecx, word [esi + ecx*2 + 0x1e98]
mov eax, 2
sub eax, dword [esp + 0x1c]
xor ebx, 0x7f0
shr eax, 4
and eax, 0x7f
shr ecx, 4
xor ecx, eax
shr ebx, 4
mov eax, dword [esi + ecx*4 + 0x760]
add eax, dword [esi + ebx*4 + 0x760]
add ebp, eax
imul eax, dword [esp + 0x34], 0x110
add ebp, dword [esp + 0x58]
mov dword [esp + 0x14], ebp
mov dword [esp + 0x80], eax
add eax, 0x1e2c
add eax, edx
mov edx, dword [esp + 0x1c]
lea ebx, [esi + eax*4]
mov eax, dword [esp + 0x7c]
shl eax, 5
add eax, 0xbcc4
add eax, esi
mov ecx, dword [ebx]
add ecx, ebp
cmp ecx, dword [eax - 0xc]
jae 0x100c496c
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 0x100c4955
cmp dword [esp + 0x1c], 0
mov edx, dword [esp + 0x28]
lea ebp, [edx + 1]
jne 0x100c498a
mov dword [esp + 0x30], ebp
mov eax, dword [esi + 0x30]
mov ecx, dword [esp + 0x44]
add eax, ebp
cmp eax, ecx
cmovbe ecx, eax
add ebp, 2
mov dword [esp + 0x7c], ecx
cmp ebp, ecx
ja 0x100c4b65
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x18]
add ecx, ebp
mov edi, dword [esp + 0x40]
mov ebx, edi
mov dword [esp + 0x90], ecx
mov dword [esp + 0x20], ebx
mov al, byte [eax + ebp - 2]
cmp al, byte [ecx - 2]
jne 0x100c4b69
mov eax, dword [esp + 0x18]
mov dword [esp + 0x20], ebx
mov al, byte [eax + ebp - 1]
cmp al, byte [ecx - 1]
jne 0x100c4b69
mov ecx, dword [esp + 0x4c]
lea eax, [esi + 0x760]
mov ebx, dword [esp + 0x18]
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 + 0x20]
movzx edx, byte [edx + eax]
mov eax, dword [esp + 0x30]
movzx eax, byte [ebx + eax - 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.100c5880
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
movzx ecx, byte [ecx + 0x100f7684]
shl ecx, 4
add ecx, edi
movzx ecx, word [esi + ecx*2 + 0x1eb0]
shr ecx, 4
add eax, dword [esi + ecx*4 + 0x760]
mov ecx, dword [esp + 0x80]
add ecx, edx
add eax, dword [esi + ecx*4 + 0x78b0]
add dword [esp + 0x14], eax
lea eax, [edi + 1]
and eax, dword [esi + 0x4c]
mov dword [esp + 0x80], eax
mov edi, dword [esp + 0x7c]
movzx ecx, word [esi + eax*2 + 0x20d0]
movzx eax, word [esi + eax*2 + 0x1f50]
xor ecx, 0x7f0
xor eax, 0x7f0
shr ecx, 4
shr eax, 4
mov ecx, dword [esi + ecx*4 + 0x760]
add ecx, dword [esi + eax*4 + 0x760]
movzx eax, word [esi + 0x1e5a]
xor eax, 0x7f0
shr eax, 4
add ecx, dword [esi + eax*4 + 0x760]
movzx eax, word [esi + 0x1e72]
shr eax, 4
add ecx, dword [esi + eax*4 + 0x760]
add dword [esp + 0x14], ecx
cmp ebp, edi
jae 0x100c4afd
mov ecx, dword [esp + 0x90]
mov ebx, dword [esp + 0x84]
nop dword [eax]
mov al, byte [ebx + ecx]
cmp al, byte [ecx]
jne 0x100c4afd
inc ebp
inc ecx
cmp ebp, edi
jb 0x100c4af0
mov ebx, dword [esp + 0x24]
add ebx, ebp
mov ecx, ebx
cmp dword [esp + 0x40], ecx
cmovae ebx, dword [esp + 0x40]
or eax, 0xffffffff
sub eax, edx
shl ecx, 5
add ebp, eax
mov dword [esp + 0x20], ebx
imul eax, dword [esp + 0x80], 0x110
lea edi, [ecx + esi]
mov ecx, dword [esp + 0x1c]
add eax, ebp
mov eax, dword [esi + eax*4 + 0x78b0]
add eax, dword [esp + 0x14]
cmp eax, dword [edi + 0xbcb8]
jae 0x100c4b6d
mov dword [edi + 0xbcb8], eax
lea eax, [edx + 1]
mov dword [edi + 0xbcc0], ebp
mov word [edi + 0xbcbe], ax
mov dword [edi + 0xbcc4], ecx
mov dword [esp + 0x20], ebx
jmp 0x100c4b6d
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
inc ecx
mov dword [esp + 0x1c], ecx
cmp ecx, 4
jb 0x100c4810
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x68]
cmp edx, eax
jbe 0x100c4bbc
mov edx, eax
xor ecx, ecx
xor eax, eax
cmp edx, dword [esi + 0x960]
jbe 0x100c4bae
nop dword [eax]
add eax, 2
mov ecx, eax
cmp edx, dword [esi + eax*4 + 0x960]
ja 0x100c4ba0
mov dword [esi + eax*4 + 0x960], edx
lea eax, [ecx + 2]
mov dword [esp + 0x38], eax
mov ebp, dword [esp + 0x30]
cmp edx, ebp
jb 0x100c4f51
mov eax, dword [esp + 0x88]
movzx eax, word [eax]
shr eax, 4
mov eax, dword [esi + eax*4 + 0x760]
add eax, dword [esp + 0x3c]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x24]
add eax, edx
cmp ebx, eax
cmovae eax, ebx
xor edi, edi
mov ebx, eax
mov dword [esp + 0x48], edi
mov dword [esp + 0x20], ebx
cmp ebp, dword [esi + 0x960]
jbe 0x100c4c20
nop word [eax + eax]
add edi, 2
cmp ebp, dword [esi + edi*4 + 0x960]
ja 0x100c4c10
mov dword [esp + 0x48], edi
lea eax, [edi*4]
mov edi, dword [esp + 0x30]
mov edx, dword [eax + esi + 0x964]
cmp edx, 0x20000
mov dword [esp + 0x3c], 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 + 0x2cb0]
lea eax, [eax + ecx*2]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x4c]
add eax, ebp
add ebp, 3
shl eax, 8
mov dword [esp + 0x58], eax
imul eax, dword [esp + 0x34], 0x110
add eax, 0xd2b
add eax, edi
add edi, dword [esp + 0x24]
shl edi, 5
add edi, 0xbcc4
add edi, esi
lea ecx, [esi + eax*4]
mov eax, dword [esp + 0x18]
add eax, 0xfffffffd
mov dword [esp + 0x84], eax
mov eax, dword [ecx]
add eax, dword [esp + 0x88]
mov dword [esp + 0x30], ecx
mov ecx, 3
mov dword [esp + 0x68], eax
lea eax, [ebp - 5]
cmp eax, ecx
mov dword [esp + 0x14], edi
mov dword [esp + 0x28], ebp
cmovb ecx, eax
mov eax, edx
cmp edx, 0x80
jae 0x100c4cdb
shl ecx, 7
and eax, 0x7f
add ecx, eax
mov ecx, dword [esi + ecx*4 + 0x1630]
jmp 0x100c4cf3
shl ecx, 6
and eax, 0xf
add ecx, dword [esp + 0x64]
mov ecx, dword [esi + ecx*4 + 0x1230]
add ecx, dword [esi + eax*4 + 0x11f0]
mov eax, dword [esp + 0x68]
add eax, ecx
mov dword [esp + 0x68], eax
cmp eax, dword [edi - 0xc]
jae 0x100c4d16
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 + 0x3c]
lea ecx, [ebp - 3]
mov dword [esp + 0x40], ecx
cmp ecx, dword [eax + esi + 0x960]
jne 0x100c4f39
mov eax, dword [esi + 0x30]
mov ecx, dword [esp + 0x18]
add eax, 0xfffffffe
mov edi, dword [esp + 0x44]
sub ecx, edx
add eax, ebp
dec ecx
cmp eax, edi
mov dword [esp + 0x34], ecx
mov edx, ebp
cmovbe edi, eax
mov dword [esp + 0x3c], edx
cmp ebp, edi
ja 0x100c4eed
mov eax, dword [esp + 0x18]
mov al, byte [eax + ebp - 2]
cmp al, byte [ecx + ebp - 2]
jne 0x100c4eed
mov eax, dword [esp + 0x18]
mov al, byte [eax + ebp - 1]
cmp al, byte [ecx + ebp - 1]
jne 0x100c4eed
cmp ebp, edi
jae 0x100c4da5
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x34]
sub ebx, eax
lea ecx, [eax + ebp]
nop dword [eax]
mov al, byte [ecx]
cmp al, byte [ebx + ecx]
jne 0x100c4d9d
inc edx
inc ecx
cmp edx, edi
jb 0x100c4d90
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x3c], edx
mov edi, dword [esp + 0x4c]
lea eax, [esi + 0x760]
push eax
movzx eax, byte [ecx + ebp - 3]
add edi, 0xfffffffd
mov ecx, dword [esi + 0x94]
add edi, ebp
push eax
mov eax, dword [esp + 0x8c]
and edi, dword [esi + 0x4c]
movzx edx, byte [eax + ebp]
mov eax, dword [esp + 0x20]
movzx eax, byte [eax + ebp - 4]
add eax, dword [esp + 0x60]
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.100c5880
mov ebp, eax
mov ebx, dword [esp + 0x3c]
mov eax, dword [esp + 0x2c]
lea edx, [edi + 1]
and edx, dword [esi + 0x4c]
movzx ecx, byte [eax + str._a_a_a_a_a_a_a_n_n_n_n_n_b_b_b_b_b_b_b_v_v_v_v_v_t_t_t_t_t_t_t_v_v_v_v_v]
shl ecx, 4
add ecx, edi
mov edi, dword [esp + 0x24]
add edi, ebx
mov eax, edi
movzx ecx, word [esi + ecx*2 + 0x1eb0]
shr ecx, 4
add ebp, dword [esi + ecx*4 + 0x760]
add ebp, dword [esp + 0x68]
cmp dword [esp + 0x20], edi
movzx ecx, word [esi + edx*2 + 0x20b0]
cmovae eax, dword [esp + 0x20]
xor ecx, 0x7f0
mov dword [esp + 0x20], eax
or eax, 0xffffffff
sub eax, dword [esp + 0x40]
add ebx, eax
shr ecx, 4
movzx eax, word [esi + edx*2 + 0x1f30]
xor eax, 0x7f0
shl edi, 5
shr eax, 4
mov ecx, dword [esi + ecx*4 + 0x760]
add ecx, dword [esi + eax*4 + 0x760]
movzx eax, word [esi + 0x1e58]
xor eax, 0x7f0
shr eax, 4
add ecx, dword [esi + eax*4 + 0x760]
movzx eax, word [esi + 0x1e70]
shr eax, 4
add ecx, dword [esi + eax*4 + 0x760]
imul eax, edx, 0x110
add eax, ebx
add ecx, dword [esi + eax*4 + 0x78b0]
add ecx, ebp
mov ebp, dword [esp + 0x28]
cmp ecx, dword [edi + esi + 0xbcb8]
jae 0x100c4ee9
mov eax, dword [esp + 0x40]
inc eax
mov dword [edi + esi + 0xbcc0], ebx
mov ebx, dword [esp + 0x20]
mov word [edi + esi + 0xbcbe], ax
mov eax, dword [esp + 0x50]
add eax, 4
mov dword [edi + esi + 0xbcb8], ecx
mov dword [edi + esi + 0xbcc4], eax
mov dword [esp + 0x20], ebx
jmp 0x100c4eed
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x48]
add edi, 2
mov dword [esp + 0x48], edi
cmp edi, dword [esp + 0x38]
je 0x100c4f51
lea eax, [edi*4]
mov edi, dword [esp + 0x14]
mov edx, dword [eax + esi + 0x964]
cmp edx, 0x20000
mov dword [esp + 0x3c], 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 + 0x2cb0]
lea eax, [eax + ecx*2]
mov dword [esp + 0x64], eax
mov ecx, dword [esp + 0x30]
add edi, 0x20
add dword [esp + 0x58], 0x100
add ecx, 4
inc ebp
jmp 0x100c4c9a
mov ebp, dword [esp + 0x24]
inc ebp
mov dword [esp + 0x24], ebp
cmp ebp, ebx
jne 0x100c42d0
jmp 0x100c4fc9
mov eax, dword [esp + 0x38]
mov dword [esi + 0x24], eax
mov dword [esi + 0x20], ecx
jmp 0x100c4fc9
mov eax, ebp
shl eax, 5
mov edi, dword [eax + esi + 0xbcb8]
mov eax, dword [esp + 0x24]
lea edx, [eax + 1]
cmp edx, ebx
ja 0x100c4fb5
nop word [eax + eax]
mov eax, edx
shl eax, 5
mov ecx, dword [eax + esi + 0xbcb8]
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 0x100c4f90
mov eax, dword [esp + 0x24]
mov edx, ebp
sub edx, eax
je 0x100c4fc5
mov ecx, dword [esi]
mov eax, dword [esi + 0x14]
add dword [esi + 0x34], edx
call eax
mov dword [esp + 0x24], ebp
mov eax, ebx
shl eax, 5
add eax, 0xbcb8
add eax, esi
nop word [eax + eax]
mov dword [eax], 0x40000000
lea eax, [eax - 0x20]
sub ebx, 1
jne 0x100c4fe0
lea ebx, [ebp + 1]
lea edi, [ebx + 0x5e6]
mov dword [esi + 0x1c], ebx
shl edi, 5
lea edx, [esi + 0xbcc4]
mov eax, ebx
add edi, esi
shl eax, 5
add edx, eax
nop dword [eax]
mov eax, dword [esp + 0x24]
mov ecx, ebp
add eax, 0x5e6
shl ecx, 5
shl eax, 5
mov ebp, dword [ecx + esi + 0xbcc4]
mov eax, dword [eax + esi]
movzx ecx, word [ecx + esi + 0xbcbe]
sub dword [esp + 0x24], eax
test ecx, ecx
je 0x100c5072
sub dword [esp + 0x24], ecx
sub edi, 0x20
dec ebx
sub edx, 0x20
mov dword [edi], eax
mov eax, ecx
cmp ecx, 1
jne 0x100c5056
mov dword [edx], ebp
or ebp, 0xffffffff
jmp 0x100c5072
mov dword [edx], 0
lea eax, [ecx - 1]
sub edx, 0x20
dec ebx
sub edi, 0x20
mov dword [edx], 0xffffffff
mov dword [edi], 1
cmp dword [esp + 0x24], 0
je 0x100c508a
sub edx, 0x20
dec ebx
sub edi, 0x20
mov dword [edx], ebp
mov dword [edi], eax
mov ebp, dword [esp + 0x24]
jmp 0x100c5010
pop edi
mov dword [esi + 0x90], ebp
pop ebp
mov dword [esi + 0x18], ebx
pop esi
pop ebx
add esp, 0x94
ret