Function at 0x10093720
Capabilities:
Encrypt data using speck
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x170
mov esi, dword [ebp + 0x1c]
mov ecx, dword [ebp + 8]
mov eax, dword [0x10305014]
xor eax, ebp
mov dword [esp + 0x168], eax
mov eax, ecx
lea edi, [ecx + 0x2da0]
add ecx, 0x140
mov edx, eax
xor eax, eax
test esi, esi
cmove edi, ecx
mov ebx, dword [edx + 0xd0]
mov ecx, dword [ebx + 0x20]
mov dword [esp + 0x1c], ebx
mov edx, dword [ecx + esi*4]
mov dword [esp + 0xe8], edx
mov ecx, dword [ecx + esi*4 + 0x20]
mov dword [esp + 0xe4], ecx
setne al
mov ecx, dword [ebp + 0x14]
xor esi, esi
inc esi
shl esi, cl
pxor xmm0, xmm0
mov edx, dword [ebx + 0x1c4]
mov ecx, dword [ebp + 0x1c]
mov ebx, dword [edx + ecx*4 + 0x34d8]
mov dword [esp + 0xdc], ebx
mov ebx, dword [edx + ecx*4 + 0x34e4]
mov dword [esp + 0xd8], ebx
mov ebx, edi
mov edx, dword [edx + 0x34]
mov dword [esp + 0xe0], edx
movdqa xmmword [esp + 0x150], xmm0
movdqa xmmword [esp + 0x140], xmm0
movdqa xmmword [esp + 0x130], xmm0
movdqa xmmword [esp + 0x120], xmm0
mov edi, dword [ebp + 8]
mov eax, dword [edi + eax*4 + 0x110]
mov dword [esp + 0x9c], eax
mov dword [esp + 0x2c], esi
mov ecx, dword [ebp + 0x14]
shl esi, cl
mov dword [esp + 0xd4], esi
lea eax, [esi + esi]
push eax
push 0
push ebx
call fcn.10132b90
add esp, 0xc
mov cl, byte [edi + 0x7a16]
xor eax, eax
dec eax
mov byte [esp + 0x14], cl
test cl, cl
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x7c], eax
je 0x10093896
mov dword [esp + 0xbc], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0x94], eax
mov dword [esp + 0xa0], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x34], 0
mov eax, dword [ebp + 0x14]
mov edx, dword [esp + 0x2c]
mov cl, 1
mov dword [esp + 0x68], ecx
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x7a0c], 0
je 0x100939a0
mov dword [esp + 0x38], 0
jmp 0x10093d48
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x1c8]
mov dword [esp + 0x34], 0
cmp byte [eax + 0x15], 0
je 0x100939d1
movzx eax, byte [eax + 0x659]
cmp eax, dword [ebp + 0x14]
mov edi, dword [ebp + 8]
mov eax, dword [ebp + 0x1c]
jl 0x100939d7
cmp eax, 1
mov edi, dword [ebp + 8]
sbb edi, 0
movzx ecx, byte [edi + 0x30]
mov dword [esp + 0xc], ecx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xec]
mov edx, eax
and edx, 0xc0
movzx ebx, byte [ecx + edx*2 + 0x102db2d8]
sub eax, ebx
mov esi, eax
shl esi, 0x11
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0xe8]
mov dword [esp + 0x10], ecx
xor edx, edx
cmp esi, ecx
setl dl
neg edx
and esi, edx
sub ebx, eax
and ebx, edx
xor edx, dword [esp + 0xc]
mov dword [esp + 0x34], edx
mov cl, byte [edx + 0x102db558]
mov edx, dword [esp + 0x10]
mov byte [edi + 0x30], cl
mov edi, dword [ebp + 8]
sub edx, esi
mov cl, byte [ebx + eax + str._t_b_a_a]
add eax, ebx
shl eax, cl
shl edx, cl
mov dword [edi + 0xec], eax
mov dword [edi + 0xe8], edx
test dx, dx
jne 0x10093999
mov eax, dword [edi + 0xf4]
movzx ecx, byte [eax]
shl ecx, 9
movzx esi, byte [eax + 1]
lea esi, [ecx + esi*2]
add esi, 0xffff0001
mov ecx, edx
neg ecx
and ecx, edx
imul ecx, ecx, 0x77cb531
shr ecx, 0x1b
mov cl, byte [ecx + 0x102d03f0]
add cl, 0xf0
shl esi, cl
add esi, edx
mov dword [edi + 0xe8], esi
cmp eax, dword [edi + 0xf8]
jae 0x10093999
add eax, 2
mov dword [edi + 0xf4], eax
and dword [esp + 0x34], 1
jmp 0x100939d4
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x1c4]
cmp dword [eax + 0x3490], 0
je 0x100939c1
cmp dword [esp + 0x34], 0
jne 0x10093a21
cmp byte [esp + 0x14], 0
jne 0x10093a21
mov dword [esp + 0x38], 0
mov eax, dword [ebp + 0x14]
jmp 0x10093d48
mov edi, dword [ebp + 8]
mov eax, dword [ebp + 0x1c]
movsx esi, byte [edi + 0x100]
test eax, eax
je 0x10093a09
mov edx, dword [esp + 0x1c]
mov ecx, dword [edx + 0x1c8]
cmp eax, 1
jne 0x10093aab
mov eax, dword [edx + 0x3388]
add eax, dword [ecx + 0x1c]
lea ecx, [edi + 0x11e]
jmp 0x10093aba
mov eax, dword [esp + 0x1c]
mov edx, dword [eax + 0x1c4]
mov eax, dword [ebp + 0x14]
add esi, dword [edx + 0x34f0]
jmp 0x10093b0d
cmp dword [ebp + 0x1c], 1
mov ecx, dword [ebp + 8]
mov eax, ecx
sbb eax, 0
mov dword [esp + 0x14], eax
movzx ebx, byte [eax + 0x32]
mov eax, dword [ecx + 0xec]
mov edx, eax
and edx, 0xc0
movzx edi, byte [ebx + edx*2 + 0x102db2d8]
sub eax, edi
mov edx, eax
shl edx, 0x11
mov esi, dword [ecx + 0xe8]
xor ecx, ecx
cmp edx, esi
setl cl
neg ecx
and edx, ecx
sub edi, eax
and edi, ecx
xor ecx, ebx
mov dword [esp + 0xc], ecx
mov cl, byte [ecx + 0x102db558]
mov ebx, dword [esp + 0x14]
mov byte [ebx + 0x32], cl
sub esi, edx
mov cl, byte [edi + eax + str._t_b_a_a]
lea edx, [edi + eax]
mov eax, dword [ebp + 8]
shl edx, cl
shl esi, cl
mov dword [eax + 0xec], edx
mov dword [eax + 0xe8], esi
test si, si
je 0x10093c09
mov dword [esp + 0x14], esi
jmp 0x10093c5a
mov eax, dword [edx + 0x338c]
add eax, dword [ecx + 0x20]
lea ecx, [edi + 0x11f]
movsx edi, byte [ecx]
add edi, eax
mov edx, dword [edx + 0x1c4]
mov ecx, dword [edx + 0x34f0]
mov eax, ecx
neg eax
add edi, esi
cmp edi, 0x39
mov esi, 0x39
cmovl esi, edi
cmp edi, eax
cmovl esi, eax
cmp dword [edx + 4], 1
jne 0x10093afd
cmp esi, 0x1e
jl 0x10093b08
cmp esi, 0x2c
mov eax, dword [ebp + 0x14]
jb 0x10095803
add esi, 0xfffffffa
jmp 0x10093b0b
cmp esi, 0x33
mov eax, 0x33
cmovge esi, eax
mov eax, dword [ebp + 0x14]
add esi, ecx
mov ecx, dword [edx + 0x2c]
lea edi, [ecx + eax]
add edi, 0xfffffffb
mov dword [esp + 0xbc], edi
add ecx, eax
add cl, 0xfa
xor edi, edi
inc edi
mov ebx, edi
shl ebx, cl
mov dword [esp + 0xb8], ebx
mov ebx, eax
movzx eax, byte [esi + 0x102e0d08]
movzx eax, byte [eax + str.__39_H]
mov cl, byte [esi + 0x102e0d54]
shl eax, cl
mov dword [esp + 0xb4], eax
mov dword [esp + 0xa0], 0
cmp byte [edx + 0x2d2], 0
mov dword [esp + 0x94], 0x10
je 0x10093b8b
cmp ebx, 3
mov eax, ebx
jl 0x10093b98
cmp dword [esp + 0x34], 0
je 0x10093b98
mov cl, 0x10
mov dword [esp + 0x40], ecx
mov dword [esp + 0x34], edi
jmp 0x1009386f
mov al, 0x10
mov dword [esp + 0x40], eax
mov eax, ebx
jmp 0x1009386f
mov cl, 0x10
mov dword [esp + 0x40], ecx
mov ebx, eax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x1c8]
lea ecx, [eax + 0x41]
add edx, 0x2d3
cmp byte [eax + 0x40], 0
cmovne edx, ecx
xor eax, eax
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x7a0c], 1
setne al
lea eax, [eax + eax*2]
add eax, dword [ebp + 0x1c]
lea ecx, [ebx + ebx*2]
mov esi, ecx
shl esi, 7
add esi, edx
mov edi, eax
shl edi, 6
add esi, edi
add esi, 0xfffffd00
mov dword [esp + 0xa0], esi
cmp ebx, 4
jl 0x1009386c
lea ecx, [edx + ecx*2]
mov al, byte [eax + ecx + 0x5e8]
mov dword [esp + 0x40], eax
jmp 0x1009386c
mov ebx, eax
mov edi, dword [eax + 0xf4]
movzx eax, byte [edi]
shl eax, 9
movzx ecx, byte [edi + 1]
lea eax, [eax + ecx*2]
add eax, 0xffff0001
mov ecx, esi
neg ecx
and ecx, esi
imul ecx, ecx, 0x77cb531
shr ecx, 0x1b
mov cl, byte [ecx + 0x102d03f0]
add cl, 0xf0
shl eax, cl
add eax, esi
mov dword [esp + 0x14], eax
mov dword [ebx + 0xe8], eax
cmp edi, dword [ebx + 0xf8]
jae 0x10093c5a
add edi, 2
mov dword [ebx + 0xf4], edi
mov eax, dword [ebp + 0x1c]
test byte [esp + 0xc], 1
jne 0x10093c71
mov dword [esp + 0x38], 0
jmp 0x10093d41
cmp eax, 1
mov edi, dword [ebp + 8]
sbb edi, 0
movzx eax, byte [edi + 0x34]
mov dword [esp + 0xc], eax
mov esi, edx
and esi, 0xc0
movzx esi, byte [eax + esi*2 + 0x102db2d8]
sub edx, esi
mov ebx, edx
shl ebx, 0x11
xor eax, eax
cmp ebx, dword [esp + 0x14]
setl al
neg eax
and ebx, eax
sub esi, edx
and esi, eax
xor eax, dword [esp + 0xc]
mov dword [esp + 0x7c], eax
mov cl, byte [eax + 0x102db558]
mov eax, dword [esp + 0x14]
mov byte [edi + 0x34], cl
mov edi, dword [ebp + 8]
sub eax, ebx
mov cl, byte [esi + edx + str._t_b_a_a]
add edx, esi
shl edx, cl
shl eax, cl
mov dword [edi + 0xec], edx
mov dword [edi + 0xe8], eax
test ax, ax
jne 0x10093d2e
mov edx, dword [edi + 0xf4]
movzx ecx, byte [edx]
shl ecx, 9
movzx esi, byte [edx + 1]
lea esi, [ecx + esi*2]
add esi, 0xffff0001
mov ecx, eax
neg ecx
and ecx, eax
imul ecx, ecx, 0x77cb531
shr ecx, 0x1b
mov cl, byte [ecx + 0x102d03f0]
add cl, 0xf0
shl esi, cl
add esi, eax
mov dword [edi + 0xe8], esi
cmp edx, dword [edi + 0xf8]
jae 0x10093d2e
add edx, 2
mov dword [edi + 0xf4], edx
and dword [esp + 0x7c], 1
mov al, 1
mov dword [esp + 0x38], eax
mov dword [esp + 0x68], 0
mov eax, dword [ebp + 0x14]
mov edx, dword [esp + 0x2c]
lea ecx, [eax + eax]
mov dword [esp + 0x18], ecx
cmp dword [ebp + 0x1c], 0
je 0x10093d66
lea ecx, [eax - 2]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x30], 0xf
jmp 0x10093d89
mov eax, dword [ebp + 0x14]
lea eax, [eax + eax*2]
mov ecx, dword [ebp + 0x14]
dec ecx
sar ecx, 2
add eax, ecx
add eax, 0xfffffffa
mov dword [esp + 0x30], eax
mov eax, dword [ebp + 0x14]
lea ecx, [eax + 1]
sar ecx, 2
mov dword [esp + 0x24], ecx
mov ecx, dword [ebp + 0x18]
xor esi, esi
mov edi, 0
cmp dword [esp + 0x18], 2
jl 0x100941b0
add eax, eax
dec eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x30]
add eax, 0x35
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xe8]
mov dword [esp + 0xc], ecx
mov edi, dword [eax + 0xec]
xor esi, esi
mov dword [esp + 0x14], esi
mov ecx, dword [esp + 0x24]
shr esi, cl
add esi, dword [esp + 0x28]
mov eax, dword [ebp + 8]
movzx ecx, byte [eax + esi]
mov dword [esp + 0x10], ecx
mov eax, edi
and eax, 0xc0
movzx ebx, byte [ecx + eax*2 + 0x102db2d8]
sub edi, ebx
mov edx, edi
shl edx, 0x11
xor eax, eax
mov ecx, edi
mov edi, dword [esp + 0xc]
cmp edx, edi
setl al
neg eax
and edx, eax
sub edi, edx
mov edx, dword [ebp + 8]
mov dword [edx + 0xe8], edi
sub ebx, ecx
and ebx, eax
add ebx, ecx
mov dword [edx + 0xec], ebx
xor eax, dword [esp + 0x10]
mov cl, byte [eax + 0x102db558]
mov byte [edx + esi], cl
mov esi, dword [edx + 0xe8]
mov edi, dword [edx + 0xec]
mov cl, byte [edi + str._t_b_a_a]
shl edi, cl
shl esi, cl
mov dword [edx + 0xec], edi
mov dword [edx + 0xe8], esi
test si, si
je 0x10093e56
mov dword [esp + 0xc], esi
jmp 0x10093eaf
mov ecx, dword [ebp + 8]
mov ebx, dword [ecx + 0xf4]
movzx ecx, byte [ebx]
shl ecx, 9
movzx edx, byte [ebx + 1]
lea edx, [ecx + edx*2]
add edx, 0xffff0001
mov ecx, esi
neg ecx
and ecx, esi
imul ecx, ecx, 0x77cb531
shr ecx, 0x1b
mov cl, byte [ecx + 0x102d03f0]
add cl, 0xf0
shl edx, cl
add edx, esi
mov dword [esp + 0xc], edx
mov ecx, dword [ebp + 8]
mov dword [ecx + 0xe8], edx
cmp ebx, dword [ecx + 0xf8]
jae 0x10093eaf
add ebx, 2
mov ecx, dword [ebp + 8]
mov dword [ecx + 0xf4], ebx
mov edx, dword [esp + 0x2c]
mov ecx, dword [ebp + 0x18]
mov esi, dword [esp + 0x14]
test al, 1
je 0x10093ecd
inc esi
cmp dword [esp + 0x20], esi
jne 0x10093dc5
mov esi, dword [esp + 0x20]
mov eax, dword [ebp + 0x14]
xor edi, edi
cmp dword [esp + 0x18], 2
mov dword [esp + 0x14], esi
jl 0x10094006
add dword [esp + 0x30], 0x47
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xe8]
mov dword [esp + 0xc], ecx
mov esi, dword [eax + 0xec]
xor edi, edi
mov dword [esp + 0x44], edi
mov ecx, dword [esp + 0x24]
shr edi, cl
add edi, dword [esp + 0x30]
mov eax, dword [ebp + 8]
movzx ecx, byte [eax + edi]
mov dword [esp + 0x10], ecx
mov eax, esi
and eax, 0xc0
movzx ebx, byte [ecx + eax*2 + 0x102db2d8]
sub esi, ebx
mov edx, esi
shl edx, 0x11
xor eax, eax
mov ecx, esi
mov esi, dword [esp + 0xc]
cmp edx, esi
setl al
neg eax
and edx, eax
sub esi, edx
mov edx, dword [ebp + 8]
mov dword [edx + 0xe8], esi
sub ebx, ecx
and ebx, eax
add ebx, ecx
mov dword [edx + 0xec], ebx
xor eax, dword [esp + 0x10]
mov cl, byte [eax + 0x102db558]
mov byte [edx + edi], cl
mov edi, dword [edx + 0xe8]
mov esi, dword [edx + 0xec]
mov cl, byte [esi + str._t_b_a_a]
shl esi, cl
shl edi, cl
mov dword [edx + 0xec], esi
mov dword [edx + 0xe8], edi
test di, di
je 0x10093f8c
mov dword [esp + 0xc], edi
jmp 0x10093fe1
mov ecx, edx
mov ebx, dword [edx + 0xf4]
movzx ecx, byte [ebx]
shl ecx, 9
movzx edx, byte [ebx + 1]
lea edx, [ecx + edx*2]
add edx, 0xffff0001
mov ecx, edi
neg ecx
and ecx, edi
imul ecx, ecx, 0x77cb531
shr ecx, 0x1b
mov cl, byte [ecx + 0x102d03f0]
add cl, 0xf0
shl edx, cl
add edx, edi
mov ecx, dword [ebp + 8]
mov dword [ecx + 0xe8], edx
cmp ebx, dword [ecx + 0xf8]
mov dword [esp + 0xc], edx
jae 0x10093fe1
add ebx, 2
mov dword [ecx + 0xf4], ebx
mov edx, dword [esp + 0x2c]
mov edi, dword [esp + 0x44]
mov ecx, dword [ebp + 0x18]
test al, 1
je 0x10093fff
inc edi
cmp dword [esp + 0x20], edi
jne 0x10093efb
mov edi, dword [esp + 0x20]
mov eax, dword [ebp + 0x14]
mov esi, dword [esp + 0x14]
cmp esi, 4
mov dword [esp + 0x44], edi
jb 0x100940db
mov ebx, esi
shr ebx, 1
dec ebx
mov eax, dword [ebp + 8]
lea edi, [eax + 0xe8]
mov dword [esp + 0x10], edi
mov esi, dword [edi + 4]
mov eax, dword [edi]
shl esi, 0x11
add eax, eax
sub eax, esi
cdq
and esi, edx
add eax, esi
inc edx
test ax, ax
jne 0x10094057
mov esi, dword [edi + 0xc]
sub eax, 0xffff
movzx ecx, word [esi]
bswap ecx
shr ecx, 0xf
add eax, ecx
cmp esi, dword [edi + 0x10]
jge 0x10094057
add dword [edi + 0xc], 2
mov dword [edi], eax
mov esi, edx
cmp dword [esp + 0x14], 6
mov dword [esp + 0x24], ebx
jb 0x100940b9
cmp ebx, 3
mov ecx, 2
cmovge ecx, ebx
dec ecx
mov edi, dword [esp + 0x10]
mov dword [esp + 0xc], ecx
add esi, esi
mov ebx, dword [edi + 4]
mov eax, dword [edi]
shl ebx, 0x11
add eax, eax
sub eax, ebx
cdq
and ebx, edx
add eax, ebx
inc edx
test ax, ax
jne 0x100940ae
mov ebx, dword [edi + 0xc]
sub eax, 0xffff
movzx ecx, word [ebx]
bswap ecx
shr ecx, 0xf
add eax, ecx
cmp ebx, dword [edi + 0x10]
jge 0x100940ae
add dword [edi + 0xc], 2
mov dword [edi], eax
mov ecx, dword [esp + 0xc]
or esi, edx
dec ecx
jne 0x10094076
mov eax, dword [esp + 0x14]
and eax, 1
or eax, 2
mov ecx, dword [esp + 0x24]
shl eax, cl
add eax, esi
mov esi, eax
mov eax, dword [ebp + 0x14]
mov edx, dword [esp + 0x2c]
mov edi, dword [esp + 0x44]
mov ecx, dword [ebp + 0x18]
cmp edi, 4
jb 0x100941b0
mov dword [esp + 0x14], esi
mov eax, edi
shr eax, 1
dec eax
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 8]
lea ebx, [eax + 0xe8]
mov dword [esp + 0x10], ebx
mov esi, dword [ebx + 4]
mov eax, dword [ebx]
shl esi, 0x11
add eax, eax
sub eax, esi
cdq
and esi, edx
add eax, esi
inc edx
test ax, ax
jne 0x10094130
mov esi, dword [ebx + 0xc]
sub eax, 0xffff
movzx ecx, word [esi]
bswap ecx
shr ecx, 0xf
add eax, ecx
cmp esi, dword [ebx + 0x10]
jge 0x10094130
add dword [ebx + 0xc], 2
mov dword [ebx], eax
mov esi, edx
cmp edi, 6
jb 0x10094190
mov eax, dword [esp + 0x24]
cmp eax, 3
mov ecx, 2
cmovge ecx, eax
dec ecx
mov edi, dword [esp + 0x10]
mov dword [esp + 0xc], ecx
add esi, esi
mov ebx, dword [edi + 4]
mov eax, dword [edi]
shl ebx, 0x11
add eax, eax
sub eax, ebx
cdq
and ebx, edx
add eax, ebx
inc edx
test ax, ax
jne 0x10094185
mov ebx, dword [edi + 0xc]
sub eax, 0xffff
movzx ecx, word [ebx]
bswap ecx
shr ecx, 0xf
add eax, ecx
cmp ebx, dword [edi + 0x10]
jge 0x10094185
add dword [edi + 0xc], 2
mov dword [edi], eax
mov ecx, dword [esp + 0xc]
or esi, edx
dec ecx
jne 0x1009414d
mov edi, dword [esp + 0x44]
and edi, 1
or edi, 2
mov ecx, dword [esp + 0x24]
shl edi, cl
add edi, esi
mov eax, dword [ebp + 0x14]
mov edx, dword [esp + 0x2c]
mov ecx, dword [ebp + 0x18]
mov esi, dword [esp + 0x14]
cmp ecx, 2
mov ebx, esi
cmove ebx, edi
cmove edi, esi
mov ecx, ebx
sar ecx, 2
mov dword [esp + 0x88], ecx
mov ecx, edi
sar ecx, 2
mov dword [esp + 0x80], ecx
mov ecx, dword [ebp + 0x18]
cmp ecx, 1
mov dword [esp + 0x44], edi
mov dword [esp + 0xcc], ebx
je 0x10094270
test ecx, ecx
jne 0x1009429d
mov eax, ebx
and eax, 3
mov ecx, edi
and ecx, 3
movzx ecx, byte [eax + ecx*4 + 0x102e0da0]
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x78], 0x102e1111
mov dword [esp + 0x74], 0x102e1101
cmp eax, 2
je 0x100942ca
cmp eax, 4
je 0x100942dc
mov dword [esp + 0x8c], ecx
cmp eax, 3
jne 0x10094320
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x80]
movzx eax, byte [eax + ecx*2 + 0x102e0db0]
shl eax, 4
mov ecx, dword [esp + 0x8c]
add ecx, eax
mov dword [esp + 0x50], 0x102e0db4
mov dword [esp + 0x54], 0x102e0db8
jmp 0x10094352
movzx ecx, byte [ebx + edi*8 + 0x102e0e1c]
mov dword [esp + 0x50], 0x102e0db8
mov dword [esp + 0x54], 0x102e0db4
mov dword [esp + 0x78], 0x102e0e0c
mov dword [esp + 0x74], 0x102e0dfc
jmp 0x10094355
movzx ecx, byte [edi + ebx*8 + 0x102e0e1c]
mov dword [esp + 0x50], 0x102e0db4
mov dword [esp + 0x54], 0x102e0db8
mov dword [esp + 0x78], 0x102e0dfc
mov dword [esp + 0x74], 0x102e0e0c
jmp 0x10094355
mov dword [esp + 0x54], 0x102a8dba
mov dword [esp + 0x50], 0x102a8dba
jmp 0x10094355
mov eax, dword [esp + 0x88]
mov edi, ecx
mov ecx, dword [esp + 0x80]
movzx eax, byte [eax + ecx*4 + 0x102e0da0]
mov ecx, edi
shl eax, 4
add ecx, eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x78], 0x102e1111
mov dword [esp + 0x74], 0x102e1101
mov dword [esp + 0x54], 0x102e1111
mov dword [esp + 0x50], 0x102e1101
jmp 0x10094355
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x80]
movzx eax, byte [eax + ecx*8 + 0x102e0dbc]
shl eax, 4
mov ecx, dword [esp + 0x8c]
add ecx, eax
mov dword [esp + 0x50], 0x102e1121
mov dword [esp + 0x54], 0x102e1161
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x8c], ecx
shr ecx, 4
mov dword [esp + 0x90], ecx
dec edx
sar edx, 2
mov dword [esp + 0x2c], edx
mov ecx, eax
add cl, 0xfe
xor ebx, ebx
dec ebx
shl ebx, cl
xor ecx, ecx
xor eax, eax
mov edx, dword [ebp + 0x1c]
test edx, edx
sete cl
setg al
mov edi, 0x1b
cmove edi, edx
mov edx, ecx
xor edx, 0x29
mov dword [esp + 0xb0], edx
cmp dword [ebp + 0x18], 0
mov edx, 0xf
mov esi, 9
cmove edx, esi
mov dword [esp + 0xd0], edx
lea edx, [ecx + ecx]
mov dword [esp + 0xf4], edx
lea edx, [ecx + ecx]
inc edx
mov dword [esp + 0xf8], edx
xor ecx, 0x2b
mov dword [esp + 0xac], ecx
cmp dword [esp + 0x34], 0
mov edx, dword [esp + 0x9c]
setne cl
and edx, 0xffffffef
mov dword [esp + 0xa8], edx
cmp edx, 0xa
sete dl
or dl, byte [esp + 0x38]
mov byte [esp + 0x4e], dl
add eax, eax
add eax, 0x59
mov dword [esp + 0xfc], eax
xor eax, eax
cmp dword [ebp + 0x14], 3
setne al
setge dl
and dl, cl
mov byte [esp + 0x4f], dl
movzx ecx, byte [esp + 0x40]
mov dword [esp + 0x104], ecx
lea eax, [eax + eax*2]
not ebx
mov dword [esp + 0x100], ebx
lea eax, [edi + eax + 9]
mov dword [esp + 0xf0], eax
pcmpeqd xmm0, xmm0
mov eax, dword [ebp + 8]
add eax, 0xe8
mov dword [esp + 0x14], eax
mov dword [esp + 0x84], edi
lea eax, [edi + 3]
mov dword [esp + 0xec], eax
xor eax, eax
inc eax
mov dword [esp + 0x38], eax
mov edx, dword [esp + 0x90]
mov eax, edx
mov ebx, dword [esp + 0x5c]
movdqa xmmword [esp + 0x110], xmm0
mov ecx, eax
mov eax, dword [esp + 0x50]
movzx eax, byte [eax + edx]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x54]
movzx edi, byte [eax + edx]
add ecx, 0xffffffff
mov dword [esp + 0x6c], ecx
setb al
mov dword [esp + 0x58], edx
cmp edx, dword [esp + 0x90]
mov dword [esp + 0x60], edi
jge 0x100945f1
test al, al
je 0x100945f1
xor eax, eax
mov ecx, dword [esp + 0x100]
cmp dword [esp + 0x3c], ecx
jge 0x100944d5
mov eax, dword [esp + 0x3c]
lea eax, [esp + eax*8]
add eax, 0x120
movzx eax, byte [edi + eax + 8]
cmp edi, ecx
mov edx, dword [ebp + 8]
jge 0x100944f0
mov ecx, dword [esp + 0x3c]
lea ecx, [esp + ecx*8]
add ecx, 0x120
movzx ecx, byte [edi + ecx + 1]
add eax, ecx
test eax, eax
mov ecx, 1
cmovg eax, ecx
add eax, dword [esp + 0xfc]
mov dword [esp + 0xc], eax
movzx ecx, byte [edx + eax]
mov esi, dword [edx + 0xec]
mov edx, esi
and edx, 0xc0
movzx edi, byte [ecx + edx*2 + 0x102db2d8]
sub esi, edi
mov ebx, esi
shl ebx, 0x11
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0xe8]
xor eax, eax
cmp ebx, edx
setl al
neg eax
and ebx, eax
sub edx, ebx
mov ebx, dword [ebp + 8]
mov dword [ebx + 0xe8], edx
sub edi, esi
and edi, eax
add edi, esi
mov edx, dword [ebp + 8]
mov dword [edx + 0xec], edi
mov edi, dword [ebp + 8]
xor eax, ecx
mov ebx, eax
mov cl, byte [eax + 0x102db558]
mov eax, dword [esp + 0xc]
mov byte [edi + eax], cl
mov eax, dword [edi + 0xe8]
mov edx, dword [edi + 0xec]
mov cl, byte [edx + str._t_b_a_a]
shl edx, cl
shl eax, cl
mov dword [edi + 0xec], edx
mov dword [edi + 0xe8], eax
test ax, ax
jne 0x100945db
mov esi, dword [edi + 0xf4]
movzx ecx, byte [esi]
shl ecx, 9
movzx edx, byte [esi + 1]
lea edx, [ecx + edx*2]
add edx, 0xffff0001
mov ecx, eax
neg ecx
and ecx, eax
imul ecx, ecx, 0x77cb531
shr ecx, 0x1b
mov cl, byte [ecx + 0x102d03f0]
add cl, 0xf0
shl edx, cl
add edx, eax
mov dword [edi + 0xe8], edx
cmp esi, dword [edi + 0xf8]
jae 0x100945db
add esi, 2
mov dword [edi + 0xf4], esi
mov ecx, ebx
and cl, 1
xor eax, eax
inc eax
mov dword [esp + 0x18], eax
mov ebx, dword [esp + 0x5c]
mov edi, dword [esp + 0x60]
jmp 0x1009461a
mov eax, dword [esp + 0x3c]
cmp dword [esp + 0x88], eax
jne 0x10094609
mov cl, 1
cmp dword [esp + 0x80], edi
je 0x10094612
mov eax, dword [esp + 0x3c]
or eax, edi
sete cl
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x3c]
lea eax, [esp + eax*8]
add eax, 0x120
mov dword [esp + 0x10], ecx
mov byte [edi + eax], cl
xor ecx, ecx
mov edx, dword [esp + 0x58]
cmp edx, dword [esp + 0x90]
jne 0x1009465e
shl edx, 4
mov ebx, dword [esp + 0x8c]
sub ebx, edx
lea esi, [ebx - 1]
mov byte [esp + 0x110], bl
mov ebx, dword [esp + 0x5c]
mov dl, 1
mov dword [esp + 0xc], edx
jmp 0x1009466b
mov esi, 0xf
mov dword [esp + 0xc], 0
mov edx, dword [esp + 0x2c]
cmp edx, dword [esp + 0x3c]
jle 0x1009467f
xor ecx, ecx
cmp byte [edi + eax + 8], 0
setne cl
cmp edx, edi
jle 0x10094690
xor edx, edx
cmp byte [edi + eax + 1], 0
setne dl
lea ecx, [ecx + edx*2]
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x10]
test dl, dl
je 0x10094709
mov edx, esi
test esi, esi
js 0x10094709
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x1c4]
cmp dword [eax + 0x3488], 0
je 0x10094712
mov dword [esp + 0x28], 0x102e0e9c
mov ebx, dword [esp + 0xb0]
cmp dword [esp + 0x34], 0
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
jne 0x1009476d
cmp byte [edx + 0x7a16], 0
mov ebx, 0x102e0e5c
mov edi, 0x102e0e9c
cmovne ebx, edi
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x84]
cmovne ebx, dword [esp + 0xb0]
jne 0x1009476d
cmp eax, 2
mov edi, dword [esp + 0x60]
jne 0x1009472a
jmp 0x1009476d
mov ecx, dword [esp + 0xc]
jmp 0x10094a1c
mov dword [esp + 0x28], 0x102e0e5c
mov ebx, dword [esp + 0x84]
cmp dword [ebp + 0x14], 2
mov edx, dword [ebp + 8]
je 0x1009476d
shl ecx, 4
lea eax, [ecx + 0x102e0e6c]
mov dword [esp + 0x28], eax
cmp dword [ebp + 0x1c], 0
je 0x10094746
mov ebx, dword [esp + 0xf0]
jmp 0x1009476d
mov eax, dword [esp + 0x3c]
or eax, edi
mov ebx, dword [esp + 0x84]
cmovne ebx, dword [esp + 0xec]
cmp dword [ebp + 0x14], 3
jne 0x1009476a
add ebx, dword [esp + 0xd0]
jmp 0x1009476d
add ebx, 0x15
test esi, esi
mov dword [esp + 0x40], ebx
je 0x100948c5
lea eax, [ebx + 0x5d]
mov dword [esp + 0x30], eax
mov eax, dword [edx + 0xe8]
mov dword [esp + 0x10], eax
mov edi, dword [edx + 0xec]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x74]
movzx eax, byte [eax + esi]
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x20], esi
movzx ecx, byte [ecx + esi]
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x28]
movzx eax, byte [ecx + eax]
add eax, dword [esp + 0x30]
mov ecx, dword [ebp + 8]
movzx ecx, byte [ecx + eax]
mov dword [esp + 0x24], ecx
mov edx, edi
and edx, 0xc0
movzx ebx, byte [ecx + edx*2 + 0x102db2d8]
sub edi, ebx
mov esi, edi
shl esi, 0x11
xor edx, edx
mov ecx, edi
mov edi, dword [esp + 0x10]
cmp esi, edi
setl dl
neg edx
and esi, edx
sub edi, esi
mov esi, dword [ebp + 8]
mov dword [esi + 0xe8], edi
sub ebx, ecx
and ebx, edx
add ebx, ecx
mov dword [esi + 0xec], ebx
xor edx, dword [esp + 0x24]
mov cl, byte [edx + 0x102db558]
mov byte [esi + eax], cl
mov eax, dword [esi + 0xe8]
mov edi, dword [esi + 0xec]
mov cl, byte [edi + str._t_b_a_a]
shl edi, cl
shl eax, cl
mov dword [esi + 0xec], edi
mov dword [esi + 0xe8], eax
test ax, ax
je 0x1009483d
mov esi, eax
jmp 0x10094892
mov ecx, dword [ebp + 8]
mov ebx, dword [ecx + 0xf4]
movzx ecx, byte [ebx]
shl ecx, 9
movzx esi, byte [ebx + 1]
lea esi, [ecx + esi*2]
add esi, 0xffff0001
mov ecx, eax
neg ecx
and ecx, eax
imul ecx, ecx, 0x77cb531
shr ecx, 0x1b
mov cl, byte [ecx + 0x102d03f0]
add cl, 0xf0
shl esi, cl
add esi, eax
mov eax, dword [ebp + 8]
mov dword [eax + 0xe8], esi
cmp ebx, dword [eax + 0xf8]
jae 0x10094892
add ebx, 2
mov eax, dword [ebp + 8]
mov dword [eax + 0xf4], ebx
mov ecx, dword [esp + 0xc]
mov ebx, dword [esp + 0x20]
test dl, 1
mov dword [esp + 0x10], esi
je 0x100948b7
movzx eax, cl
mov byte [esp + eax + 0x110], bl
inc cl
mov dword [esp + 0x18], 0
lea esi, [ebx - 1]
cmp ebx, 1
jg 0x10094794
jmp 0x100948c9
mov ecx, dword [esp + 0xc]
cmp dword [esp + 0x18], 0
jne 0x10094a07
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x1c4]
cmp dword [eax + 0x3488], 0
mov eax, dword [ebp + 8]
je 0x1009490c
mov ecx, dword [esp + 0xac]
cmp dword [esp + 0x34], 0
jne 0x10094920
cmp byte [eax + 0x7a16], 0
mov ecx, dword [esp + 0xac]
jne 0x10094920
mov ecx, dword [esp + 0x40]
add ecx, 2
cmp dword [esp + 0x58], 0
cmove ecx, dword [esp + 0x84]
mov dword [esp + 0x10], ecx
movzx edx, byte [ecx + eax + 0x5d]
mov esi, dword [eax + 0xec]
mov eax, esi
and eax, 0xc0
movzx edi, byte [edx + eax*2 + 0x102db2d8]
sub esi, edi
mov ebx, esi
shl ebx, 0x11
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xe8]
xor eax, eax
cmp ebx, ecx
setl al
neg eax
and ebx, eax
sub ecx, ebx
mov ebx, dword [ebp + 8]
mov dword [ebx + 0xe8], ecx
sub edi, esi
and edi, eax
add edi, esi
mov ecx, dword [ebp + 8]
mov dword [ecx + 0xec], edi
mov edi, dword [ebp + 8]
xor eax, edx
mov cl, byte [eax + 0x102db558]
mov edx, dword [esp + 0x10]
mov byte [edx + edi + 0x5d], cl
mov edx, dword [edi + 0xe8]
mov esi, dword [edi + 0xec]
mov cl, byte [esi + str._t_b_a_a]
shl esi, cl
shl edx, cl
mov dword [edi + 0xec], esi
mov dword [edi + 0xe8], edx
test dx, dx
jne 0x100949ff
mov esi, dword [edi + 0xf4]
movzx ecx, byte [esi]
shl ecx, 9
movzx edi, byte [esi + 1]
lea edi, [ecx + edi*2]
add edi, 0xffff0001
mov ecx, edx
neg ecx
and ecx, edx
imul ecx, ecx, 0x77cb531
shr ecx, 0x1b
mov cl, byte [ecx + 0x102d03f0]
add cl, 0xf0
shl edi, cl
add edi, edx
mov ecx, dword [ebp + 8]
mov dword [ecx + 0xe8], edi
mov ecx, dword [ebp + 8]
cmp esi, dword [ecx + 0xf8]
jae 0x100949ff
add esi, 2
mov dword [ecx + 0xf4], esi
test al, 1
mov ecx, dword [esp + 0xc]
je 0x10094a14
movzx eax, cl
mov byte [esp + eax + 0x110], 0
inc cl
mov ebx, dword [esp + 0x5c]
mov eax, dword [esp + 0x6c]
test cl, cl
je 0x100955a2
mov esi, ecx
cmp dword [esp + 0x58], 0
setne al
cmp dword [ebp + 0x1c], 0
sete cl
and cl, al
movzx eax, cl
add eax, eax
mov dword [esp + 0x18], eax
xor edx, edx
dec edx
mov dword [esp + 0x10c], edx
mov dword [esp + 0x108], edx
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x1c4]
cmp dword [eax + 0x34a0], 0
je 0x10094aa0
cmp dword [esp + 0x34], 0
mov edi, dword [ebp + 8]
jne 0x10094a7e
cmp byte [edi + 0x7a16], 0
mov eax, dword [esp + 0xf4]
je 0x10094a85
mov eax, dword [esp + 0xf8]
mov dword [esp + 0x98], eax
movzx eax, byte [edi + eax + 0xc7]
shr eax, 2
mov dword [esp + 0x20], eax
xor edx, edx
dec edx
jmp 0x10094ab4
mov dword [esp + 0x20], 0
mov eax, edx
mov dword [esp + 0x98], edx
mov edi, dword [ebp + 8]
mov eax, dword [esp + 0x58]
mov ecx, esi
movzx esi, cl
cmp eax, dword [esp + 0x90]
setne al
cmp dword [esp + 0x38], 0
sete cl
and cl, al
movzx eax, cl
or dword [esp + 0x18], eax
cmp esi, 8
mov ebx, 8
mov dword [esp + 0x30], esi
cmovb ebx, esi
xor ecx, ecx
inc ecx
mov dword [esp + 0x64], edx
mov dword [esp + 0x24], ebx
test ebx, ebx
je 0x10094c51
mov eax, dword [esp + 0x18]
lea eax, [eax*4]
mov dword [esp + 0x28], eax
mov ebx, dword [edi + 0xe8]
mov esi, dword [edi + 0xec]
xor edx, edx
xor eax, eax
dec eax
mov dword [esp + 0x64], eax
xor ecx, ecx
inc ecx
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x28]
lea eax, [ecx + edx]
cmp dword [ebp + 0x1c], 0
mov dword [esp + 0x38], ecx
lea ecx, [ecx + edx + 0x10]
cmovle ecx, eax
mov dword [esp + 0xc], ecx
movzx edx, byte [ecx + edi + 0x89]
mov eax, esi
and eax, 0xc0
movzx edi, byte [edx + eax*2 + 0x102db2d8]
sub esi, edi
mov ecx, esi
mov esi, ebx
mov ebx, ecx
shl ebx, 0x11
xor eax, eax
cmp ebx, esi
setl al
neg eax
and ebx, eax
sub esi, ebx
mov ebx, dword [ebp + 8]
mov dword [ebx + 0xe8], esi
sub edi, ecx
and edi, eax
add edi, ecx
mov esi, dword [ebp + 8]
mov dword [esi + 0xec], edi
mov edi, dword [ebp + 8]
xor eax, edx
mov dl, byte [eax + 0x102db558]
mov ecx, dword [esp + 0xc]
mov byte [ecx + edi + 0x89], dl
mov edx, dword [edi + 0xe8]
mov esi, dword [edi + 0xec]
mov cl, byte [esi + str._t_b_a_a]
shl esi, cl
shl edx, cl
mov dword [edi + 0xec], esi
mov dword [edi + 0xe8], edx
test dx, dx
je 0x10094bc7
mov ebx, edx
jmp 0x10094c18
mov edi, dword [edi + 0xf4]
movzx ecx, byte [edi]
shl ecx, 9
movzx ebx, byte [edi + 1]
lea ebx, [ecx + ebx*2]
add ebx, 0xffff0001
mov ecx, edx
neg ecx
and ecx, edx
imul ecx, ecx, 0x77cb531
shr ecx, 0x1b
mov cl, byte [ecx + 0x102d03f0]
add cl, 0xf0
shl ebx, cl
mov ecx, dword [ebp + 8]
add ebx, edx
mov dword [ecx + 0xe8], ebx
cmp edi, dword [ecx + 0xf8]
jae 0x10094c16
add edi, 2
mov dword [ecx + 0xf4], edi
mov edi, ecx
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x10]
and al, 1
mov byte [esp + edx + 0x108], al
jne 0x10094c36
lea eax, [ecx - 1]
cmp eax, 2
adc ecx, 0
jmp 0x10094c46
mov eax, dword [esp + 0x64]
cmp eax, 0xffffffff
cmove eax, edx
mov dword [esp + 0x64], eax
xor ecx, ecx
inc edx
cmp dword [esp + 0x24], edx
jne 0x10094b21
mov eax, dword [esp + 0x30]
movzx eax, byte [esp + eax + 0x10f]
mov dword [esp + 0xc0], eax
mov dword [esp + 0xa4], 0
cmp byte [edi + 0x7a16], 0
mov dword [esp + 0x38], ecx
je 0x10094c82
mov edx, dword [esp + 0x1c]
jmp 0x10094cd3
movzx eax, byte [esp + 0x110]
cmp dword [edi + 0x7a0c], 1
mov edx, dword [esp + 0x1c]
jne 0x10094cb6
mov ecx, dword [edx + 0x1c4]
cmp dword [ecx + 0x348c], 0
je 0x10094cb6
cmp dword [esp + 0x34], 0
je 0x10094cb6
cmp byte [esp + 0x4e], 0
je 0x10094cbd
jmp 0x10094cd3
cmp byte [esp + 0x68], 0
je 0x10094cd3
sub eax, dword [esp + 0xc0]
xor ecx, ecx
cmp eax, 4
setge cl
mov dword [esp + 0xa4], ecx
cmp dword [esp + 0x64], 0xffffffff
je 0x10094dcf
mov eax, dword [esp + 0x18]
lea ecx, [eax + 4]
cmp dword [ebp + 0x1c], 0
cmovle ecx, eax
mov dword [esp + 0xc], ecx
movzx ecx, byte [ecx + edi + 0xa1]
mov edx, dword [edi + 0xec]
mov eax, edx
and eax, 0xc0
movzx ebx, byte [ecx + eax*2 + 0x102db2d8]
sub edx, ebx
mov esi, edx
shl esi, 0x11
mov edi, dword [edi + 0xe8]
mov dword [esp + 0x24], edi
xor eax, eax
cmp esi, edi
setl al
neg eax
and esi, eax
sub ebx, edx
and ebx, eax
xor eax, ecx
mov dword [esp + 0x10], eax
mov cl, byte [eax + 0x102db558]
mov edi, dword [esp + 0xc]
mov eax, dword [ebp + 8]
mov byte [edi + eax + 0xa1], cl
mov edi, dword [esp + 0x24]
sub edi, esi
mov cl, byte [ebx + edx + str._t_b_a_a]
add edx, ebx
mov ebx, dword [ebp + 8]
shl edx, cl
shl edi, cl
mov dword [ebx + 0xec], edx
mov dword [ebx + 0xe8], edi
test di, di
jne 0x10094dba
mov edx, dword [ebx + 0xf4]
movzx ecx, byte [edx]
shl ecx, 9
movzx esi, byte [edx + 1]
lea esi, [ecx + esi*2]
add esi, 0xffff0001
mov ecx, edi
neg ecx
and ecx, edi
imul ecx, ecx, 0x77cb531
shr ecx, 0x1b
mov cl, byte [ecx + 0x102d03f0]
add cl, 0xf0
shl esi, cl
add esi, edi
mov dword [ebx + 0xe8], esi
cmp edx, dword [ebx + 0xf8]
jae 0x10094dba
add edx, 2
mov dword [ebx + 0xf4], edx
mov eax, dword [esp + 0x10]
and al, 1
mov ecx, dword [esp + 0x64]
add byte [esp + ecx + 0x108], al
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0x1c8]
cmp byte [eax + 4], 0
je 0x10094e65
cmp dword [esp + 0xa4], 0
je 0x10094e65
mov eax, dword [esp + 0x30]
lea esi, [eax - 1]
xor edi, edi
and esi, 0xff
je 0x10094e41
add edi, edi
mov dword [esp + 0x28], edi
mov ebx, dword [esp + 0x14]
mov edi, dword [ebx + 4]
mov eax, dword [ebx]
shl edi, 0x11
add eax, eax
sub eax, edi
cdq
and edi, edx
add eax, edi
inc edx
test ax, ax
jne 0x10094e36
mov edi, dword [ebx + 0xc]
sub eax, 0xffff
movzx ecx, word [edi]
bswap ecx
shr ecx, 0xf
add eax, ecx
cmp edi, dword [ebx + 0x10]
jge 0x10094e36
add dword [ebx + 0xc], 2
mov dword [ebx], eax
mov edi, dword [esp + 0x28]
or edi, edx
dec esi
jne 0x10094dfa
mov cl, 0x11
mov edx, dword [esp + 0x30]
sub cl, dl
shl edi, cl
cmp edx, 2
mov eax, 1
cmovb edx, eax
mov dword [esp + 0xc8], edx
mov eax, dword [esp + 0x60]
mov esi, edi
jmp 0x10094ed0
mov ecx, dword [esp + 0x30]
cmp ecx, 2
mov esi, 1
cmovae esi, ecx
xor edx, edx
mov dword [esp + 0xc8], esi
add edx, edx
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0x14]
mov ebx, dword [edi + 4]
mov eax, dword [edi]
shl ebx, 0x11
add eax, eax
sub eax, ebx
cdq
and ebx, edx
add eax, ebx
inc edx
test ax, ax
jne 0x10094eb9
mov ebx, dword [edi + 0xc]
sub eax, 0xffff
movzx ecx, word [ebx]
bswap ecx
shr ecx, 0xf
add eax, ecx
cmp ebx, dword [edi + 0x10]
jge 0x10094eb9
add dword [edi + 0xc], 2
mov dword [edi], eax
or edx, dword [esp + 0xc]
dec esi
jne 0x10094e7d
mov cl, 0x10
sub cl, byte [esp + 0x30]
shl edx, cl
mov eax, dword [esp + 0x60]
mov esi, edx
shl dword [esp + 0x3c], 2
shl eax, 2
mov dword [esp + 0xc4], 0
mov dword [esp + 0x48], 0
xor ecx, ecx
mov dword [esp + 0x60], eax
movzx edx, byte [esp + ecx + 0x110]
mov eax, dword [esp + 0x74]
movzx eax, byte [eax + edx]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x78]
movzx eax, byte [eax + edx]
mov dword [esp + 0x24], eax
cmp ecx, 8
mov dword [esp + 0x30], ecx
mov dword [esp + 0x40], edx
jae 0x10094fac
mov ebx, esi
movzx edi, byte [esp + ecx + 0x108]
inc edi
xor eax, eax
cmp ecx, dword [esp + 0x64]
sete al
or eax, 2
cmp edi, eax
jne 0x1009507e
mov dword [esp + 0x18], edi
mov dword [esp + 0x28], ebx
mov eax, dword [esp + 0x20]
add eax, 0xfffffffd
xor esi, esi
mov dword [esp + 0xc], eax
mov ebx, dword [esp + 0x14]
mov edi, dword [ebx + 4]
mov eax, dword [ebx]
shl edi, 0x11
add eax, eax
sub eax, edi
cdq
and edi, edx
add eax, edi
inc edx
test ax, ax
jne 0x10094f8c
mov edi, dword [ebx + 0xc]
sub eax, 0xffff
movzx ecx, word [edi]
bswap ecx
shr ecx, 0xf
add eax, ecx
cmp edi, dword [ebx + 0x10]
jge 0x10094f8c
add dword [ebx + 0xc], 2
mov dword [ebx], eax
test edx, edx
je 0x1009508d
dec esi
mov eax, dword [esp + 0xc]
inc eax
cmp esi, 0xffffffe1
jne 0x10094f52
xor ebx, ebx
mov ecx, dword [esp + 0x20]
jmp 0x100952db
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x20]
add eax, 0xfffffffd
xor ebx, ebx
mov dword [esp + 0xc], eax
mov edi, dword [esp + 0x14]
mov esi, dword [edi + 4]
mov eax, dword [edi]
shl esi, 0x11
add eax, eax
sub eax, esi
cdq
and esi, edx
add eax, esi
inc edx
test ax, ax
jne 0x10094ff3
mov esi, dword [edi + 0xc]
sub eax, 0xffff
movzx ecx, word [esi]
bswap ecx
shr ecx, 0xf
add eax, ecx
cmp esi, dword [edi + 0x10]
jge 0x10094ff3
add dword [edi + 0xc], 2
mov dword [edi], eax
test edx, edx
je 0x1009500b
dec ebx
mov eax, dword [esp + 0xc]
inc eax
cmp ebx, 0xffffffe1
jne 0x10094fb9
xor esi, esi
jmp 0x10095203
mov eax, ebx
neg eax
cmp eax, 2
ja 0x100950fc
mov dword [esp + 0x18], eax
mov ebx, dword [esp + 0x20]
xor edi, edi
test ebx, ebx
jle 0x1009506d
mov dword [esp + 0xc], ebx
add edi, edi
mov ebx, dword [esp + 0x14]
mov esi, dword [ebx + 4]
mov eax, dword [ebx]
shl esi, 0x11
add eax, eax
sub eax, esi
cdq
and esi, edx
add eax, esi
inc edx
test ax, ax
jne 0x10095062
mov esi, dword [ebx + 0xc]
sub eax, 0xffff
movzx ecx, word [esi]
bswap ecx
shr ecx, 0xf
add eax, ecx
cmp esi, dword [ebx + 0x10]
jge 0x10095062
add dword [ebx + 0xc], 2
mov dword [ebx], eax
mov ebx, dword [esp + 0xc]
or edi, edx
dec ebx
jne 0x10095026
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x18]
shl esi, cl
add esi, edi
jmp 0x10095203
mov dword [esp + 0xc], 0
mov esi, ebx
jmp 0x100953ab
mov eax, esi
neg eax
cmp eax, 2
ja 0x10095172
mov dword [esp + 0x70], eax
mov ebx, dword [esp + 0x20]
xor esi, esi
test ebx, ebx
jle 0x100950ef
mov dword [esp + 0xc], ebx
add esi, esi
mov ebx, dword [esp + 0x14]
mov edi, dword [ebx + 4]
mov eax, dword [ebx]
shl edi, 0x11
add eax, eax
sub eax, edi
cdq
and edi, edx
add eax, edi
inc edx
test ax, ax
jne 0x100950e4
mov edi, dword [ebx + 0xc]
sub eax, 0xffff
movzx ecx, word [edi]
bswap ecx
shr ecx, 0xf
add eax, ecx
cmp edi, dword [ebx + 0x10]
jge 0x100950e4
add dword [ebx + 0xc], 2
mov dword [ebx], eax
mov ebx, dword [esp + 0xc]
or esi, edx
dec ebx
jne 0x100950a8
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 0x70]
jmp 0x100952d7
mov eax, dword [esp + 0x20]
sub eax, ebx
add eax, 0xfffffffd
xor esi, esi
cmp eax, 0x16
jg 0x10095203
mov ecx, 0xfffffffd
sub ecx, ebx
mov dword [esp + 0x18], ecx
test eax, eax
mov eax, dword [esp + 0xc]
jle 0x100951ed
xor ebx, ebx
mov dword [esp + 0xc], eax
add ebx, ebx
mov edi, dword [esp + 0x14]
mov esi, dword [edi + 4]
mov eax, dword [edi]
shl esi, 0x11
add eax, eax
sub eax, esi
cdq
and esi, edx
add eax, esi
inc edx
test ax, ax
jne 0x10095165
mov esi, dword [edi + 0xc]
sub eax, 0xffff
movzx ecx, word [esi]
bswap ecx
shr ecx, 0xf
add eax, ecx
cmp esi, dword [edi + 0x10]
jge 0x10095165
add dword [edi + 0xc], 2
mov dword [edi], eax
mov eax, dword [esp + 0xc]
or ebx, edx
dec eax
jne 0x10095129
jmp 0x100951ef
mov ecx, dword [esp + 0x20]
mov eax, ecx
sub eax, esi
add eax, 0xfffffffd
xor ebx, ebx
cmp eax, 0x16
jg 0x100952db
mov ecx, 0xfffffffd
sub ecx, esi
mov dword [esp + 0x70], ecx
test eax, eax
mov eax, dword [esp + 0xc]
jle 0x100952c5
xor esi, esi
mov dword [esp + 0xc], eax
add esi, esi
mov ebx, dword [esp + 0x14]
mov edi, dword [ebx + 4]
mov eax, dword [ebx]
shl edi, 0x11
add eax, eax
sub eax, edi
cdq
and edi, edx
add eax, edi
inc edx
test ax, ax
jne 0x100951dd
mov edi, dword [ebx + 0xc]
sub eax, 0xffff
movzx ecx, word [edi]
bswap ecx
shr ecx, 0xf
add eax, ecx
cmp edi, dword [ebx + 0x10]
jge 0x100951dd
add dword [ebx + 0xc], 2
mov dword [ebx], eax
mov eax, dword [esp + 0xc]
or esi, edx
dec eax
jne 0x100951a1
jmp 0x100952c7
xor ebx, ebx
xor esi, esi
inc esi
mov ecx, dword [esp + 0x18]
shl esi, cl
add esi, 2
mov ecx, dword [esp + 0x20]
shl esi, cl
add esi, ebx
mov edx, 3
mov ecx, dword [esp + 0x20]
shl edx, cl
lea edi, [esi + 1]
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x1c4]
mov eax, dword [eax + 0x34a0]
cmp esi, edx
jl 0x1009523e
cmp ecx, 3
mov edx, edi
mov edi, 3
cmovl edi, ecx
test eax, eax
cmovne edi, ecx
inc edi
mov dword [esp + 0x20], edi
mov edi, edx
mov ecx, edi
sar ecx, 0x1f
mov dword [esp + 0xc], ecx
test eax, eax
je 0x100953a7
cmp dword [esp + 0x48], 0
jne 0x100953a7
mov dword [esp + 0x18], edi
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x98]
movzx eax, byte [eax + ecx + 0xc7]
mov ecx, eax
shr ecx, 2
mov ebx, esi
mov esi, 3
shl esi, cl
cmp ebx, esi
jge 0x100952a9
add ebx, ebx
xor esi, esi
inc esi
shl esi, cl
cmp ebx, esi
jge 0x1009539c
test al, al
mov esi, dword [esp + 0x28]
je 0x100952b9
mov esi, dword [esp + 0x18]
sar esi, 0x1f
mov dword [esp + 0xc], esi
jmp 0x10095374
mov ecx, dword [esp + 0x18]
sar ecx, 0x1f
mov dword [esp + 0xc], ecx
jmp 0x10095378
xor eax, eax
inc eax
mov dword [esp + 0x48], eax
jmp 0x10095396
xor esi, esi
xor ebx, ebx
inc ebx
mov ecx, dword [esp + 0x70]
shl ebx, cl
add ebx, 2
mov ecx, dword [esp + 0x20]
shl ebx, cl
add ebx, esi
mov edx, ebx
sar edx, 0x1f
mov edi, dword [esp + 0x18]
add edi, ebx
adc edx, 0
mov eax, 3
shl eax, cl
mov esi, eax
sar esi, 0x1f
mov dword [esp + 0x18], edi
cmp eax, edi
sbb esi, edx
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x1c4]
mov eax, dword [eax + 0x34a0]
mov dword [esp + 0x70], ebx
mov dword [esp + 0xc], edx
jge 0x1009532c
cmp ecx, 3
mov esi, 3
cmovl esi, ecx
test eax, eax
cmovne esi, ecx
inc esi
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x28]
test eax, eax
mov edi, dword [esp + 0x18]
je 0x100953ab
cmp dword [esp + 0x48], 0
jne 0x100953ab
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x98]
movzx eax, byte [eax + ecx + 0xc7]
mov ecx, eax
shr ecx, 2
mov esi, 3
shl esi, cl
mov ebx, dword [esp + 0x70]
cmp ebx, esi
jge 0x10095378
add ebx, ebx
xor esi, esi
inc esi
shl esi, cl
cmp ebx, esi
jge 0x1009539c
test al, al
je 0x1009539c
dec al
jmp 0x1009537a
inc al
mov ecx, dword [ebp + 8]
mov esi, dword [esp + 0x98]
mov byte [ecx + esi + 0xc7], al
xor eax, eax
inc eax
mov dword [esp + 0x48], eax
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x18]
jmp 0x100953ab
xor eax, eax
inc eax
mov dword [esp + 0x48], eax
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x1c8]
cmp byte [eax + 4], 0
je 0x10095408
cmp dword [esp + 0xa4], 0
je 0x10095408
mov ecx, dword [esp + 0xc4]
add ecx, edi
mov eax, dword [esp + 0x40]
cmp al, byte [esp + 0xc0]
setne al
mov dword [esp + 0xc4], ecx
test cl, 1
sete bl
or bl, al
mov eax, edi
neg eax
mov edx, esi
mov esi, 0
mov ecx, dword [esp + 0xc]
sbb esi, ecx
test bl, bl
cmove ecx, esi
mov esi, edx
cmove edi, eax
jmp 0x1009540c
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
add eax, dword [esp + 0x3c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x60]
add dword [esp + 0x24], eax
mov eax, edi
neg eax
mov ebx, 0
sbb ebx, ecx
movzx esi, si
cmp esi, 0x8000
cmovb ebx, ecx
cmovb eax, edi
mov ecx, dword [ebp + 8]
cmp byte [ecx + 0x7a16], 0
jne 0x10095575
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx + 0x1c4]
cmp byte [ecx + 0x2d2], 0
sete cl
or cl, byte [esp + 0x4f]
jne 0x100954eb
cmp dword [ebp + 0x14], 4
jl 0x1009548a
cmp dword [esp + 0x24], 0
jne 0x1009548a
mov ecx, dword [esp + 0x104]
mov dword [esp + 0x94], ecx
cmp dword [esp + 0x10], 0
je 0x100954eb
mov ecx, dword [ebp + 0x14]
cmp ecx, 5
je 0x100954a9
cmp ecx, 4
je 0x100954bc
cmp ecx, 3
jne 0x100954ce
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
lea ecx, [ecx + edx*8]
jmp 0x100954d9
mov ecx, dword [esp + 0x24]
and ecx, 0xfffffffc
mov edx, dword [esp + 0x10]
shr edx, 2
lea ecx, [edx + ecx*2]
jmp 0x100954d9
mov ecx, dword [esp + 0x24]
and ecx, 0xfffffffe
mov edx, dword [esp + 0x10]
shr edx, 1
lea ecx, [edx + ecx*4]
jmp 0x100954d9
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
lea ecx, [ecx + edx*4]
mov edx, dword [esp + 0xa0]
movzx ecx, byte [edx + ecx]
mov dword [esp + 0x94], ecx
mov edi, dword [esp + 0xb4]
mov ecx, edi
sar ecx, 0x1f
imul ecx, eax
mul edi
add ecx, edx
imul ebx, edi
add ebx, ecx
mov edi, dword [esp + 0x94]
mov ecx, edi
sar ecx, 0x1f
imul ecx, eax
mul edi
add edx, ecx
imul ebx, edi
add ebx, edx
mov edx, dword [esp + 0xb8]
mov ecx, edx
sar ecx, 0x1f
add eax, edx
adc ebx, ecx
mov edx, ebx
mov ecx, dword [esp + 0xbc]
shrd eax, ebx, cl
sar ebx, cl
sar edx, 0x1f
test cl, 0x20
cmovne eax, ebx
cmovne ebx, edx
test ebx, ebx
js 0x10095557
mov ecx, 0x7fff
cmp eax, ecx
cmovae eax, ecx
test ebx, ebx
jmp 0x10095572
mov ecx, eax
not ecx
mov edx, 0xffff8000
and ecx, edx
not ebx
mov edx, 0xfffffff
and ebx, edx
or ebx, ecx
mov ecx, 0x8000
cmovne eax, ecx
mov ecx, dword [ebp + 0x14]
mov edx, dword [esp + 0x24]
shl edx, cl
add edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x5c]
mov word [ebx + edx*2], ax
add esi, esi
mov ecx, dword [esp + 0x30]
inc ecx
cmp ecx, dword [esp + 0xc8]
jne 0x10094ef1
mov eax, dword [esp + 0x6c]
cmp dword [esp + 0x58], 0
mov edx, eax
jg 0x1009446f
mov eax, dword [ebp + 8]
cmp byte [eax + 0x7a16], 0
je 0x1009561e
cmp dword [esp + 0xa8], 0xa
sete cl
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x1c4]
mov eax, dword [eax + 0x348c]
test eax, eax
setne dl
cmp byte [esp + 0x68], 0
je 0x100955ea
and dl, cl
je 0x10095716
mov esi, ebx
xor ebx, ebx
cmp dword [esp + 0x9c], 0x1a
sete bl
test eax, eax
cmove ebx, dword [esp + 0x7c]
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x3f44]
call dword [section..00cfg]
mov eax, dword [ebp + 0x14]
cwde
push ebx
mov ebx, esi
push eax
push esi
jmp 0x10095711
cmp dword [esp + 0x34], 0
je 0x100957b4
cmp dword [ebp + 0x14], 2
jne 0x10095694
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x1c4]
cmp dword [eax + 0x3484], 0
je 0x10095694
mov eax, dword [ebp + 8]
cmp dword [eax + 0x7a0c], 1
jne 0x10095694
mov ecx, dword [ebx]
mov eax, dword [ebx + 4]
rol ecx, 0x10
mov edx, dword [ebx + 0x1c]
rol edx, 0x10
mov dword [ebx], edx
mov dword [ebx + 0x1c], ecx
rol eax, 0x10
mov ecx, dword [ebx + 0x18]
rol ecx, 0x10
mov dword [ebx + 4], ecx
mov dword [ebx + 0x18], eax
mov eax, dword [ebx + 8]
rol eax, 0x10
mov ecx, dword [ebx + 0x14]
rol ecx, 0x10
mov dword [ebx + 8], ecx
mov dword [ebx + 0x14], eax
mov eax, dword [ebx + 0xc]
rol eax, 0x10
mov ecx, dword [ebx + 0x10]
rol ecx, 0x10
mov dword [ebx + 0xc], ecx
mov dword [ebx + 0x10], eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x3f40]
call dword [section..00cfg]
mov eax, dword [ebp + 0x14]
movsx esi, ax
push esi
push ebx
call ecx
add esp, 8
cmp byte [esp + 0x68], 0
je 0x100956e1
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x1c4]
cmp dword [eax + 0x348c], 0
je 0x10095716
mov eax, dword [ebp + 8]
cmp dword [eax + 0x7a0c], 1
jne 0x10095716
cmp dword [esp + 0xa8], 0xa
jne 0x10095716
xor eax, eax
cmp dword [esp + 0x9c], 0x1a
sete al
cmp byte [esp + 0x68], 0
mov edi, ebx
mov ebx, dword [esp + 0x7c]
cmovne ebx, eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x3f44]
call dword [section..00cfg]
push ebx
mov ebx, edi
push esi
push edi
call ecx
add esp, 0xc
mov edx, dword [ebp + 8]
cmp byte [edx + 0x120], 0
mov esi, dword [esp + 0xd4]
je 0x1009574a
test esi, esi
jle 0x1009574a
xor eax, eax
movsx ecx, word [edx + eax*2 + 0x140]
imul ecx, dword [edx + 0x10c]
shr ecx, 3
add word [ebx + eax*2], cx
inc eax
cmp esi, eax
jne 0x1009572f
mov ecx, dword [esp + 0xd8]
mov edx, dword [ebp + 0x10]
sar edx, cl
mov ecx, dword [esp + 0xdc]
mov eax, dword [ebp + 0xc]
sar eax, cl
mov ecx, dword [esp + 0xe0]
shl eax, cl
mov edi, ebx
mov ebx, dword [esp + 0xe4]
imul edx, ebx
add eax, edx
mov esi, dword [esp + 0xe8]
add esi, eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [ebp + 0x14]
mov ecx, dword [eax + ecx*4 + 0x3f28]
call dword [section..00cfg]
push ebx
push edi
push esi
call ecx
add esp, 0xc
mov ecx, dword [esp + 0x168]
xor ecx, ebp
call fcn.10130483
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
cmp dword [ebp + 0x1c], 0
jne 0x100957d8
cmp dword [ebp + 0x14], 2
jne 0x100957d8
mov eax, dword [ebp + 8]
cmp dword [eax + 0x7a0c], 1
jne 0x100957d8
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x3f48]
jmp 0x1009581d
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0xcc]
cmp edx, ecx
mov eax, ecx
cmovg eax, edx
test eax, eax
je 0x1009580f
lea esi, [ecx + edx]
add esi, 4
cmp eax, 3
jg 0x1009582e
cmp esi, 4
mov eax, 4
jmp 0x1009584a
mov esi, dword [esi*4 + 0x102e0c58]
jmp 0x10093b0b
mov eax, dword [ebp + 0x14]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx + eax*4 + 0x3f54]
call dword [section..00cfg]
push ebx
call ecx
add esp, 4
jmp 0x10095716
cmp eax, 7
ja 0x1009583d
cmp esi, 8
mov eax, 8
jmp 0x1009584a
cmp eax, 0xb
ja 0x1009584d
cmp esi, 0x18
mov eax, 0x18
cmovge esi, eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [ebp + 0x14]
mov ecx, dword [eax + ecx*4 + 0x3f44]
call dword [section..00cfg]
push esi
push ebx
call ecx
add esp, 8
jmp 0x10095716