Function at 0x100de680
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 + 0x44], edx
push edi
mov dword [esp + 0x50], esi
cmp dword [esi + 0x34], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x18], 0
jne 0x100de6bb
lea edx, [esp + 0x34]
call fcn.100e1e60
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x34]
jmp 0x100de6c5
mov eax, dword [esi + 0x20]
mov dword [esp + 0x4c], eax
mov eax, dword [esi + 0x24]
mov ebx, dword [esi + 0x28]
mov dword [esp + 0x2c], eax
cmp ebx, 2
jb 0x100df91c
mov ecx, dword [esi]
mov eax, 0x111
cmp ebx, eax
cmova ebx, eax
mov eax, dword [esi + 0xc]
call eax
mov dword [esp + 0x28], eax
lea edi, [esi + 0x38]
xor ecx, ecx
mov dword [esp + 0x34], edi
mov dword [esp + 0x3c], ecx
xor esi, esi
lea edx, [eax - 1]
mov dword [esp + 0x10], ecx
mov al, byte [edx]
mov byte [esp + 0x1f], al
mov eax, dword [esp + 0x28]
mov dword [esp + 0x38], edx
nop
mov edi, dword [edi + ecx*4]
lea ebp, [ecx*4]
mov cl, byte [esp + 0x1f]
mov dword [esp + ebp + 0x64], edi
neg edi
cmp cl, byte [edi + edx]
mov ecx, dword [esp + 0x10]
jne 0x100de778
mov al, byte [eax]
cmp al, byte [edi + edx + 1]
jne 0x100de778
mov edx, 2
cmp ebx, edx
jbe 0x100de754
mov ecx, dword [esp + 0x28]
inc ecx
mov al, byte [ecx]
cmp al, byte [ecx + edi]
jne 0x100de750
inc edx
inc ecx
cmp edx, ebx
jb 0x100de743
mov ecx, dword [esp + 0x10]
mov dword [esp + ebp + 0x88], edx
cmp edx, dword [esp + esi + 0x88]
jbe 0x100de76a
mov dword [esp + 0x3c], ecx
mov esi, ebp
cmp edx, 0x111
je 0x100de799
mov edx, dword [esp + 0x38]
jmp 0x100de783
mov dword [esp + ebp + 0x88], 0
mov eax, dword [esp + 0x28]
inc ecx
mov edi, dword [esp + 0x34]
mov dword [esp + 0x10], ecx
cmp ecx, 4
jb 0x100de710
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x50]
mov edi, dword [esp + ecx*4 + 0x88]
mov eax, dword [esi + 0x30]
cmp edi, eax
jb 0x100de7d2
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 esi
pop ebp
pop ebx
add esp, 0x88
ret
mov ebp, dword [esp + 0x4c]
cmp ebp, eax
jb 0x100de80b
mov eax, dword [esp + 0x2c]
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
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x88
ret
mov ecx, dword [esp + 0x38]
mov eax, ecx
mov edx, dword [esp + 0x64]
sub eax, edx
cmp edi, ebp
mov dword [esp + 0x58], edx
mov bh, byte [ecx]
cmovbe edi, ebp
mov bl, byte [eax]
mov dword [esp + 0x20], edi
cmp edi, 2
jae 0x100de835
cmp bh, bl
jne 0x100df91c
mov ax, word [esi + 0x2c]
mov word [esi + 0xbcbc], ax
mov ebp, dword [esi + 0x4c]
mov eax, dword [esp + 0x48]
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 + 0x10], ebp
and edx, dword [esi + 0x48]
mov eax, dword [esi + 0x50]
shl edx, cl
lea ecx, [edx + edx*2]
movzx edx, bh
lea ecx, [eax + ecx*2]
lea eax, [esi + 0x760]
push eax
cmp edi, 7
jb 0x100de887
movzx eax, bl
push eax
call fcn.100e0120
jmp 0x100de88c
call fcn.100e00e0
mov ecx, eax
mov eax, edi
shl eax, 4
add eax, ebp
mov dword [esp + 0x3c], eax
movzx eax, word [esi + eax*2 + 0x1eb0]
shr eax, 4
mov edx, dword [esi + eax*4 + 0x760]
xor eax, eax
mov word [esi + 0xbcde], ax
add edx, ecx
mov eax, dword [esp + 0x3c]
mov dword [esi + 0xbcd8], edx
mov dword [esi + 0xbce4], 0xffffffff
movzx eax, word [esi + eax*2 + 0x1eb0]
xor eax, 0x7f0
shr eax, 4
mov ecx, dword [esi + eax*4 + 0x760]
movzx eax, word [esi + edi*2 + 0x1e50]
xor eax, 0x7f0
mov dword [esp + 0x34], ecx
shr eax, 4
mov eax, dword [esi + eax*4 + 0x760]
add eax, ecx
mov dword [esp + 0x38], eax
cmp bl, bh
jne 0x100de972
cmp dword [esp + 0x88], 0
jne 0x100de972
mov eax, dword [esp + 0x3c]
movzx ecx, word [esi + edi*2 + 0x1e68]
shr ecx, 4
movzx eax, word [esi + eax*2 + 0x2030]
shr eax, 4
mov ecx, dword [esi + ecx*4 + 0x760]
add ecx, dword [esi + eax*4 + 0x760]
or eax, 0xffffffff
add ecx, dword [esp + 0x38]
cmp ecx, edx
jae 0x100de955
mov dword [esi + 0xbcd8], ecx
xor eax, eax
mov dword [esi + 0xbce4], 0
cmp dword [esp + 0x20], 2
jae 0x100de972
pop edi
mov dword [esi + 0x90], eax
mov eax, 1
pop esi
pop ebp
pop ebx
add esp, 0x88
ret
mov eax, dword [esp + 0x58]
mov ebx, dword [esp + 0x6c]
mov dword [esi + 0xbce0], 1
mov dword [esi + 0xbcc8], eax
mov eax, dword [esp + 0x68]
mov dword [esi + 0xbccc], eax
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x70]
mov dword [esi + 0xbcd0], ebx
xor ebx, ebx
mov dword [esi + 0xbcd4], eax
nop word [eax + eax]
mov edx, dword [esp + ebx*4 + 0x88]
cmp edx, 2
jb 0x100dea9e
mov eax, dword [esi + 0x2c]
movzx ecx, word [esi + eax*2 + 0x1e68]
test ebx, ebx
jne 0x100de9f7
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 0x100dea53
movzx edi, word [esi + eax*2 + 0x1e80]
xor ecx, 0x7f0
shr ecx, 4
mov ebp, dword [esi + ecx*4 + 0x760]
cmp ebx, 1
jne 0x100dea20
shr edi, 4
add ebp, dword [esi + edi*4 + 0x760]
jmp 0x100dea53
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 + 0x10], 0x110
mov ecx, edx
add ebp, dword [esp + 0x38]
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 0x100dea8e
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 0x100dea77
mov ebp, dword [esp + 0x10]
inc ebx
cmp ebx, 4
jb 0x100de9b0
mov edi, dword [esp + 0x88]
inc edi
cmp edi, dword [esp + 0x4c]
ja 0x100debd2
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 0x100deadf
lea edi, [ebp + 2]
jmp 0x100deafc
cmp edi, dword [esi + 0x960]
jbe 0x100deafc
nop word [eax + eax]
add ebp, 2
cmp edi, dword [esi + ebp*4 + 0x960]
ja 0x100deaf0
imul edx, dword [esp + 0x10], 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 + 0x38], edx
lea edx, [edi - 2]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x3c], eax
cmp edi, 5
jb 0x100deb42
mov edx, 3
cmp eax, 0x80
jae 0x100deb5e
shl edx, 7
and eax, 0x7f
add edx, eax
add ebx, dword [esi + edx*4 + 0x1630]
mov edx, dword [esp + 0x3c]
jmp 0x100deb9a
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 + 0x44]
add ebx, eax
cmp ebx, dword [ecx - 0xc]
jae 0x100debb0
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 0x100debc2
add ebp, 2
cmp ebp, dword [esp + 0x2c]
je 0x100debd2
mov edx, dword [esp + 0x38]
inc edi
add edx, 4
add ecx, 0x20
jmp 0x100deb1c
mov ebp, dword [esp + 0x20]
mov ebx, 1
mov dword [esp + 0x18], ebx
cmp ebp, ebx
je 0x100df84b
nop word [eax + eax]
cmp ebx, 0x7c0
jae 0x100df7fb
lea edx, [esp + 0x3c]
mov ecx, esi
call fcn.100e1e60
mov ecx, eax
mov dword [esp + 0x80], ecx
cmp ecx, dword [esi + 0x30]
jae 0x100df7ef
inc dword [esp + 0x48]
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 0x100dec6b
mov ebx, dword [esp + 0x58]
mov eax, 0x1011e840
shl edx, 5
cmp dword [edi + 0xc], 0
movzx ecx, word [edx + esi + 0xbcbc]
mov edx, 0x1011e864
cmove eax, edx
mov edx, dword [esp + 0x54]
movzx ebp, byte [eax + ecx]
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x70]
mov dword [esp + 0x30], ebp
jmp 0x100decdb
movzx ebx, word [edi + 6]
mov ecx, dword [edi + 0xc]
test bx, bx
je 0x100ded83
sub edx, ebx
mov ebp, 8
mov dword [esp + 0x30], ebp
cmp ebx, 1
jne 0x100dec99
cmp ecx, 4
sbb ebp, ebp
neg ebp
add ebp, 7
mov dword [esp + 0x30], ebp
shl edx, 5
lea eax, [esi + 0xbcb8]
add eax, edx
mov dword [esp + 0x74], ebp
mov ebx, dword [eax + 0x10]
mov dword [esp + 0x54], ebx
cmp ecx, 4
jb 0x100dedb2
mov edx, ebx
lea ebx, [ecx - 3]
mov ecx, dword [eax + 0x14]
mov eax, dword [eax + 0x18]
mov dword [esp + 0x68], edx
mov dword [esp + 0x54], edx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], eax
mov dword [esp + 0x64], 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
mov ecx, dword [esi]
mov eax, dword [esi + 0xc]
call eax
mov bh, byte [eax - 1]
mov ecx, dword [esi + 0x4c]
and ecx, dword [esp + 0x48]
mov dword [esp + 0x44], eax
dec eax
mov dword [esp + 0x14], eax
sub eax, dword [esp + 0x58]
mov dword [esp + 0x4c], ecx
mov byte [esp + 0x1f], bh
mov bl, byte [eax]
mov eax, ebp
shl eax, 4
add eax, ecx
mov byte [esp + 0x43], 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 + 0x18]
shl edi, 5
add edi, 0xbcd8
mov dword [esp + 0x34], eax
add edi, esi
xor eax, eax
mov dword [esp + 0x10], edi
mov dword [esp + 0x24], eax
mov edx, dword [edi]
cmp edx, 0x40000000
jae 0x100ded70
cmp bl, bh
je 0x100ded78
cmp ebp, edx
jbe 0x100dee19
xor ebp, ebp
mov dword [esp + 0x28], ebp
jmp 0x100deecc
mov eax, edx
shl edx, 5
shl eax, 5
movzx eax, word [eax + esi + 0xbcbc]
cmp ecx, 4
jae 0x100dedfe
movzx ebp, byte [eax + 0x1011e858]
lea eax, [esi + 0xbcb8]
add eax, edx
mov dword [esp + 0x30], ebp
mov ebx, dword [eax + 0x10]
mov dword [esp + 0x54], ebx
mov edx, dword [eax + 0x14]
test ecx, ecx
jne 0x100dedc4
mov ecx, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
jmp 0x100decc3
mov dword [esp + 0x68], ebx
mov ebx, edx
mov edx, dword [esp + 0x54]
mov dword [esp + 0x58], ebx
cmp ecx, 1
jne 0x100dede2
mov ecx, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
jmp 0x100deccf
mov dword [esp + 0x6c], ebx
mov ebx, dword [eax + ecx*4 + 0x10]
xor ecx, 1
mov dword [esp + 0x58], ebx
mov eax, dword [eax + ecx*4 + 0x10]
mov ecx, dword [esp + 0x6c]
jmp 0x100decd3
movzx ebp, 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]
lea eax, [esi + 0xbcb8]
add eax, edx
mov dword [esp + 0x30], ebp
mov edx, dword [eax + 0x10]
jmp 0x100decba
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 0x94]
movzx edx, byte [eax - 1]
mov eax, dword [esp + 0x48]
shl eax, 8
add edx, eax
mov eax, dword [esi + 0x50]
and edx, dword [esi + 0x48]
shl edx, cl
cmp dword [esp + 0x30], 7
lea ecx, [edx + edx*2]
movzx edx, bh
lea ecx, [eax + ecx*2]
mov dword [esp + 0x50], ecx
jb 0x100dee60
lea eax, [esi + 0x760]
push eax
movzx eax, bl
push eax
call fcn.100e0120
mov ebx, eax
jmp 0x100dee98
mov edi, dword [esp + 0x50]
xor ebx, ebx
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 ebx, dword [esi + eax*4 + 0x760]
cmp edx, 2
jae 0x100dee70
mov edi, dword [esp + 0x10]
mov edx, dword [edi]
add ebp, ebx
mov bl, byte [esp + 0x43]
mov bh, byte [esp + 0x1f]
mov dword [esp + 0x28], ebp
cmp ebp, edx
jae 0x100deecc
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 + 0x24], 1
mov ecx, dword [esp + 0x30]
mov edi, 0x7ff
sub edi, dword [esp + 0x18]
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 + 0x5c], eax
cmovbe edi, dword [esi + 0x28]
mov dword [esp + 0x38], edi
mov edi, dword [esp + 0x10]
cmp ecx, 7
jae 0x100def71
cmp bl, bh
jne 0x100def71
cmp eax, edx
jae 0x100def71
cmp dword [edi + 8], 2
jb 0x100def20
cmp dword [edi + 0xc], 0
je 0x100def71
mov eax, ecx
shl eax, 4
add eax, dword [esp + 0x4c]
movzx ecx, word [esi + eax*2 + 0x2030]
mov eax, dword [esp + 0x30]
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 + 0x5c]
cmp ecx, edx
jae 0x100def71
xor eax, eax
mov dword [edi], ecx
mov dword [edi + 8], 1
mov dword [edi + 0xc], 0
mov word [edi + 6], ax
jmp 0x100def75
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x38]
cmp ecx, 2
jb 0x100df7d8
mov edi, dword [esi + 0x30]
cmp ecx, edi
mov edx, edi
cmovbe edx, ecx
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x14]
test eax, eax
jne 0x100df0d8
test ebp, ebp
je 0x100df0d8
cmp bl, bh
je 0x100df0d8
cmp ecx, 2
jbe 0x100df0d8
mov eax, dword [esp + 0x44]
mov ebx, edx
sub ebx, dword [esp + 0x58]
mov al, byte [eax]
cmp al, byte [ebx + 1]
jne 0x100df0d8
mov al, byte [edx + 2]
cmp al, byte [ebx + 2]
jne 0x100df0d8
inc edi
mov edx, 3
cmp edi, ecx
mov dword [esp + 0x10], edx
cmova edi, ecx
cmp edi, edx
jbe 0x100df003
mov ebp, dword [esp + 0x14]
lea ecx, [ebx + 3]
sub ebp, ebx
mov al, byte [ecx + ebp]
cmp al, byte [ecx]
jne 0x100defff
inc edx
inc ecx
cmp edx, edi
jb 0x100deff2
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x30]
mov ebp, dword [esp + 0x48]
inc ebp
and ebp, dword [esi + 0x4c]
movzx edi, byte [eax + 0x1011e840]
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 + 0x18]
add ebx, dword [esi + eax*4 + 0x760]
movzx eax, word [esi + edx*2 + 0x1eb0]
mov edx, dword [esp + 0x10]
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 + 0x28]
mov eax, dword [esp + 0x20]
cmp eax, ecx
cmovb eax, ecx
dec edx
mov dword [esp + 0x20], 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 0x100df0d4
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 + 0x14]
mov eax, dword [esp + 0x30]
shl eax, 4
add eax, dword [esp + 0x4c]
mov dword [esp + 0x24], 0
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x10], 2
mov dword [esp + 0x84], eax
nop
mov ebx, dword [esp + ecx*4 + 0x64]
mov ebp, edx
mov al, byte [edx]
sub ebp, ebx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x60], ebp
cmp al, byte [ebp]
jne 0x100df426
mov eax, dword [esp + 0x44]
mov al, byte [eax]
cmp al, byte [ebp + 1]
jne 0x100df426
mov edi, dword [esp + 0x50]
mov edx, 2
mov dword [esp + 0x28], edx
cmp edi, edx
jbe 0x100df151
lea ecx, [ebp + 2]
nop
mov al, byte [ebx + ecx]
cmp al, byte [ecx]
jne 0x100df14d
inc edx
inc ecx
cmp edx, edi
jb 0x100df140
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x18]
mov edi, edx
mov ecx, dword [esp + 0x20]
add eax, edx
cmp ecx, eax
mov dword [esp + 0x78], eax
cmovb ecx, eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x20], ecx
movzx ecx, word [esi + eax*2 + 0x1e68]
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x100df1a8
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 0x100df20a
xor ecx, 0x7f0
shr ecx, 4
mov ebp, dword [esi + ecx*4 + 0x760]
mov ecx, dword [esp + 0x30]
movzx ebx, word [esi + ecx*2 + 0x1e80]
cmp eax, 1
jne 0x100df1d5
shr ebx, 4
add ebp, dword [esi + ebx*4 + 0x760]
jmp 0x100df20a
movzx ecx, word [esi + ecx*2 + 0x1e98]
mov eax, 2
sub eax, dword [esp + 0x24]
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 + 0x4c], 0x110
add ebp, dword [esp + 0x5c]
mov dword [esp + 0x2c], ebp
add eax, 0x1e2c
add eax, edx
mov edx, dword [esp + 0x24]
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 0x100df24d
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 0x100df236
test edx, edx
mov edx, dword [esp + 0x28]
jne 0x100df268
lea edi, [edx + 1]
mov dword [esp + 0x10], edi
mov eax, dword [esi + 0x30]
lea ebp, [edx + 1]
add eax, ebp
cmp eax, dword [esp + 0x38]
cmova eax, dword [esp + 0x38]
add ebp, 2
mov dword [esp + 0x78], eax
cmp ebp, eax
ja 0x100df41e
mov ecx, dword [esp + 0x60]
mov ebx, dword [esp + 0x14]
add ecx, ebp
mov dword [esp + 0x7c], ecx
mov al, byte [ebx + ebp - 2]
cmp al, byte [ecx - 2]
jne 0x100df41e
mov al, byte [ebx + ebp - 1]
cmp al, byte [ecx - 1]
jne 0x100df41e
mov ecx, dword [esp + 0x48]
lea eax, [esi + 0x760]
push eax
mov eax, dword [esp + 0x64]
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 + 0x4c]
movzx edx, byte [edx + eax]
mov eax, dword [esp + 0x30]
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.100e0120
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x28]
movzx ecx, byte [ecx + 0x1011e858]
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 + 0x4c], 0x110
add ecx, edx
add eax, dword [esi + ecx*4 + 0x78b0]
add dword [esp + 0x2c], eax
lea eax, [edi + 1]
and eax, dword [esi + 0x4c]
mov dword [esp + 0x60], 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 + 0x2c], ecx
cmp ebp, edi
jae 0x100df3bd
mov ecx, dword [esp + 0x7c]
mov ebx, dword [esp + 0x74]
nop dword [eax + eax]
mov al, byte [ecx + ebx]
cmp al, byte [ecx]
jne 0x100df3bd
inc ebp
inc ecx
cmp ebp, edi
jb 0x100df3b0
mov ecx, dword [esp + 0x18]
mov eax, ebp
mov ebx, dword [esp + 0x20]
add ecx, eax
sub ebp, edx
cmp ebx, ecx
cmovb ebx, ecx
imul eax, dword [esp + 0x60], 0x110
dec ebp
shl ecx, 5
mov dword [esp + 0x20], ebx
add eax, ebp
lea edi, [ecx + esi]
mov ecx, dword [esp + 0x24]
mov eax, dword [esi + eax*4 + 0x78b0]
add eax, dword [esp + 0x2c]
cmp eax, dword [edi + 0xbcb8]
jae 0x100df418
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 + 0x14]
jmp 0x100df42a
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x20]
inc ecx
mov dword [esp + 0x24], ecx
cmp ecx, 4
jb 0x100df100
mov edx, dword [esp + 0x50]
mov edi, dword [esp + 0x80]
cmp edi, edx
jbe 0x100df47c
xor eax, eax
xor ecx, ecx
mov edi, edx
cmp edx, dword [esi + 0x960]
jbe 0x100df46e
nop word [eax + eax]
add eax, 2
mov ecx, eax
cmp edx, dword [esi + ecx*4 + 0x960]
ja 0x100df460
add eax, 2
mov dword [esi + ecx*4 + 0x960], edx
mov dword [esp + 0x3c], eax
cmp edi, dword [esp + 0x10]
jb 0x100df7d8
mov eax, dword [esp + 0x30]
movzx eax, word [esi + eax*2 + 0x1e50]
shr eax, 4
mov edx, dword [esi + eax*4 + 0x760]
mov eax, dword [esp + 0x18]
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 + 0x20], ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x28], edi
cmp ebx, dword [esi + 0x960]
jbe 0x100df4e0
nop word [eax + eax]
add edi, 2
cmp ebx, dword [esi + edi*4 + 0x960]
ja 0x100df4d0
mov dword [esp + 0x28], edi
mov ebp, dword [esi + edi*4 + 0x964]
cmp ebp, 0x20000
mov eax, ebp
mov edi, dword [esp + 0x28]
sbb ecx, ecx
mov dword [esp + 0x34], ebp
and ecx, 0xfffffff6
add ecx, 0x10
shr eax, cl
movzx eax, byte [eax + esi + 0x2cb0]
lea eax, [eax + ecx*2]
mov dword [esp + 0x50], eax
lea ecx, [ebx + 3]
mov eax, dword [esp + 0x48]
add eax, ebx
add ebx, 0xd2b
shl eax, 8
mov dword [esp + 0x5c], eax
imul eax, dword [esp + 0x4c], 0x110
add eax, ebx
lea ebx, [esi + eax*4]
mov eax, dword [esp + 0x10]
add eax, dword [esp + 0x18]
shl eax, 5
add eax, 0xbcc4
add eax, esi
mov dword [esp + 0x44], eax
mov dword [esp + 0x60], ebx
lea eax, [ecx - 5]
mov ebx, dword [ebx]
add ebx, edx
mov dword [esp + 0x2c], ecx
mov edx, 3
cmp eax, edx
cmovb edx, eax
cmp ebp, 0x80
jae 0x100df57d
mov eax, ebp
shl edx, 7
and eax, 0x7f
add edx, eax
add ebx, dword [esi + edx*4 + 0x1630]
jmp 0x100df59d
shl edx, 6
mov ecx, ebp
add edx, dword [esp + 0x50]
and ecx, 0xf
mov eax, dword [esi + edx*4 + 0x1230]
add eax, dword [esi + ecx*4 + 0x11f0]
mov ecx, dword [esp + 0x2c]
add ebx, eax
mov edx, dword [esp + 0x44]
mov dword [esp + 0x10], ebx
cmp ebx, dword [edx - 0xc]
jae 0x100df5be
lea eax, [ecx - 3]
mov dword [edx - 0xc], ebx
mov dword [edx - 4], eax
lea eax, [ebp + 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 0x100df7b8
mov edi, dword [esi + 0x30]
mov edx, ecx
mov ebx, dword [esp + 0x14]
add edi, 0xfffffffe
sub ebx, ebp
add edi, ecx
dec ebx
cmp edi, dword [esp + 0x38]
mov dword [esp + 0x80], ebx
cmova edi, dword [esp + 0x38]
cmp ecx, edi
ja 0x100df773
mov ebp, dword [esp + 0x14]
mov al, byte [ebp + ecx - 2]
cmp al, byte [ebx + ecx - 2]
jne 0x100df773
mov al, byte [ebp + ecx - 1]
cmp al, byte [ebx + ecx - 1]
jne 0x100df773
cmp ecx, edi
jae 0x100df631
add ecx, ebp
sub ebx, ebp
nop
mov al, byte [ecx]
cmp al, byte [ebx + ecx]
jne 0x100df62d
inc edx
inc ecx
cmp edx, edi
jb 0x100df620
mov ecx, dword [esp + 0x2c]
mov edi, dword [esp + 0x48]
mov eax, 3
sub eax, ecx
mov ebp, edx
add edx, eax
add edi, 0xfffffffd
lea eax, [esi + 0x760]
mov dword [esp + 0x74], 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 + 0x1c]
movzx edx, byte [eax + ecx - 3]
movzx eax, byte [eax + ecx - 4]
add eax, dword [esp + 0x64]
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.100e0120
mov ecx, dword [esp + 0x30]
lea edx, [edi + 1]
and edx, dword [esi + 0x4c]
movzx ecx, byte [ecx + 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 + 0x74]
movzx ecx, word [esi + ecx*2 + 0x1eb0]
shr ecx, 4
add eax, dword [esi + ecx*4 + 0x760]
add dword [esp + 0x10], 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 + 0x10]
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 + 0x20]
add ebx, ecx
mov ecx, dword [esp + 0x18]
add ecx, ebp
cmp eax, ecx
cmovb eax, ecx
dec edi
mov dword [esp + 0x20], 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 0x100df773
mov dword [ecx + esi + 0xbcb8], eax
mov eax, dword [esp + 0x2c]
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 + 0x28]
add edi, 2
mov dword [esp + 0x28], edi
cmp edi, dword [esp + 0x3c]
je 0x100df7d8
mov ebp, dword [esi + edi*4 + 0x964]
cmp ebp, 0x20000
mov edx, dword [esp + 0x44]
mov eax, ebp
sbb ecx, ecx
mov dword [esp + 0x34], ebp
and ecx, 0xfffffff6
add ecx, 0x10
shr eax, cl
movzx eax, byte [eax + esi + 0x2cb0]
lea eax, [eax + ecx*2]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x50], eax
mov ebx, dword [esp + 0x60]
add edx, 0x20
add dword [esp + 0x5c], 0x100
add ebx, 4
mov dword [esp + 0x44], edx
inc ecx
mov edx, dword [esp + 0x7c]
jmp 0x100df549
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
inc ebx
mov dword [esp + 0x18], ebx
cmp ebx, ebp
jne 0x100debf0
jmp 0x100df84b
mov eax, dword [esp + 0x3c]
mov dword [esi + 0x24], eax
mov dword [esi + 0x20], ecx
jmp 0x100df84b
mov eax, ebx
shl eax, 5
mov edi, dword [eax + esi + 0xbcb8]
mov eax, dword [esp + 0x18]
lea edx, [eax + 1]
cmp edx, ebp
ja 0x100df837
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 0x100df812
mov eax, dword [esp + 0x18]
mov edx, ebx
sub edx, eax
je 0x100df847
mov ecx, dword [esi]
mov eax, dword [esi + 0x14]
add dword [esi + 0x34], edx
call eax
mov dword [esp + 0x18], ebx
mov eax, ebp
shl eax, 5
add eax, 0xbcb8
add eax, esi
nop word [eax + eax]
mov dword [eax], 0x40000000
lea eax, [eax - 0x20]
sub ebp, 1
jne 0x100df860
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 + 0x18]
mov ecx, dword [esp + 0x18]
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 + 0x18], eax
test ecx, ecx
je 0x100df8f4
sub dword [esp + 0x18], ecx
sub edi, 0x20
dec ebx
sub edx, 0x20
mov dword [edi], eax
mov eax, ecx
cmp ecx, 1
jne 0x100df8d8
mov dword [edx], ebp
or ebp, 0xffffffff
jmp 0x100df8f4
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 + 0x18], 0
je 0x100df908
sub edx, 0x20
dec ebx
sub edi, 0x20
mov dword [edx], ebp
mov dword [edi], eax
jmp 0x100df890
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