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

Disassembly:
sub esp, 0x88
push ebx
push ebp
push esi
mov esi, ecx
mov dword [esp + 0x3c], edx
push edi
mov dword [esp + 0x4c], esi
cmp dword [esi + 0x34], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x18], 0
jne 0x100ec07b
lea edx, [esp + 0x34]
call fcn.100ebfa0
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x34]
jmp 0x100ec085
mov eax, dword [esi + 0x20]
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0x24]
mov ebx, dword [esi + 0x28]
mov dword [esp + 0x14], eax
cmp ebx, 2
jb 0x100ed31c
push dword [esi]
mov eax, 0x111
cmp ebx, eax
cmova ebx, eax
mov eax, dword [esi + 0xc]
call eax
mov dword [esp + 0x48], eax
lea edi, [esi + 0x38]
xor ecx, ecx
mov dword [esp + 0x38], edi
add esp, 4
mov dword [esp + 0x3c], ecx
lea edx, [eax - 1]
mov dword [esp + 0x24], ecx
mov al, byte [edx]
xor esi, esi
mov byte [esp + 0x13], al
mov eax, dword [esp + 0x44]
mov dword [esp + 0x48], edx
mov edi, dword [edi + ecx*4]
lea ebp, [ecx*4]
mov cl, byte [esp + 0x13]
mov dword [esp + ebp + 0x60], edi
neg edi
cmp cl, byte [edi + edx]
mov ecx, dword [esp + 0x24]
jne 0x100ec139
mov al, byte [eax]
cmp al, byte [edi + edx + 1]
jne 0x100ec139
mov edx, 2
cmp ebx, edx
jbe 0x100ec115
mov ecx, dword [esp + 0x44]
inc ecx
mov al, byte [ecx]
cmp al, byte [ecx + edi]
jne 0x100ec111
inc edx
inc ecx
cmp edx, ebx
jb 0x100ec104
mov ecx, dword [esp + 0x24]
mov dword [esp + ebp + 0x88], edx
cmp edx, dword [esp + esi + 0x88]
jbe 0x100ec12b
mov dword [esp + 0x3c], ecx
mov esi, ebp
cmp edx, 0x111
je 0x100ec15a
mov edx, dword [esp + 0x48]
jmp 0x100ec144
mov dword [esp + ebp + 0x88], 0
mov eax, dword [esp + 0x44]
inc ecx
mov edi, dword [esp + 0x34]
mov dword [esp + 0x24], ecx
cmp ecx, 4
jb 0x100ec0d1
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x4c]
mov ebx, dword [esp + ecx*4 + 0x88]
mov eax, dword [esi + 0x30]
cmp ebx, eax
jb 0x100ec197
mov dword [esi + 0x90], ecx
lea ecx, [ebx - 1]
add dword [esi + 0x34], ecx
lea ecx, [ebx - 1]
push ecx
push dword [esi]
mov ecx, dword [esi + 0x14]
call ecx
add esp, 8
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x88
ret
mov ebp, dword [esp + 0x30]
cmp ebp, eax
jb 0x100ec1d4
mov eax, dword [esp + 0x14]
mov eax, dword [esi + eax*4 + 0x95c]
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, 0x88
ret
mov ecx, dword [esp + 0x48]
mov eax, ecx
mov edi, dword [esp + 0x60]
sub eax, edi
cmp ebx, ebp
mov dword [esp + 0x54], edi
mov dl, byte [ecx]
cmovbe ebx, ebp
mov al, byte [eax]
mov byte [esp + 0x1b], dl
mov byte [esp + 0x13], al
mov dword [esp + 0x28], ebx
cmp ebx, 2
jae 0x100ec206
cmp dl, al
jne 0x100ed31c
mov ax, word [esi + 0x2c]
mov word [esi + 0xbcbc], ax
mov ebp, dword [esi + 0x4c]
mov eax, dword [esp + 0x40]
and ebp, eax
movzx edx, byte [ecx - 1]
mov ecx, dword [esi + 0x94]
shl eax, 8
add edx, eax
mov dword [esp + 0x24], ebp
and edx, dword [esi + 0x48]
mov eax, dword [esi + 0x50]
shl edx, cl
cmp dword [esi + 0x2c], 7
lea ecx, [edx + edx*2]
movzx edx, byte [esp + 0x1b]
lea ebx, [eax + ecx*2]
jb 0x100ec261
lea eax, [esi + 0x760]
mov ecx, ebx
push eax
movzx eax, byte [esp + 0x17]
push eax
call fcn.100ebac0
add esp, 8
mov edi, eax
jmp 0x100ec294
xor edi, edi
or edx, 0x100
nop dword [eax]
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 + 0x760]
cmp edx, 2
jae 0x100ec270
mov ecx, dword [esi + 0x2c]
mov ebx, ecx
shl ebx, 4
add ebx, ebp
movzx eax, word [esi + ebx*2 + 0x1eb0]
shr eax, 4
mov edx, dword [esi + eax*4 + 0x760]
xor eax, eax
mov word [esi + 0xbcde], ax
add edx, edi
mov dword [esi + 0xbcd8], edx
mov dword [esi + 0xbce4], 0xffffffff
movzx eax, word [esi + ebx*2 + 0x1eb0]
xor eax, 0x7f0
shr eax, 4
mov edi, dword [esi + eax*4 + 0x760]
movzx eax, word [esi + ecx*2 + 0x1e50]
xor eax, 0x7f0
mov dword [esp + 0x34], edi
shr eax, 4
mov eax, dword [esi + eax*4 + 0x760]
add eax, edi
mov dword [esp + 0x3c], eax
mov al, byte [esp + 0x1b]
cmp byte [esp + 0x13], al
jne 0x100ec375
cmp dword [esp + 0x88], 0
jne 0x100ec375
movzx ecx, word [esi + ecx*2 + 0x1e68]
movzx eax, word [esi + ebx*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, dword [esp + 0x3c]
cmp ecx, edx
jae 0x100ec358
mov dword [esi + 0xbcd8], ecx
xor eax, eax
mov dword [esi + 0xbce4], 0
cmp dword [esp + 0x28], 2
jae 0x100ec375
pop edi
mov dword [esi + 0x90], eax
mov eax, 1
pop esi
pop ebp
pop ebx
add esp, 0x88
ret
mov eax, dword [esp + 0x54]
mov ebx, dword [esp + 0x68]
mov dword [esi + 0xbce0], 1
mov dword [esi + 0xbcc8], eax
mov eax, dword [esp + 0x64]
mov dword [esi + 0xbccc], eax
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x6c]
mov dword [esi + 0xbcd0], ebx
xor ebx, ebx
mov dword [esi + 0xbcd4], eax
nop dword [eax]
mov edx, dword [esp + ebx*4 + 0x88]
cmp edx, 2
jb 0x100ec49e
mov eax, dword [esi + 0x2c]
movzx ecx, word [esi + eax*2 + 0x1e68]
test ebx, ebx
jne 0x100ec3f7
shl eax, 4
add eax, ebp
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 0x100ec453
movzx edi, word [esi + eax*2 + 0x1e80]
xor ecx, 0x7f0
shr ecx, 4
mov ebp, dword [esi + ecx*4 + 0x760]
cmp ebx, 1
jne 0x100ec420
shr edi, 4
add ebp, dword [esi + edi*4 + 0x760]
jmp 0x100ec453
movzx ecx, word [esi + eax*2 + 0x1e98]
xor edi, 0x7f0
mov eax, 2
shr ecx, 4
sub eax, ebx
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 ebp, eax
imul edi, dword [esp + 0x24], 0x110
mov ecx, edx
add ebp, dword [esp + 0x3c]
shl ecx, 5
add ecx, 0xbcc4
add ecx, esi
add edi, 0x1e2c
add edi, edx
lea edi, [esi + edi*4]
mov eax, dword [edi]
add eax, ebp
cmp eax, dword [ecx - 0xc]
jae 0x100ec48e
mov dword [ecx - 0xc], eax
xor eax, eax
mov dword [ecx - 4], edx
mov dword [ecx], ebx
mov word [ecx - 6], ax
dec edx
sub edi, 4
sub ecx, 0x20
cmp edx, 2
jae 0x100ec477
mov ebp, dword [esp + 0x24]
inc ebx
cmp ebx, 4
jb 0x100ec3b0
mov edi, dword [esp + 0x88]
inc edi
cmp edi, dword [esp + 0x30]
ja 0x100ec5d2
mov eax, dword [esi + 0x2c]
xor ebp, ebp
movzx eax, word [esi + eax*2 + 0x1e50]
shr eax, 4
mov eax, dword [esi + eax*4 + 0x760]
add dword [esp + 0x34], eax
cmp edi, 2
jae 0x100ec4df
lea edi, [ebp + 2]
jmp 0x100ec4fc
cmp edi, dword [esi + 0x960]
jbe 0x100ec4fc
nop word [eax + eax]
add ebp, 2
cmp edi, dword [esi + ebp*4 + 0x960]
ja 0x100ec4f0
imul edx, dword [esp + 0x24], 0x110
mov ecx, edi
shl ecx, 5
add ecx, 0xbcc4
add ecx, esi
add edx, 0xd2b
add edx, edi
lea edx, [esi + edx*4]
mov ebx, dword [edx]
add ebx, dword [esp + 0x34]
mov eax, dword [esi + ebp*4 + 0x964]
mov dword [esp + 0x48], edx
lea edx, [edi - 2]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x3c], eax
cmp edi, 5
jb 0x100ec542
mov edx, 3
cmp eax, 0x80
jae 0x100ec55e
shl edx, 7
and eax, 0x7f
add edx, eax
add ebx, dword [esi + edx*4 + 0x1630]
mov edx, dword [esp + 0x3c]
jmp 0x100ec59a
cmp eax, 0x20000
sbb ecx, ecx
shl edx, 5
and ecx, 0xfffffff6
add ecx, 0x10
shr eax, cl
add edx, ecx
movzx eax, byte [eax + esi + 0x2cb0]
lea eax, [eax + edx*2]
mov edx, dword [esp + 0x3c]
mov eax, dword [esi + eax*4 + 0x1230]
mov ecx, edx
and ecx, 0xf
add eax, dword [esi + ecx*4 + 0x11f0]
mov ecx, dword [esp + 0x2c]
add ebx, eax
cmp ebx, dword [ecx - 0xc]
jae 0x100ec5b0
lea eax, [edx + 4]
mov dword [ecx - 0xc], ebx
mov dword [ecx], eax
xor eax, eax
mov dword [ecx - 4], edi
mov word [ecx - 6], ax
cmp edi, dword [esi + ebp*4 + 0x960]
jne 0x100ec5c2
add ebp, 2
cmp ebp, dword [esp + 0x14]
je 0x100ec5d2
mov edx, dword [esp + 0x48]
inc edi
add edx, 4
add ecx, 0x20
jmp 0x100ec51c
mov ebp, dword [esp + 0x28]
mov ebx, 1
mov dword [esp + 0x20], ebx
cmp ebp, ebx
je 0x100ed24d
nop word [eax + eax]
cmp ebx, 0x7c0
jae 0x100ed1f5
lea edx, [esp + 0x3c]
mov ecx, esi
call fcn.100ebfa0
mov ecx, eax
mov dword [esp + 0x80], ecx
cmp ecx, dword [esi + 0x30]
jae 0x100ed1e9
inc dword [esp + 0x40]
mov edi, ebx
shl edi, 5
mov edx, ebx
add edi, 0xbcb8
add edi, esi
sub edx, dword [edi + 8]
cmp dword [edi + 8], 1
jne 0x100ec66b
mov ebx, dword [esp + 0x54]
mov eax, 0x101a2a64
shl edx, 5
cmp dword [edi + 0xc], 0
movzx ecx, word [edx + esi + 0xbcbc]
mov edx, str._t_t_t_t_t_t_t_v_v_v_v_v_b_b_b_b_b_b_b_v_v_v_v_v_a_a_a_a_a_a_a_n_n_n_n_n
cmove eax, edx
mov edx, dword [esp + 0x50]
movzx ebp, byte [eax + ecx]
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x38], ebp
jmp 0x100ec6db
movzx ebx, word [edi + 6]
mov ecx, dword [edi + 0xc]
test bx, bx
je 0x100ec786
sub edx, ebx
mov ebp, 8
mov dword [esp + 0x38], ebp
cmp ebx, 1
jne 0x100ec699
cmp ecx, 4
sbb ebp, ebp
neg ebp
add ebp, 7
mov dword [esp + 0x38], ebp
shl edx, 5
lea eax, [esi + 0xbcb8]
add eax, edx
mov dword [esp + 0x70], ebp
mov ebx, dword [eax + 0x10]
mov dword [esp + 0x50], ebx
cmp ecx, 4
jb 0x100ec7b5
mov edx, ebx
lea ebx, [ecx - 3]
mov ecx, dword [eax + 0x14]
mov eax, dword [eax + 0x18]
mov dword [esp + 0x64], edx
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x60], ebx
mov word [edi + 4], bp
mov dword [edi + 0x10], ebx
mov dword [edi + 0x14], edx
mov dword [edi + 0x18], ecx
mov dword [edi + 0x1c], eax
push dword [esi]
mov eax, dword [esi + 0xc]
call eax
mov bh, byte [eax - 1]
add esp, 4
mov ecx, dword [esi + 0x4c]
and ecx, dword [esp + 0x40]
mov dword [esp + 0x58], eax
dec eax
mov dword [esp + 0x1c], eax
sub eax, dword [esp + 0x54]
mov dword [esp + 0x44], ecx
mov byte [esp + 0x1b], bh
mov bl, byte [eax]
mov eax, ebp
shl eax, 4
add eax, ecx
mov byte [esp + 0x13], bl
movzx ecx, word [esi + eax*2 + 0x1eb0]
mov eax, ecx
shr ecx, 4
xor eax, 0x7f0
shr eax, 4
mov ebp, dword [esi + ecx*4 + 0x760]
add ebp, dword [edi]
mov eax, dword [esi + eax*4 + 0x760]
add eax, dword [edi]
mov edi, dword [esp + 0x20]
shl edi, 5
add edi, 0xbcd8
mov dword [esp + 0x34], eax
add edi, esi
xor eax, eax
mov dword [esp + 0x2c], edi
mov dword [esp + 0x14], eax
mov edx, dword [edi]
cmp edx, 0x40000000
jae 0x100ec773
cmp bl, bh
je 0x100ec77b
cmp ebp, edx
jbe 0x100ec81c
xor ebp, ebp
mov dword [esp + 0x24], ebp
jmp 0x100ec8ce
mov eax, edx
shl edx, 5
shl eax, 5
movzx eax, word [eax + esi + 0xbcbc]
cmp ecx, 4
jae 0x100ec801
movzx ebp, byte [eax + 0x101a2a4c]
lea eax, [esi + 0xbcb8]
add eax, edx
mov dword [esp + 0x38], ebp
mov ebx, dword [eax + 0x10]
mov dword [esp + 0x50], ebx
mov edx, dword [eax + 0x14]
test ecx, ecx
jne 0x100ec7c7
mov ecx, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
jmp 0x100ec6c3
mov dword [esp + 0x64], ebx
mov ebx, edx
mov edx, dword [esp + 0x50]
mov dword [esp + 0x54], ebx
cmp ecx, 1
jne 0x100ec7e5
mov ecx, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
jmp 0x100ec6cf
mov dword [esp + 0x68], ebx
mov ebx, dword [eax + ecx*4 + 0x10]
xor ecx, 1
mov dword [esp + 0x54], ebx
mov eax, dword [eax + ecx*4 + 0x10]
mov ecx, dword [esp + 0x68]
jmp 0x100ec6d3
movzx ebp, byte [eax + 0x101a2a58]
lea eax, [esi + 0xbcb8]
add eax, edx
mov dword [esp + 0x38], ebp
mov edx, dword [eax + 0x10]
jmp 0x100ec6ba
mov eax, dword [esp + 0x1c]
mov ecx, dword [esi + 0x94]
movzx edx, byte [eax - 1]
mov eax, dword [esp + 0x40]
shl eax, 8
add edx, eax
mov eax, dword [esi + 0x50]
and edx, dword [esi + 0x48]
shl edx, cl
cmp dword [esp + 0x38], 7
lea ecx, [edx + edx*2]
movzx edx, bh
lea ecx, [eax + ecx*2]
mov dword [esp + 0x4c], ecx
jb 0x100ec866
lea eax, [esi + 0x760]
push eax
movzx eax, bl
push eax
call fcn.100ebac0
add esp, 8
mov ebx, eax
jmp 0x100ec89a
mov edi, dword [esp + 0x4c]
xor ebx, ebx
or edx, 0x100
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 ebx, dword [esi + eax*4 + 0x760]
cmp edx, 2
jae 0x100ec872
mov edi, dword [esp + 0x2c]
mov edx, dword [edi]
add ebp, ebx
mov bl, byte [esp + 0x13]
mov bh, byte [esp + 0x1b]
mov dword [esp + 0x24], ebp
cmp ebp, edx
jae 0x100ec8ce
xor eax, eax
mov dword [edi], ebp
mov dword [edi + 8], 1
mov edx, ebp
mov dword [edi + 0xc], 0xffffffff
mov word [edi + 6], ax
mov dword [esp + 0x14], 1
mov ecx, dword [esp + 0x38]
mov edi, 0x7ff
sub edi, dword [esp + 0x20]
movzx eax, word [esi + ecx*2 + 0x1e50]
xor eax, 0x7f0
shr eax, 4
mov eax, dword [esi + eax*4 + 0x760]
add eax, dword [esp + 0x34]
cmp dword [esi + 0x28], edi
mov dword [esp + 0x74], eax
cmovbe edi, dword [esi + 0x28]
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0x2c]
cmp ecx, 7
jae 0x100ec973
cmp bl, bh
jne 0x100ec973
cmp eax, edx
jae 0x100ec973
cmp dword [edi + 8], 2
jb 0x100ec922
cmp dword [edi + 0xc], 0
je 0x100ec973
mov eax, ecx
shl eax, 4
add eax, dword [esp + 0x44]
movzx ecx, word [esi + eax*2 + 0x2030]
mov eax, dword [esp + 0x38]
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 + 0x74]
cmp ecx, edx
jae 0x100ec973
xor eax, eax
mov dword [edi], ecx
mov dword [edi + 8], 1
mov dword [edi + 0xc], 0
mov word [edi + 6], ax
jmp 0x100ec977
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x48]
cmp ecx, 2
jb 0x100ed1d2
mov edi, dword [esi + 0x30]
cmp ecx, edi
mov edx, edi
cmovbe edx, ecx
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x1c]
test eax, eax
jne 0x100ecada
test ebp, ebp
je 0x100ecada
cmp bl, bh
je 0x100ecada
cmp ecx, 2
jbe 0x100ecada
mov eax, dword [esp + 0x58]
mov ebx, edx
sub ebx, dword [esp + 0x54]
mov al, byte [eax]
cmp al, byte [ebx + 1]
jne 0x100ecada
mov al, byte [edx + 2]
cmp al, byte [ebx + 2]
jne 0x100ecada
inc edi
mov edx, 3
cmp edi, ecx
mov dword [esp + 0x2c], edx
cmova edi, ecx
cmp edi, edx
jbe 0x100eca05
mov ebp, dword [esp + 0x1c]
lea ecx, [ebx + 3]
sub ebp, ebx
mov al, byte [ecx + ebp]
cmp al, byte [ecx]
jne 0x100eca01
inc edx
inc ecx
cmp edx, edi
jb 0x100ec9f4
mov dword [esp + 0x2c], edx
mov eax, dword [esp + 0x38]
mov ebp, dword [esp + 0x40]
inc ebp
and ebp, dword [esi + 0x4c]
movzx edi, byte [eax + 0x101a2a64]
mov edx, edi
shl edx, 4
add edx, ebp
movzx ecx, word [esi + edi*2 + 0x1e50]
xor ecx, 0x7f0
shr ecx, 4
movzx eax, word [esi + edx*2 + 0x2030]
xor eax, 0x7f0
shr eax, 4
mov ebx, dword [esi + ecx*4 + 0x760]
mov ecx, dword [esp + 0x20]
add ebx, dword [esi + eax*4 + 0x760]
movzx eax, word [esi + edx*2 + 0x1eb0]
mov edx, dword [esp + 0x2c]
xor eax, 0x7f0
shr eax, 4
add ecx, edx
add ebx, dword [esi + eax*4 + 0x760]
movzx eax, word [esi + edi*2 + 0x1e68]
shr eax, 4
add ebx, dword [esi + eax*4 + 0x760]
add ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
cmp eax, ecx
cmovb eax, ecx
dec edx
mov dword [esp + 0x28], eax
imul eax, ebp, 0x110
shl ecx, 5
add eax, edx
mov eax, dword [esi + eax*4 + 0x78b0]
add eax, ebx
cmp eax, dword [ecx + esi + 0xbcb8]
jae 0x100ecad6
mov dword [ecx + esi + 0xbcb8], eax
mov eax, 1
mov dword [ecx + esi + 0xbcc0], edx
mov dword [ecx + esi + 0xbcc4], 0
mov word [ecx + esi + 0xbcbe], ax
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x38]
shl eax, 4
add eax, dword [esp + 0x44]
mov dword [esp + 0x14], 0
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x2c], 2
mov dword [esp + 0x84], eax
mov ebx, dword [esp + ecx*4 + 0x60]
mov ebp, edx
mov al, byte [edx]
sub ebp, ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x5c], ebp
cmp al, byte [ebp]
jne 0x100ece26
mov eax, dword [esp + 0x58]
mov al, byte [eax]
cmp al, byte [ebp + 1]
jne 0x100ece26
mov edi, dword [esp + 0x4c]
mov edx, 2
mov dword [esp + 0x24], edx
cmp edi, edx
jbe 0x100ecb51
lea ecx, [ebp + 2]
nop
mov al, byte [ebx + ecx]
cmp al, byte [ecx]
jne 0x100ecb4d
inc edx
inc ecx
cmp edx, edi
jb 0x100ecb40
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x20]
mov edi, edx
mov ecx, dword [esp + 0x28]
add eax, edx
cmp ecx, eax
mov dword [esp + 0x78], eax
cmovb ecx, eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x28], ecx
movzx ecx, word [esi + eax*2 + 0x1e68]
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x100ecba8
mov eax, dword [esp + 0x84]
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 0x100ecc0a
xor ecx, 0x7f0
shr ecx, 4
mov ebp, dword [esi + ecx*4 + 0x760]
mov ecx, dword [esp + 0x38]
movzx ebx, word [esi + ecx*2 + 0x1e80]
cmp eax, 1
jne 0x100ecbd5
shr ebx, 4
add ebp, dword [esi + ebx*4 + 0x760]
jmp 0x100ecc0a
movzx ecx, word [esi + ecx*2 + 0x1e98]
mov eax, 2
sub eax, dword [esp + 0x14]
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 + 0x44], 0x110
add ebp, dword [esp + 0x74]
mov dword [esp + 0x30], ebp
add eax, 0x1e2c
add eax, edx
mov edx, dword [esp + 0x14]
lea ebx, [esi + eax*4]
mov eax, dword [esp + 0x78]
shl eax, 5
add eax, 0xbcc4
add eax, esi
mov ecx, dword [ebx]
add ecx, ebp
cmp ecx, dword [eax - 0xc]
jae 0x100ecc4d
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 0x100ecc36
test edx, edx
mov edx, dword [esp + 0x24]
jne 0x100ecc68
lea eax, [edx + 1]
mov dword [esp + 0x2c], eax
mov eax, dword [esi + 0x30]
lea ebp, [edx + 1]
add eax, ebp
cmp eax, dword [esp + 0x48]
cmova eax, dword [esp + 0x48]
add ebp, 2
mov dword [esp + 0x78], eax
cmp ebp, eax
ja 0x100ece1e
mov ecx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x1c]
add ecx, ebp
mov dword [esp + 0x7c], ecx
mov al, byte [ebx + ebp - 2]
cmp al, byte [ecx - 2]
jne 0x100ece1e
mov al, byte [ebx + ebp - 1]
cmp al, byte [ecx - 1]
jne 0x100ece1e
mov ecx, dword [esp + 0x40]
lea eax, [esi + 0x760]
push eax
mov eax, dword [esp + 0x60]
add ecx, edx
mov edi, ecx
shl ecx, 8
and edi, dword [esi + 0x4c]
movzx eax, byte [edx + eax]
push eax
mov eax, ebx
mov ebx, dword [esp + 0x60]
movzx edx, byte [edx + eax]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax + ebx - 2]
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.100ebac0
mov ecx, dword [esp + 0x40]
add esp, 8
mov edx, dword [esp + 0x24]
movzx ecx, byte [ecx + 0x101a2a4c]
shl ecx, 4
add ecx, edi
movzx ecx, word [esi + ecx*2 + 0x1eb0]
shr ecx, 4
add eax, dword [esi + ecx*4 + 0x760]
imul ecx, dword [esp + 0x44], 0x110
add ecx, edx
add eax, dword [esi + ecx*4 + 0x78b0]
add dword [esp + 0x30], eax
lea eax, [edi + 1]
and eax, dword [esi + 0x4c]
mov dword [esp + 0x5c], eax
mov edi, dword [esp + 0x78]
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 + 0x30], ecx
cmp ebp, edi
jae 0x100ecdbd
mov ecx, dword [esp + 0x7c]
mov ebx, dword [esp + 0x70]
nop
mov al, byte [ecx + ebx]
cmp al, byte [ecx]
jne 0x100ecdbd
inc ebp
inc ecx
cmp ebp, edi
jb 0x100ecdb0
mov ecx, dword [esp + 0x20]
mov eax, ebp
mov ebx, dword [esp + 0x28]
add ecx, eax
sub ebp, edx
cmp ebx, ecx
cmovb ebx, ecx
imul eax, dword [esp + 0x5c], 0x110
dec ebp
shl ecx, 5
mov dword [esp + 0x28], ebx
add eax, ebp
lea edi, [ecx + esi]
mov ecx, dword [esp + 0x14]
mov eax, dword [esi + eax*4 + 0x78b0]
add eax, dword [esp + 0x30]
cmp eax, dword [edi + 0xbcb8]
jae 0x100ece18
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 edx, dword [esp + 0x1c]
jmp 0x100ece2a
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x28]
inc ecx
mov dword [esp + 0x14], ecx
cmp ecx, 4
jb 0x100ecb00
mov edx, dword [esp + 0x4c]
mov edi, dword [esp + 0x80]
cmp edi, edx
jbe 0x100ece7c
xor eax, eax
xor ecx, ecx
mov edi, edx
cmp edx, dword [esi + 0x960]
jbe 0x100ece6e
nop word [eax + eax]
add eax, 2
mov ecx, eax
cmp edx, dword [esi + ecx*4 + 0x960]
ja 0x100ece60
add eax, 2
mov dword [esi + ecx*4 + 0x960], edx
mov dword [esp + 0x3c], eax
mov ebp, dword [esp + 0x2c]
cmp edi, ebp
jb 0x100ed1d2
mov eax, dword [esp + 0x38]
movzx eax, word [esi + eax*2 + 0x1e50]
shr eax, 4
mov edx, dword [esi + eax*4 + 0x760]
mov eax, dword [esp + 0x20]
add edx, dword [esp + 0x34]
add eax, edi
cmp ebx, eax
mov dword [esp + 0x7c], edx
cmovb ebx, eax
xor edi, edi
mov dword [esp + 0x28], ebx
mov dword [esp + 0x14], edi
cmp ebp, dword [esi + 0x960]
jbe 0x100eced3
add edi, 2
cmp ebp, dword [esi + edi*4 + 0x960]
ja 0x100ecec3
mov dword [esp + 0x14], edi
mov ebx, dword [esi + edi*4 + 0x964]
cmp ebx, 0x20000
mov eax, ebx
mov edi, dword [esp + 0x14]
sbb ecx, ecx
mov dword [esp + 0x34], ebx
and ecx, 0xfffffff6
add ecx, 0x10
shr eax, cl
movzx eax, byte [eax + esi + 0x2cb0]
lea eax, [eax + ecx*2]
mov dword [esp + 0x4c], eax
lea ecx, [ebp + 3]
mov eax, dword [esp + 0x40]
add eax, ebp
add ebp, 0xd2b
shl eax, 8
mov dword [esp + 0x58], eax
imul eax, dword [esp + 0x44], 0x110
add eax, ebp
lea ebp, [esi + eax*4]
mov eax, dword [esp + 0x2c]
add eax, dword [esp + 0x20]
shl eax, 5
add eax, 0xbcc4
add eax, esi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x5c], ebp
lea eax, [ecx - 5]
mov ebp, dword [ebp]
add ebp, edx
mov dword [esp + 0x30], ecx
mov edx, 3
cmp eax, edx
cmovb edx, eax
cmp ebx, 0x80
jae 0x100ecf71
mov eax, ebx
shl edx, 7
and eax, 0x7f
add edx, eax
add ebp, dword [esi + edx*4 + 0x1630]
jmp 0x100ecf91
shl edx, 6
mov ecx, ebx
add edx, dword [esp + 0x4c]
and ecx, 0xf
mov eax, dword [esi + edx*4 + 0x1230]
add eax, dword [esi + ecx*4 + 0x11f0]
mov ecx, dword [esp + 0x30]
add ebp, eax
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x24], ebp
cmp ebp, dword [edx - 0xc]
jae 0x100ecfb2
lea eax, [ecx - 3]
mov dword [edx - 0xc], ebp
mov dword [edx - 4], eax
lea eax, [ebx + 4]
mov dword [edx], eax
xor eax, eax
mov word [edx - 6], ax
lea eax, [ecx - 3]
cmp eax, dword [esi + edi*4 + 0x960]
jne 0x100ed1b2
mov edi, dword [esi + 0x30]
mov edx, ecx
mov ebp, dword [esp + 0x1c]
add edi, 0xfffffffe
sub ebp, ebx
add edi, ecx
dec ebp
cmp edi, dword [esp + 0x48]
mov dword [esp + 0x80], ebp
cmova edi, dword [esp + 0x48]
cmp ecx, edi
ja 0x100ed16d
mov ebx, dword [esp + 0x1c]
mov al, byte [ebx + ecx - 2]
cmp al, byte [ecx + ebp - 2]
jne 0x100ed16d
mov al, byte [ebx + ecx - 1]
cmp al, byte [ecx + ebp - 1]
jne 0x100ed16d
cmp ecx, edi
jae 0x100ed028
add ecx, ebx
mov ebx, ebp
sub ebx, dword [esp + 0x1c]
mov al, byte [ecx]
cmp al, byte [ebx + ecx]
jne 0x100ed024
inc edx
inc ecx
cmp edx, edi
jb 0x100ed017
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x40]
mov eax, 3
sub eax, ecx
mov ebp, edx
add edx, eax
add edi, 0xfffffffd
lea eax, [esi + 0x760]
mov dword [esp + 0x70], edx
push eax
mov eax, dword [esp + 0x84]
add edi, ecx
and edi, dword [esi + 0x4c]
movzx eax, byte [eax + ecx - 3]
push eax
mov eax, dword [esp + 0x24]
movzx edx, byte [eax + ecx - 3]
movzx eax, byte [eax + ecx - 4]
add eax, dword [esp + 0x60]
and eax, dword [esi + 0x48]
mov ecx, dword [esi + 0x94]
shl eax, cl
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0x50]
lea ecx, [eax + ecx*2]
call fcn.100ebac0
mov ecx, dword [esp + 0x40]
lea edx, [edi + 1]
and edx, dword [esi + 0x4c]
add esp, 8
movzx ecx, byte [ecx + 0x101a2a58]
shl ecx, 4
add ecx, edi
mov edi, dword [esp + 0x70]
movzx ecx, word [esi + ecx*2 + 0x1eb0]
shr ecx, 4
add eax, dword [esi + ecx*4 + 0x760]
add dword [esp + 0x24], eax
movzx ecx, word [esi + edx*2 + 0x20b0]
movzx eax, word [esi + edx*2 + 0x1f30]
xor ecx, 0x7f0
xor eax, 0x7f0
shr ecx, 4
shr eax, 4
mov ebx, dword [esp + 0x24]
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]
mov eax, dword [esp + 0x28]
add ebx, ecx
mov ecx, dword [esp + 0x20]
add ecx, ebp
cmp eax, ecx
cmovb eax, ecx
dec edi
mov dword [esp + 0x28], eax
imul eax, edx, 0x110
shl ecx, 5
add eax, edi
mov eax, dword [esi + eax*4 + 0x78b0]
add eax, ebx
cmp eax, dword [ecx + esi + 0xbcb8]
jae 0x100ed16d
mov dword [ecx + esi + 0xbcb8], eax
mov eax, dword [esp + 0x30]
add eax, 0xfffffffe
mov dword [ecx + esi + 0xbcc0], edi
mov word [ecx + esi + 0xbcbe], ax
mov eax, dword [esp + 0x34]
add eax, 4
mov dword [ecx + esi + 0xbcc4], eax
mov edi, dword [esp + 0x14]
add edi, 2
mov dword [esp + 0x14], edi
cmp edi, dword [esp + 0x3c]
je 0x100ed1d2
mov ebx, dword [esi + edi*4 + 0x964]
cmp ebx, 0x20000
mov edx, dword [esp + 0x2c]
mov eax, ebx
sbb ecx, ecx
mov dword [esp + 0x34], ebx
and ecx, 0xfffffff6
add ecx, 0x10
shr eax, cl
movzx eax, byte [eax + esi + 0x2cb0]
lea eax, [eax + ecx*2]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x4c], eax
mov ebp, dword [esp + 0x5c]
add edx, 0x20
add dword [esp + 0x58], 0x100
add ebp, 4
mov dword [esp + 0x2c], edx
inc ecx
mov edx, dword [esp + 0x7c]
jmp 0x100ecf3c
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x28]
inc ebx
mov dword [esp + 0x20], ebx
cmp ebx, ebp
jne 0x100ec5f0
jmp 0x100ed24d
mov eax, dword [esp + 0x3c]
mov dword [esi + 0x24], eax
mov dword [esi + 0x20], ecx
jmp 0x100ed24d
mov eax, ebx
shl eax, 5
mov edi, dword [eax + esi + 0xbcb8]
mov eax, dword [esp + 0x20]
lea edx, [eax + 1]
cmp edx, ebp
ja 0x100ed235
nop dword [eax]
mov eax, edx
shl eax, 5
mov ecx, dword [eax + esi + 0xbcb8]
cmp edi, ecx
mov eax, edx
cmovb eax, ebx
inc edx
cmp edi, ecx
mov ebx, eax
cmovb ecx, edi
mov edi, ecx
cmp edx, ebp
jbe 0x100ed210
mov eax, dword [esp + 0x20]
mov ecx, ebx
sub ecx, eax
je 0x100ed249
mov eax, dword [esi + 0x14]
add dword [esi + 0x34], ecx
push ecx
push dword [esi]
call eax
add esp, 8
mov dword [esp + 0x20], ebx
mov eax, ebp
shl eax, 5
add eax, 0xbcb8
add eax, esi
nop dword [eax]
mov dword [eax], 0x40000000
lea eax, [eax - 0x20]
sub ebp, 1
jne 0x100ed260
inc ebx
mov edx, ebx
mov dword [esi + 0x1c], ebx
shl edx, 5
add edx, 0xbcc4
lea edi, [ebx + 0x5e6]
shl edi, 5
add edi, esi
add edx, esi
nop word [eax + eax]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
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 + 0x20], eax
test ecx, ecx
je 0x100ed2f4
sub dword [esp + 0x20], ecx
sub edi, 0x20
dec ebx
sub edx, 0x20
mov dword [edi], eax
mov eax, ecx
cmp ecx, 1
jne 0x100ed2d8
mov dword [edx], ebp
or ebp, 0xffffffff
jmp 0x100ed2f4
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 + 0x20], 0
je 0x100ed308
sub edx, 0x20
dec ebx
sub edi, 0x20
mov dword [edx], ebp
mov dword [edi], eax
jmp 0x100ed290
pop edi
mov dword [esi + 0x90], ebp
mov dword [esi + 0x18], ebx
pop esi
pop ebp
pop ebx
add esp, 0x88
ret
pop edi
mov dword [esi + 0x90], 0xffffffff
mov eax, 1
pop esi
pop ebp
pop ebx
add esp, 0x88
ret