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

Disassembly:
sub esp, 0x78
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x8c]
mov ecx, dword [edi + 0x85b8]
mov ebx, dword [ecx]
mov ebp, dword [ecx + 0xc]
mov dword [esp + 0x48], ebp
test ebx, ebx
je 0x100a9576
mov edx, dword [edi + 8]
jmp 0x100a957a
mov edx, dword [ecx + 0x24]
inc edx
mov esi, dword [edi + 0x8614]
shl esi, 4
add esi, 0xfffffff0
sub edx, esi
mov dword [esp + 0x6c], esi
cmp edx, 0x10
jae 0x100a95ac
test ebx, ebx
je 0x100a95a0
mov eax, dword [edi + 8]
sub eax, esi
mov dword [esp + 0x24], eax
jmp 0x100a95b4
mov eax, dword [ecx + 0x24]
inc eax
sub eax, esi
mov dword [esp + 0x24], eax
jmp 0x100a95b4
mov dword [esp + 0x24], 0x10
test ebx, ebx
je 0x100a95bd
mov ebx, dword [edi + 4]
jmp 0x100a95c1
mov ebx, dword [ecx + 0x1c]
inc ebx
mov eax, dword [ecx + 0x20]
mov dword [esp + 0x38], ebx
cmp esi, eax
jbe 0x100a95d0
xor eax, eax
jmp 0x100a95d3
and eax, 0xf
lea esi, [ebp - 1]
mov ecx, dword [ecx + 0x18]
add esi, eax
xor edx, edx
mov eax, esi
dec ecx
div ebp
add ecx, ebp
sub esi, edx
mov eax, ecx
xor edx, edx
mov dword [esp + 0x18], esi
div ebp
mov eax, dword [edi + 0x8550]
sub ecx, edx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x20], ecx
test eax, eax
je 0x100a9607
mov eax, dword [edi + 0xc]
mov dword [esp + 0x50], eax
mov ecx, 2
mov eax, dword [edi + 0x10]
mov dword [esp + 0x74], eax
mov eax, dword [edi + 0x1c]
neg eax
sbb eax, eax
xor edx, edx
and eax, 2
mov dword [esp + 0x70], edx
sub ecx, eax
mov dword [esp + 0x68], eax
mov al, byte [edi + 0x808c]
xor esi, esi
mov byte [esp + 0x4c], al
mov eax, dword [edi + 0x86dc]
mov dword [esp + 0x64], ecx
mov cl, byte [edi + 0x808d]
mov dword [esp + 0x44], eax
mov eax, dword [edi + 0x86e0]
mov byte [esp + 0x78], cl
mov ecx, dword [edi + 0x85b8]
mov dword [esp + 0x3c], eax
mov eax, dword [edi + 0x86e4]
mov dword [esp + 0x40], eax
mov eax, dword [ecx + 0x28]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x6c]
div ebp
mov ecx, dword [ecx + 0x2c]
mov dword [esp + 0x28], esi
lea eax, [ecx + eax*4]
mov dword [esp + 0x2c], eax
cmp ebp, 0x10
jb 0x100a96b2
mov eax, dword [edi + 0x64]
test eax, eax
jne 0x100a969c
mov dword [esp + 0x14], 0x10
jmp 0x100a96d5
cmp eax, 1
mov ecx, 0x22
mov edx, 0x17
cmove ecx, edx
mov dword [esp + 0x14], ecx
jmp 0x100a96d5
cmp ebp, 4
jb 0x100a96cd
cmp dword [edi + 0x64], esi
mov ecx, 0x5d
mov eax, 0x40
cmove ecx, eax
mov dword [esp + 0x14], ecx
jmp 0x100a96d5
mov dword [esp + 0x14], 0x102
mov eax, dword [edi + 0x855c]
mov ecx, 8
test eax, eax
mov edx, 0xb
cmovne ecx, edx
mov dword [esp + 0x1c], ecx
je 0x100a970f
cmp ebp, 0x10
jb 0x100a970f
mov eax, dword [esp + 0x5c]
cmp eax, 1
je 0x100a9708
cmp eax, 2
je 0x100a9708
lea eax, [edx - 0xa]
jmp 0x100a9711
mov eax, 2
jmp 0x100a9711
xor eax, eax
sub ecx, eax
mov dword [esp + 0x34], ecx
cmp ebp, 1
jbe 0x100a972f
mov eax, 1
rol eax, 0
rol eax, 1
inc esi
cmp eax, ebp
jb 0x100a9724
mov dword [esp + 0x28], esi
cmp dword [edi + 0x40], 4
jge 0x100a973a
mov ecx, dword [edi + 0x28]
jmp 0x100a973d
mov ecx, dword [edi + 0x30]
mov eax, dword [esp + 0x24]
xor edx, edx
sub eax, dword [esp + 0x18]
mov dword [esp + 0x84], eax
div ebp
push eax
push ecx
push edi
call fcn.100a1b50
add esp, 0xc
test eax, eax
jne 0x100a9bf7
mov ecx, dword [edi + 0x8614]
xor edx, edx
shl ecx, 4
lea eax, [ecx - 0x10]
div ebp
test edx, edx
jne case.default.0x100ab359
mov eax, dword [edi + 0x85b8]
cmp ecx, dword [eax + 0x20]
jbe case.default.0x100ab359
mov eax, dword [eax + 0x24]
add eax, 0x10
cmp ecx, eax
ja case.default.0x100ab359
mov eax, dword [esp + 0x5c]
cmp eax, 2
je 0x100a97aa
cmp eax, 1
jne 0x100a9a0a
mov eax, dword [esp + 0x50]
test eax, eax
je 0x100a9a0e
mov edx, dword [edi + 0x87dc]
xor eax, eax
mov edi, dword [edi + 0x87e0]
xor ecx, ecx
mov esi, ebp
mov dword [esp + 0x60], edx
shl esi, 4
mov dword [esp + 0x54], edi
mov dword [esp + 0x6c], eax
mov dword [esp + 0x58], ecx
mov dword [esp + 0x7c], esi
nop
xor esi, esi
test ebx, ebx
je 0x100a985a
mov edx, esi
and edx, 0xfffffff0
cmp dword [esp + 0x5c], 2
jne 0x100a9806
mov eax, esi
shr eax, 1
and eax, 7
movzx eax, byte [eax + ecx + 0x10258ab8]
lea edi, [eax + edx*8]
jmp 0x100a981e
mov ecx, esi
shr ecx, 1
and ecx, 7
shr eax, 1
movzx eax, byte [ecx + eax*8 + 0x10258bb8]
mov ecx, dword [esp + 0x58]
lea edi, [eax + edx*4]
mov eax, esi
shl edx, 4
and eax, 0xf
add esi, ebp
movzx ecx, byte [eax + ecx + 0x10258ab8]
mov eax, dword [esp + 0x3c]
add ecx, edx
mov edx, dword [esp + 0x60]
mov eax, dword [eax + edi*4]
mov dword [edx + ecx*4], eax
mov eax, dword [esp + 0x40]
mov eax, dword [eax + edi*4]
mov edi, dword [esp + 0x54]
mov dword [edi + ecx*4], eax
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x6c]
cmp esi, ebx
jb 0x100a97e6
add ecx, dword [esp + 0x7c]
add eax, ebp
mov dword [esp + 0x6c], eax
mov dword [esp + 0x58], ecx
cmp ecx, 0x100
jb 0x100a97e0
cmp ebp, 4
jne 0x100a99f7
cmp dword [esp + 0x5c], 1
jne 0x100a9929
xor eax, eax
mov dword [esp + 0x6c], eax
test ebx, ebx
je 0x100a9929
mov ebp, dword [esp + 0x60]
nop word [eax + eax]
mov ebx, eax
mov edi, eax
and ebx, 0xf
and edi, 0xfffffff0
shl edi, 4
movzx edx, byte [ebx + 0x10258ab8]
movzx eax, byte [ebx + str._____aed]
add edx, edi
movzx esi, byte [ebx + 0x10258af8]
add eax, edi
mov dword [esp + 0x70], eax
add esi, edi
mov ecx, dword [ebp + edx*4]
mov eax, dword [ebp + eax*4]
inc ecx
add eax, ecx
sar eax, 1
mov dword [ebp + esi*4], eax
mov eax, dword [esp + 0x54]
mov ecx, dword [eax + edx*4]
mov edx, dword [esp + 0x70]
mov eax, dword [eax + edx*4]
inc eax
add eax, ecx
mov ecx, dword [esp + 0x54]
sar eax, 1
mov dword [ecx + esi*4], eax
movzx ecx, byte [ebx + str.0154pqut]
mov eax, dword [ebp + edx*4]
add ecx, edi
mov edi, dword [esp + 0x54]
mov ebx, dword [esp + 0x38]
mov dword [ebp + ecx*4], eax
mov eax, dword [edi + edx*4]
mov dword [edi + ecx*4], eax
mov eax, dword [esp + 0x6c]
add eax, 8
mov dword [esp + 0x6c], eax
cmp eax, ebx
jb 0x100a98a0
mov edx, dword [esp + 0x60]
lea eax, [ebx - 8]
mov ebx, dword [esp + 0x70]
xor esi, esi
mov dword [esp + 0x6c], eax
mov dword [esp + 0x5c], esi
nop
xor ebp, ebp
test eax, eax
je 0x100a99b6
mov eax, ebp
lea ecx, [ebp - 8]
and eax, 0xf
mov edx, ebp
and edx, 0xfffffff0
add ebp, 8
shl edx, 4
movzx edi, byte [eax + esi + 0x10258ab8]
lea eax, [ecx - 4]
and eax, 0xf
and ecx, 0xf
add edi, edx
movzx esi, byte [eax + esi + 0x10258ab8]
mov eax, dword [esp + 0x5c]
add esi, edx
movzx ebx, byte [ecx + eax + 0x10258ab8]
add ebx, edx
mov edx, dword [esp + 0x60]
mov ecx, dword [edx + ebx*4]
mov eax, dword [edx + edi*4]
inc ecx
add eax, ecx
sar eax, 1
mov dword [edx + esi*4], eax
mov eax, dword [esp + 0x54]
mov ecx, dword [eax + ebx*4]
mov eax, dword [eax + edi*4]
mov edi, dword [esp + 0x54]
inc eax
add eax, ecx
sar eax, 1
mov dword [edi + esi*4], eax
mov esi, dword [esp + 0x5c]
cmp ebp, dword [esp + 0x6c]
jb 0x100a9946
lea eax, [ebp + 4]
and ebp, 0xfffffff0
and eax, 0xf
shl ebp, 4
movzx ecx, byte [eax + esi + 0x10258ab8]
add esi, 0x40
mov eax, dword [edx + ebx*4]
add ecx, ebp
mov dword [esp + 0x5c], esi
mov dword [edx + ecx*4], eax
mov eax, dword [edi + ebx*4]
mov dword [edi + ecx*4], eax
mov eax, dword [esp + 0x6c]
cmp esi, 0x100
jb 0x100a9940
mov ebp, dword [esp + 0x48]
mov ebx, dword [esp + 0x38]
mov esi, dword [esp + 0x28]
mov dword [esp + 0x40], edi
mov edi, dword [esp + 0x8c]
mov dword [esp + 0x3c], edx
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x74]
cmp ecx, 1
jne 0x100a9ed9
mov ecx, dword [esp + 0x1c]
mov eax, 0x80
mov edi, dword [esp + 0x14]
shl eax, cl
cdq
idiv edi
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x50]
cmp eax, 8
ja case.default.0x100aa82e
jmp dword [eax*4 + 0x100ab4dc]
mov edi, dword [esp + 0x18]
mov eax, edi
mov dword [esp + 0x74], eax
cmp edi, dword [esp + 0x24]
jae 0x100a9bca
mov edx, edi
mov ecx, ebp
shl edx, 4
mov edi, 0xff
shl ecx, 4
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x6c], edx
mov ebp, dword [esp + 0x2c]
mov esi, dword [esp + 0x20]
shr eax, cl
mov dword [esp + 0x78], esi
mov eax, dword [ebp + eax*4]
mov ebp, dword [esp + 0x48]
mov dword [esp + 0x7c], eax
cmp esi, ebx
jae 0x100a9b83
mov eax, esi
mov ecx, dword [esp + 0x34]
and eax, 0xf
movzx edx, byte [eax + edx + 0x10258ab8]
mov eax, esi
mov esi, dword [esp + 0x14]
and eax, 0xfffffff0
shl eax, 4
add edx, eax
mov eax, dword [esp + 0x3c]
mov ebx, dword [eax + edx*4]
mov eax, dword [esp + 0x40]
imul ebx, esi
mov eax, dword [eax + edx*4]
imul eax, esi
neg ebx
sar ebx, cl
sar eax, cl
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x44]
mov edx, dword [eax + edx*4]
mov eax, ebx
add edx, dword [esp + 0x60]
imul edx, esi
mov esi, dword [esp + 0x70]
sar eax, 1
sar edx, cl
lea ecx, [esi + 1]
sub edx, eax
sar ecx, 1
mov eax, edx
sub eax, ecx
mov ecx, dword [esp + 0x28]
add ebx, eax
add esi, ebx
mov dword [esp + 0x70], esi
mov esi, dword [esp + 0x78]
mov eax, esi
shr eax, cl
mov ecx, dword [esp + 0x30]
mov ecx, dword [ecx + eax*4]
mov eax, dword [esp + 0x8c]
add ecx, dword [esp + 0x7c]
add ecx, dword [eax + 0x80a8]
mov eax, dword [esp + 0x70]
test eax, eax
jns 0x100a9b32
xor eax, eax
jmp 0x100a9b3a
cmp eax, 0xff
cmovg eax, edi
mov ebp, dword [esp + 0x68]
mov byte [ecx + ebp], al
test edx, edx
jns 0x100a9b49
xor edx, edx
jmp 0x100a9b4e
cmp edx, edi
cmovg edx, edi
mov byte [ecx + 1], dl
test ebx, ebx
jns 0x100a9b59
xor ebx, ebx
jmp 0x100a9b5e
cmp ebx, edi
cmovg ebx, edi
mov eax, dword [esp + 0x64]
mov ebp, dword [esp + 0x48]
add esi, ebp
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x78], esi
mov byte [ecx + eax], bl
mov ebx, dword [esp + 0x38]
cmp esi, ebx
jb 0x100a9a96
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x74]
add edx, dword [esp + 0x5c]
add eax, ebp
mov dword [esp + 0x74], eax
mov dword [esp + 0x6c], edx
cmp eax, dword [esp + 0x24]
jb 0x100a9a74
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
jmp 0x100a9bca
push dword [esp + 0x20]
push dword [esp + 0x1c]
push ecx
push edi
push dword [esp + 0x9c]
call fcn.100b04f0
add esp, 0x14
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x8c]
cmp byte [eax + 0x70], 0
jbe 0x100ab319
push ecx
push esi
mov esi, dword [esp + 0x30]
push esi
push eax
call fcn.100ab5b0
add esp, 0x10
test eax, eax
je 0x100ab31d
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x78
ret
mov edi, dword [esp + 0x18]
mov eax, edi
mov dword [esp + 0x78], eax
cmp edi, dword [esp + 0x24]
jae 0x100a9bca
mov edx, edi
mov ecx, ebp
shl edx, 4
shl ecx, 4
mov dword [esp + 0x6c], edx
mov dword [esp + 0x74], ecx
mov edi, dword [esp + 0x20]
mov ecx, esi
shr eax, cl
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x70], edi
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x7c], eax
cmp edi, ebx
jae 0x100a9cf7
mov esi, dword [esp + 0x40]
mov eax, edi
and eax, 0xf
mov ecx, dword [esp + 0x34]
movzx edx, byte [eax + edx + 0x10258ab8]
mov eax, edi
and eax, 0xfffffff0
shl eax, 4
add edx, eax
mov eax, dword [esp + 0x3c]
mov edi, dword [eax + edx*4]
mov esi, dword [esi + edx*4]
mov eax, dword [esp + 0x14]
imul edi, eax
imul esi, eax
sar edi, cl
sar esi, cl
neg edi
mov ecx, dword [esp + 0x44]
mov edx, dword [ecx + edx*4]
mov ecx, dword [esp + 0x1c]
imul edx, eax
mov eax, edi
sar eax, 1
sar edx, cl
lea ecx, [esi + 1]
sub edx, eax
sar ecx, 1
mov eax, edx
sub eax, ecx
mov ecx, dword [esp + 0x28]
add edi, eax
mov eax, dword [esp + 0x70]
shr eax, cl
mov ecx, dword [esp + 0x30]
mov ecx, dword [ecx + eax*4]
mov eax, dword [esp + 0x8c]
add ecx, dword [esp + 0x7c]
add ecx, dword [eax + 0x80a8]
lea eax, [ecx + 3]
push eax
lea eax, [ecx + 2]
push eax
lea eax, [ecx + 1]
push eax
push ecx
lea eax, [esi + edi]
push eax
push edx
push edi
call fcn.100ac430
mov edi, dword [esp + 0x8c]
add esp, 0x1c
mov edx, dword [esp + 0x6c]
add edi, ebp
mov dword [esp + 0x70], edi
cmp edi, ebx
jb 0x100a9c43
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x78]
add edx, dword [esp + 0x74]
add eax, ebp
mov dword [esp + 0x78], eax
mov dword [esp + 0x6c], edx
cmp eax, dword [esp + 0x24]
jb 0x100a9c24
jmp 0x100a9bc2
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x34]
mov eax, dword [eax + 0x86e8]
mov dword [esp + 0x7c], eax
mov eax, 0x80
shl eax, cl
cdq
idiv edi
mov edi, dword [esp + 0x18]
sar eax, 1
mov dword [esp + 0x5c], eax
mov eax, edi
mov dword [esp + 0x74], eax
cmp edi, dword [esp + 0x24]
jae 0x100a9ba3
mov edx, edi
mov ecx, ebp
shl edx, 4
shl ecx, 4
mov dword [esp + 0x6c], edx
mov dword [esp + 0x4c], ecx
mov edi, dword [esp + 0x20]
mov ecx, esi
shr eax, cl
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x78], edi
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x54], eax
cmp edi, ebx
jae 0x100a9eb8
mov ecx, dword [esp + 0x44]
mov eax, edi
and eax, 0xf
mov esi, dword [esp + 0x14]
movzx edx, byte [eax + edx + 0x10258ab8]
mov eax, edi
and eax, 0xfffffff0
shl eax, 4
add edx, eax
mov eax, dword [esp + 0x60]
sub eax, dword [ecx + edx*4]
mov ecx, dword [esp + 0x1c]
imul eax, esi
sar eax, cl
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x58], eax
inc eax
sar eax, 1
mov edi, dword [ecx + edx*4]
mov ecx, dword [esp + 0x34]
imul edi, esi
sar edi, cl
mov ecx, dword [esp + 0x40]
mov ecx, dword [ecx + edx*4]
imul ecx, esi
neg ecx
mov dword [esp + 0x70], ecx
mov esi, dword [esp + 0x70]
mov ecx, dword [esp + 0x34]
sar esi, cl
mov ecx, dword [esp + 0x7c]
mov edx, dword [ecx + edx*4]
add edx, dword [esp + 0x5c]
imul edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x34]
sar edx, cl
mov ecx, edi
sub edx, eax
sar ecx, 1
mov eax, edx
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x58]
sub eax, ecx
add edx, eax
lea ecx, [esi + 1]
sar ecx, 1
mov eax, edx
sub eax, ecx
mov ecx, dword [esp + 0x28]
add edi, eax
add esi, edi
mov dword [esp + 0x58], edi
mov edi, dword [esp + 0x78]
mov eax, edi
shr eax, cl
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x70], esi
mov esi, 0xff
mov ecx, dword [ecx + eax*4]
mov eax, dword [esp + 0x8c]
add ecx, dword [esp + 0x54]
add ecx, dword [eax + 0x80a8]
mov eax, dword [esp + 0x58]
test eax, eax
jns 0x100a9e56
xor eax, eax
jmp 0x100a9e5e
cmp eax, 0xff
cmovg eax, esi
mov byte [ecx], al
test edx, edx
jns 0x100a9e68
xor edx, edx
jmp 0x100a9e71
cmp edx, 0xff
cmovg edx, esi
mov eax, dword [esp + 0x70]
mov byte [ecx + 1], dl
test eax, eax
jns 0x100a9e80
xor eax, eax
jmp 0x100a9e88
cmp eax, 0xff
cmovg eax, esi
mov byte [ecx + 2], al
mov eax, dword [esp + 0x50]
test eax, eax
jns 0x100a9e97
xor eax, eax
jmp 0x100a9e9f
cmp eax, 0xff
cmovg eax, esi
mov edx, dword [esp + 0x6c]
add edi, ebp
mov byte [ecx + 3], al
mov dword [esp + 0x78], edi
cmp edi, ebx
jb 0x100a9d82
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x74]
add edx, dword [esp + 0x4c]
add eax, ebp
mov dword [esp + 0x74], eax
mov dword [esp + 0x6c], edx
cmp eax, dword [esp + 0x24]
jb 0x100a9d63
jmp 0x100a9bc2
cmp ecx, 2
jne 0x100aa28a
movzx ecx, byte [esp + 0x4c]
mov eax, 0x8000
mov edi, dword [esp + 0x14]
sar eax, cl
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x1c]
shl eax, cl
cdq
idiv edi
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x50]
cmp eax, 7
ja case.default.0x100aa82e
jmp dword [eax*4 + 0x100ab500]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x6c], eax
cmp eax, dword [esp + 0x24]
jae case.default.0x100aa82e
mov ecx, dword [esp + 0x28]
mov edx, eax
shl edx, 4
mov eax, ebp
shl eax, 4
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x60], edx
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x20]
shr eax, cl
mov dword [esp + 0x70], esi
mov eax, dword [ebx + eax*4]
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x74], eax
cmp esi, ebx
jae 0x100aa06d
mov eax, esi
mov ecx, dword [esp + 0x34]
and eax, 0xf
movzx edx, byte [eax + edx + 0x10258ab8]
mov eax, esi
and eax, 0xfffffff0
shl eax, 4
add edx, eax
mov eax, dword [esp + 0x3c]
mov esi, dword [eax + edx*4]
mov eax, dword [esp + 0x40]
imul esi, edi
mov edi, dword [eax + edx*4]
imul edi, dword [esp + 0x14]
neg esi
sar esi, cl
mov eax, esi
sar eax, 1
sar edi, cl
mov ecx, dword [esp + 0x44]
mov edx, dword [ecx + edx*4]
add edx, dword [esp + 0x7c]
imul edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
sar edx, cl
lea ecx, [edi + 1]
sub edx, eax
sar ecx, 1
mov eax, edx
sub eax, ecx
mov ecx, dword [esp + 0x28]
add esi, eax
mov eax, dword [esp + 0x70]
shr eax, cl
add edi, esi
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx + eax*4]
add eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x58], eax
mov eax, dword [ecx + 0x80a8]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x5c]
mov ecx, eax
shl esi, cl
mov eax, 0xffff
shl edx, cl
shl edi, cl
test esi, esi
jns 0x100aa007
xor esi, esi
jmp 0x100aa010
cmp esi, 0xffff
cmovg esi, eax
mov ecx, dword [esp + 0x58]
mov ebp, dword [esp + 0x78]
mov word [ebp + ecx*2], si
test edx, edx
jns 0x100aa025
xor edx, edx
jmp 0x100aa02e
cmp edx, 0xffff
cmovg edx, eax
mov esi, ebp
mov word [esi + ecx*2 + 2], dx
test edi, edi
jns 0x100aa03d
xor edi, edi
jmp 0x100aa046
cmp edi, 0xffff
cmovg edi, eax
mov ebp, dword [esp + 0x48]
mov edx, dword [esp + 0x60]
mov word [esi + ecx*2 + 4], di
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x14]
add esi, ebp
mov dword [esp + 0x70], esi
cmp esi, ebx
jb 0x100a9f64
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x6c]
add edx, dword [esp + 0x54]
add eax, ebp
mov dword [esp + 0x6c], eax
mov dword [esp + 0x60], edx
cmp eax, dword [esp + 0x24]
jb 0x100a9f43
jmp 0x100a9bc2
mov eax, dword [esp + 0x8c]
mov eax, dword [eax + 0x86e8]
mov dword [esp + 0x54], eax
mov eax, 0x8000
shl eax, cl
cdq
idiv edi
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x7c], eax
mov eax, 0x8000
shl eax, cl
cdq
idiv edi
sar eax, 1
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x18]
mov ecx, eax
mov dword [esp + 0x58], ecx
cmp eax, dword [esp + 0x24]
jae case.0x100aaad8.1
shl eax, 4
mov dword [esp + 0x6c], eax
mov eax, ebp
shl eax, 4
mov dword [esp + 0x80], eax
mov edx, dword [esp + 0x20]
mov eax, ecx
mov ecx, esi
mov dword [esp + 0x70], edx
shr eax, cl
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x4c], eax
cmp edx, ebx
jae 0x100aa266
nop dword [eax]
mov ecx, dword [esp + 0x6c]
and edx, 0xf
mov eax, dword [esp + 0x70]
mov esi, dword [esp + 0x7c]
and eax, 0xfffffff0
shl eax, 4
movzx edx, byte [edx + ecx + 0x10258ab8]
add edx, eax
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x44]
mov ebp, dword [esp + 0x34]
sub esi, dword [eax + edx*4]
mov eax, dword [esp + 0x3c]
imul esi, edi
mov eax, dword [eax + edx*4]
imul eax, edi
sar esi, cl
mov ecx, ebp
sar eax, cl
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x40]
mov edi, dword [eax + edx*4]
lea eax, [esi + 1]
imul edi, dword [esp + 0x14]
sar eax, 1
neg edi
sar edi, cl
mov ecx, dword [esp + 0x54]
mov edx, dword [ecx + edx*4]
mov ecx, ebp
add edx, dword [esp + 0x50]
imul edx, dword [esp + 0x14]
sar edx, cl
mov ecx, dword [esp + 0x60]
sub edx, eax
sar ecx, 1
mov eax, edx
sub eax, ecx
lea ecx, [edi + 1]
add esi, eax
sar ecx, 1
mov eax, esi
sub eax, ecx
mov ecx, dword [esp + 0x60]
add ecx, eax
mov eax, dword [esp + 0x70]
add edi, ecx
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x28]
shr eax, cl
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx + eax*4]
add eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x78], eax
mov eax, dword [ecx + 0x80a8]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x60]
shl eax, cl
shl esi, cl
shl edi, cl
shl edx, cl
mov ecx, 0xffff
test eax, eax
jns 0x100aa1e8
xor eax, eax
jmp 0x100aa1f0
cmp eax, 0xffff
cmovg eax, ecx
mov ebp, dword [esp + 0x78]
mov ebx, dword [esp + 0x74]
mov word [ebx + ebp*2], ax
test esi, esi
jns 0x100aa204
xor esi, esi
jmp 0x100aa20d
cmp esi, 0xffff
cmovg esi, ecx
mov eax, dword [esp + 0x78]
mov ebp, ebx
mov word [ebp + eax*2 + 2], si
test edi, edi
jns 0x100aa220
xor edi, edi
jmp 0x100aa229
cmp edi, 0xffff
cmovg edi, ecx
mov word [ebp + eax*2 + 4], di
test edx, edx
jns 0x100aa236
xor edx, edx
jmp 0x100aa23f
cmp edx, 0xffff
cmovg edx, ecx
mov ebx, dword [esp + 0x38]
mov edi, dword [esp + 0x14]
mov word [ebp + eax*2 + 6], dx
mov edx, dword [esp + 0x70]
mov ebp, dword [esp + 0x48]
add edx, ebp
mov dword [esp + 0x70], edx
cmp edx, ebx
jb 0x100aa110
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x80]
add ecx, ebp
add dword [esp + 0x6c], eax
mov dword [esp + 0x58], ecx
cmp ecx, dword [esp + 0x24]
jb 0x100aa0e8
jmp 0x100a9bc2
cmp ecx, 3
jne 0x100aa66b
cmp eax, 7
ja case.0x100aaad8.1
jmp dword [eax*4 + 0x100ab520]
mov ecx, dword [esp + 0x18]
mov edi, ecx
mov dword [esp + 0x74], edi
cmp ecx, dword [esp + 0x24]
jae case.0x100aaad8.1
movzx eax, byte [esp + 0x4c]
mov edx, ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x7c], eax
mov eax, ebp
shl edx, 4
shl eax, 4
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x6c], edx
nop word [eax + eax]
mov ebx, dword [esp + 0x2c]
mov esi, eax
mov eax, edi
mov dword [esp + 0x70], esi
shr eax, cl
mov eax, dword [ebx + eax*4]
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x20]
cmp eax, ebx
jae 0x100aa431
nop dword [eax + eax]
mov edi, dword [esp + 0x40]
mov eax, esi
and eax, 0xf
mov ecx, dword [esp + 0x34]
movzx edx, byte [eax + edx + 0x10258ab8]
mov eax, esi
and eax, 0xfffffff0
shl eax, 4
add edx, eax
mov eax, dword [esp + 0x3c]
mov esi, dword [eax + edx*4]
mov edi, dword [edi + edx*4]
mov eax, dword [esp + 0x14]
imul esi, eax
imul edi, eax
neg esi
sar esi, cl
sar edi, cl
mov ecx, dword [esp + 0x44]
mov edx, dword [ecx + edx*4]
mov ecx, dword [esp + 0x1c]
imul edx, eax
mov eax, esi
sar eax, 1
sar edx, cl
lea ecx, [edi + 1]
sub edx, eax
sar ecx, 1
mov eax, edx
sub eax, ecx
mov ecx, dword [esp + 0x28]
add esi, eax
mov eax, dword [esp + 0x70]
shr eax, cl
add edi, esi
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx + eax*4]
add eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x60], eax
mov eax, dword [ecx + 0x80a8]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x7c]
mov ecx, eax
shl esi, cl
mov eax, 0x7fff
shl edx, cl
shl edi, cl
cmp esi, 0xffff8000
jge 0x100aa3b9
mov esi, 0xffff8000
jmp 0x100aa3c2
cmp esi, 0x7fff
cmovg esi, eax
mov ecx, dword [esp + 0x60]
mov ebp, dword [esp + 0x78]
mov word [ebp + ecx*2], si
cmp edx, 0xffff8000
jge 0x100aa3de
mov edx, 0xffff8000
jmp 0x100aa3e7
cmp edx, 0x7fff
cmovg edx, eax
mov esi, ebp
mov word [esi + ecx*2 + 2], dx
cmp edi, 0xffff8000
jge 0x100aa3fd
mov edi, 0xffff8000
jmp 0x100aa406
cmp edi, 0x7fff
cmovg edi, eax
mov ebp, dword [esp + 0x48]
mov edx, dword [esp + 0x6c]
mov word [esi + ecx*2 + 4], di
mov esi, dword [esp + 0x70]
add esi, ebp
mov dword [esp + 0x70], esi
cmp esi, ebx
jb 0x100aa310
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x74]
mov eax, dword [esp + 0x20]
add edx, dword [esp + 0x5c]
add edi, ebp
mov dword [esp + 0x74], edi
mov dword [esp + 0x6c], edx
cmp edi, dword [esp + 0x24]
jb 0x100aa2e0
jmp 0x100a9bc2
push dword [esp + 0x20]
mov esi, dword [esp + 0x18]
push dword [esp + 0x1c]
push dword [esp + 0x24]
push esi
push edi
call fcn.100b04f0
mov edi, dword [esp + 0x2c]
add esp, 0x14
mov ecx, dword [esp + 0x1c]
jmp 0x100a9bce
mov eax, dword [edi + 0x86e8]
mov edi, dword [esp + 0x18]
mov ecx, edi
mov dword [esp + 0x80], eax
mov dword [esp + 0x5c], ecx
cmp edi, dword [esp + 0x24]
jae 0x100a9ba3
movzx eax, byte [esp + 0x4c]
mov edx, edi
mov dword [esp + 0x58], eax
mov eax, ebp
shl edx, 4
shl eax, 4
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x6c], edx
mov edi, eax
mov dword [esp + 0x70], eax
mov eax, ecx
mov ecx, esi
shr eax, cl
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x20]
cmp eax, ebx
jae 0x100aa64a
nop dword [eax + eax]
mov ebx, dword [esp + 0x14]
mov eax, edi
and eax, 0xf
mov ecx, dword [esp + 0x1c]
movzx edx, byte [eax + edx + 0x10258ab8]
mov eax, edi
and eax, 0xfffffff0
shl eax, 4
add edx, eax
mov eax, dword [esp + 0x44]
mov esi, dword [eax + edx*4]
mov eax, dword [esp + 0x3c]
imul esi, ebx
mov eax, dword [eax + edx*4]
imul eax, ebx
neg esi
sar esi, cl
mov ecx, dword [esp + 0x34]
sar eax, cl
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x40]
mov edi, dword [eax + edx*4]
mov eax, dword [esp + 0x80]
imul edi, ebx
mov edx, dword [eax + edx*4]
lea eax, [esi + 1]
sar eax, 1
imul edx, ebx
neg edi
sar edi, cl
sar edx, cl
mov ecx, dword [esp + 0x60]
sub edx, eax
sar ecx, 1
mov eax, edx
sub eax, ecx
lea ecx, [edi + 1]
add esi, eax
sar ecx, 1
mov eax, esi
sub eax, ecx
mov ecx, dword [esp + 0x60]
add ecx, eax
mov eax, dword [esp + 0x70]
add edi, ecx
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x28]
shr eax, cl
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx + eax*4]
add eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x78], eax
mov eax, dword [ecx + 0x80a8]
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x60]
shl eax, cl
shl esi, cl
shl edi, cl
shl edx, cl
mov ecx, 0x7fff
cmp eax, 0xffff8000
jge 0x100aa5b3
mov eax, 0xffff8000
jmp 0x100aa5bb
cmp eax, 0x7fff
cmovg eax, ecx
mov ebp, dword [esp + 0x78]
mov ebx, dword [esp + 0x74]
mov word [ebx + ebp*2], ax
cmp esi, 0xffff8000
jge 0x100aa5d6
mov esi, 0xffff8000
jmp 0x100aa5df
cmp esi, 0x7fff
cmovg esi, ecx
mov eax, dword [esp + 0x78]
mov ebp, ebx
mov word [ebp + eax*2 + 2], si
cmp edi, 0xffff8000
jge 0x100aa5f9
mov edi, 0xffff8000
jmp 0x100aa602
cmp edi, 0x7fff
cmovg edi, ecx
mov word [ebp + eax*2 + 4], di
cmp edx, 0xffff8000
jge 0x100aa616
mov edx, 0xffff8000
jmp 0x100aa61f
cmp edx, 0x7fff
cmovg edx, ecx
mov edi, dword [esp + 0x70]
mov ebx, dword [esp + 0x38]
mov word [ebp + eax*2 + 6], dx
mov ebp, dword [esp + 0x48]
add edi, ebp
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x70], edi
cmp edi, ebx
jb 0x100aa4e0
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x5c]
add edx, dword [esp + 0x54]
add ecx, ebp
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x6c], edx
cmp ecx, dword [esp + 0x24]
jb 0x100aa4b5
jmp 0x100a9bc2
mov edi, dword [esp + 0x14]
jmp 0x100aa675
mov ecx, dword [esp + 0x74]
cmp ecx, 4
jne 0x100aa7f1
cmp eax, 7
ja case.0x100aaad8.1
movzx eax, byte [eax + 0x100ab54c]
jmp dword [eax*4 + 0x100ab540]
mov eax, dword [esp + 0x18]
mov ecx, eax
mov dword [esp + 0x78], ecx
cmp eax, dword [esp + 0x24]
jae case.0x100aaad8.1
shl eax, 4
mov dword [esp + 0x70], eax
mov eax, ebp
shl eax, 4
mov dword [esp + 0x7c], eax
jmp 0x100aa6c4
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
mov eax, ecx
mov ecx, esi
mov dword [esp + 0x60], edx
shr eax, cl
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x80], eax
cmp edx, ebx
jae 0x100aa7bb
jmp 0x100aa6f4
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x70]
and edx, 0xf
mov eax, dword [esp + 0x60]
and eax, 0xfffffff0
shl eax, 4
movzx edx, byte [edx + ecx + 0x10258ab8]
mov ecx, dword [esp + 0x34]
add edx, eax
mov eax, dword [esp + 0x3c]
mov ebp, dword [eax + edx*4]
mov eax, dword [esp + 0x44]
imul ebp, edi
neg ebp
sar ebp, cl
mov ecx, dword [esp + 0x40]
mov ebx, dword [ecx + edx*4]
mov ecx, dword [esp + 0x34]
imul ebx, edi
mov edi, dword [eax + edx*4]
mov eax, ebp
imul edi, dword [esp + 0x14]
sar eax, 1
sar ebx, cl
mov ecx, dword [esp + 0x1c]
sar edi, cl
sub edi, eax
lea ecx, [ebx + 1]
mov eax, edi
sar ecx, 1
sub eax, ecx
mov ecx, esi
add ebp, eax
mov eax, dword [esp + 0x60]
shr eax, cl
mov ecx, dword [esp + 0x30]
push ebp
mov esi, dword [ecx + eax*4]
mov eax, dword [esp + 0x90]
add esi, dword [esp + 0x84]
mov edx, dword [eax + 0x80a8]
call fcn.100a9530
push edi
mov word [edx + esi*2], ax
call fcn.100a9530
mov word [edx + esi*2 + 2], ax
lea eax, [ebx + ebp]
push eax
call fcn.100a9530
mov ebp, dword [esp + 0x54]
add esp, 0xc
mov ebx, dword [esp + 0x38]
mov word [edx + esi*2 + 4], ax
mov edx, dword [esp + 0x60]
mov esi, dword [esp + 0x28]
add edx, ebp
mov dword [esp + 0x60], edx
cmp edx, ebx
jb 0x100aa6f0
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x7c]
add ecx, ebp
add dword [esp + 0x70], eax
mov dword [esp + 0x78], ecx
cmp ecx, dword [esp + 0x24]
jb 0x100aa6c0
jmp 0x100a9bc2
push dword [esp + 0x20]
push dword [esp + 0x1c]
push dword [esp + 0x24]
jmp 0x100a9bb2
mov ecx, dword [esp + 0x74]
cmp ecx, 5
jne 0x100aa965
movzx ecx, byte [esp + 0x4c]
mov eax, 0x80000000
sar eax, cl
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x1c]
shl eax, cl
cdq
idiv edi
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x50]
cmp eax, 7
ja case.default.0x100aa82e
movzx ecx, byte [eax + 0x100ab560]
jmp dword [ecx*4 + 0x100ab554]
mov eax, dword [esp + 0x18]
mov ecx, eax
mov dword [esp + 0x78], ecx
cmp eax, dword [esp + 0x24]
jae case.0x100aaad8.1
shl eax, 4
mov dword [esp + 0x74], eax
mov eax, ebp
shl eax, 4
mov dword [esp + 0x6c], eax
nop dword [eax]
mov edx, dword [esp + 0x20]
mov eax, ecx
mov ecx, esi
mov dword [esp + 0x60], edx
shr eax, cl
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x7c], eax
cmp edx, ebx
jae 0x100aa944
mov ecx, dword [esp + 0x74]
and edx, 0xf
mov eax, dword [esp + 0x60]
and eax, 0xfffffff0
shl eax, 4
movzx edx, byte [edx + ecx + 0x10258ab8]
add edx, eax
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x3c]
mov ebp, dword [eax + edx*4]
mov eax, dword [esp + 0x44]
imul ebp, edi
neg ebp
sar ebp, cl
mov ecx, dword [esp + 0x40]
mov ebx, dword [ecx + edx*4]
mov ecx, dword [esp + 0x34]
imul ebx, edi
mov edi, dword [eax + edx*4]
mov eax, ebp
add edi, dword [esp + 0x80]
imul edi, dword [esp + 0x14]
sar eax, 1
sar ebx, cl
mov ecx, dword [esp + 0x1c]
sar edi, cl
sub edi, eax
lea ecx, [ebx + 1]
sar ecx, 1
mov eax, edi
sub eax, ecx
mov ecx, esi
add ebp, eax
mov eax, dword [esp + 0x60]
shr eax, cl
mov ecx, dword [esp + 0x30]
mov esi, dword [ecx + eax*4]
mov eax, dword [esp + 0x8c]
add esi, dword [esp + 0x7c]
mov ecx, dword [esp + 0x70]
shl edi, cl
mov edx, dword [eax + 0x80a8]
mov eax, ebp
shl eax, cl
mov dword [edx + esi*4], eax
lea eax, [ebx + ebp]
mov ebp, dword [esp + 0x48]
mov ebx, dword [esp + 0x38]
mov dword [edx + esi*4 + 4], edi
mov edi, dword [esp + 0x14]
shl eax, cl
mov dword [edx + esi*4 + 8], eax
mov edx, dword [esp + 0x60]
mov esi, dword [esp + 0x28]
add edx, ebp
mov dword [esp + 0x60], edx
cmp edx, ebx
jb 0x100aa881
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x6c]
add ecx, ebp
add dword [esp + 0x74], eax
mov dword [esp + 0x78], ecx
cmp ecx, dword [esp + 0x24]
jb 0x100aa860
jmp 0x100a9bc2
cmp ecx, 6
jne 0x100aaac0
cmp eax, 7
ja case.0x100aaad8.1
movzx eax, byte [eax + 0x100ab574]
jmp dword [eax*4 + 0x100ab568]
mov edx, dword [esp + 0x18]
mov ecx, edx
mov dword [esp + 0x78], ecx
cmp edx, dword [esp + 0x24]
jae case.0x100aaad8.1
movzx eax, byte [esp + 0x4c]
mov dword [esp + 0x7c], eax
mov eax, edx
shl eax, 4
mov dword [esp + 0x74], eax
mov eax, ebp
shl eax, 4
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0x20]
mov eax, ecx
mov ecx, esi
mov dword [esp + 0x60], edx
shr eax, cl
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x80], eax
cmp edx, ebx
jae 0x100aaa9f
nop dword [eax + eax]
mov ecx, dword [esp + 0x74]
and edx, 0xf
mov eax, dword [esp + 0x60]
and eax, 0xfffffff0
shl eax, 4
movzx edx, byte [edx + ecx + 0x10258ab8]
add edx, eax
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x3c]
mov ebp, dword [eax + edx*4]
mov eax, dword [esp + 0x44]
imul ebp, edi
neg ebp
sar ebp, cl
mov ecx, dword [esp + 0x40]
mov ebx, dword [ecx + edx*4]
mov ecx, dword [esp + 0x34]
imul ebx, edi
mov edi, dword [eax + edx*4]
mov eax, ebp
imul edi, dword [esp + 0x14]
sar eax, 1
sar ebx, cl
mov ecx, dword [esp + 0x1c]
sar edi, cl
sub edi, eax
lea ecx, [ebx + 1]
mov eax, edi
sar ecx, 1
sub eax, ecx
mov ecx, esi
add ebp, eax
mov eax, dword [esp + 0x60]
shr eax, cl
mov ecx, dword [esp + 0x30]
mov esi, dword [ecx + eax*4]
mov eax, dword [esp + 0x8c]
add esi, dword [esp + 0x80]
mov ecx, dword [esp + 0x7c]
shl edi, cl
mov edx, dword [eax + 0x80a8]
mov eax, ebp
shl eax, cl
mov dword [edx + esi*4], eax
lea eax, [ebx + ebp]
mov ebp, dword [esp + 0x48]
mov ebx, dword [esp + 0x38]
mov dword [edx + esi*4 + 4], edi
mov edi, dword [esp + 0x14]
shl eax, cl
mov dword [edx + esi*4 + 8], eax
mov edx, dword [esp + 0x60]
mov esi, dword [esp + 0x28]
add edx, ebp
mov dword [esp + 0x60], edx
cmp edx, ebx
jb 0x100aa9e0
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x70]
add ecx, ebp
add dword [esp + 0x74], eax
mov dword [esp + 0x78], ecx
cmp ecx, dword [esp + 0x24]
jb 0x100aa9b4
jmp 0x100a9bc2
cmp ecx, 7
jne 0x100aac3c
cmp eax, ecx
ja case.0x100aaad8.1
movzx eax, byte [eax + 0x100ab588]
jmp dword [eax*4 + 0x100ab57c]
mov ecx, dword [esp + 0x18]
mov eax, ecx
mov dword [esp + 0x6c], eax
cmp ecx, dword [esp + 0x24]
jae case.0x100aaad8.1
shl ecx, 4
mov dword [esp + 0x74], ecx
mov ecx, ebp
shl ecx, 4
mov dword [esp + 0x7c], ecx
mov edx, dword [esp + 0x20]
mov ecx, esi
shr eax, cl
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x60], edx
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x80], eax
cmp edx, ebx
jae 0x100aac1b
mov ecx, dword [esp + 0x74]
and edx, 0xf
mov eax, dword [esp + 0x60]
and eax, 0xfffffff0
shl eax, 4
movzx edx, byte [edx + ecx + 0x10258ab8]
mov ecx, dword [esp + 0x34]
add edx, eax
mov eax, dword [esp + 0x3c]
push dword [esp + 0x4c]
push dword [esp + 0x7c]
mov esi, dword [eax + edx*4]
mov eax, dword [esp + 0x4c]
imul esi, edi
mov ebx, dword [eax + edx*4]
imul ebx, edi
neg esi
sar esi, cl
mov ecx, dword [esp + 0x48]
mov eax, esi
sar eax, 1
mov ebp, dword [ecx + edx*4]
mov ecx, dword [esp + 0x3c]
imul ebp, edi
sar ebp, cl
mov ecx, dword [esp + 0x24]
sar ebx, cl
sub ebx, eax
lea ecx, [ebp + 1]
mov eax, ebx
sar ecx, 1
sub eax, ecx
mov ecx, dword [esp + 0x30]
add esi, eax
mov eax, dword [esp + 0x68]
shr eax, cl
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x78], esi
push dword [esp + 0x78]
mov edi, dword [ecx + eax*4]
mov eax, dword [esp + 0x98]
add edi, dword [esp + 0x8c]
mov esi, dword [eax + 0x80a8]
call fcn.100b0ea0
push dword [esp + 0x58]
fstp dword [esi + edi*4]
push dword [esp + 0x88]
push ebx
call fcn.100b0ea0
push dword [esp + 0x64]
mov eax, dword [esp + 0x8c]
push dword [esp + 0x94]
add eax, ebp
fstp dword [esi + edi*4 + 4]
push eax
call fcn.100b0ea0
mov edx, dword [esp + 0x84]
add esp, 0x24
mov ebp, dword [esp + 0x48]
add edx, ebp
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x60], edx
fstp dword [esi + edi*4 + 8]
mov edi, dword [esp + 0x14]
cmp edx, ebx
jb 0x100aab25
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x7c]
add eax, ebp
add dword [esp + 0x74], ecx
mov dword [esp + 0x6c], eax
cmp eax, dword [esp + 0x24]
jb 0x100aab03
jmp 0x100a9bc2
test ecx, ecx
jne 0x100aae74
mov eax, dword [esp + 0x8c]
mov edi, dword [esp + 0x18]
cmp dword [eax + 0x40], 4
mov ecx, dword [eax + 0x18]
mov dword [esp + 0x70], ecx
mov ecx, edi
jge 0x100aad64
mov dword [esp + 0x74], ecx
cmp edi, dword [esp + 0x24]
jae 0x100ab30c
shl edi, 4
mov eax, ebp
shl eax, 4
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x78], edi
mov edx, eax
mov dword [esp + 0x60], eax
mov eax, ecx
mov ecx, esi
shr eax, cl
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + eax*4]
add eax, dword [esp + 0x70]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x20]
cmp eax, ebx
jae 0x100aad43
nop
mov ebx, dword [esp + 0x30]
mov ecx, esi
shr edx, cl
mov cl, 7
mov al, byte [ebx + edx*4]
mov edi, dword [ebx + edx*4]
and al, 7
mov edx, dword [esp + 0x78]
sub cl, al
mov eax, dword [esp + 0x8c]
mov ebx, dword [esp + 0x38]
shr edi, 3
add edi, dword [esp + 0x80]
mov esi, dword [eax + 0x80a8]
mov eax, dword [esp + 0x60]
and eax, 0xf
movzx edx, byte [eax + edx + 0x10258ab8]
mov eax, dword [esp + 0x60]
and eax, 0xfffffff0
shl eax, 4
add edx, eax
mov eax, dword [esp + 0x44]
cmp dword [eax + edx*4], 0
mov eax, dword [esp + 0x8c]
setg dl
xor dl, byte [eax + 0x8090]
mov al, byte [edi + esi]
shr al, cl
add dl, al
and dl, 1
shl dl, cl
xor byte [edi + esi], dl
mov edx, dword [esp + 0x60]
mov esi, dword [esp + 0x28]
add edx, ebp
mov dword [esp + 0x60], edx
cmp edx, ebx
jb 0x100aacb0
mov edi, dword [esp + 0x78]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x74]
add edi, dword [esp + 0x7c]
add ecx, ebp
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], edi
cmp ecx, dword [esp + 0x24]
jb 0x100aac84
jmp 0x100a9bc2
mov dword [esp + 0x6c], ecx
cmp edi, dword [esp + 0x24]
jae 0x100ab30c
shl edi, 4
mov eax, ebp
shl eax, 4
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x78], edi
mov edx, eax
mov dword [esp + 0x74], eax
mov eax, ecx
mov ecx, esi
shr eax, cl
mov ecx, dword [esp + 0x2c]
mov ecx, dword [ecx + eax*4]
add ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x20]
cmp eax, ebx
jae 0x100aae53
mov al, cl
mov bl, 7
and al, 7
sub bl, al
shr ecx, 3
movzx eax, bl
mov byte [esp + 0x13], bl
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], ecx
mov eax, edx
mov ebx, dword [esp + 0x38]
mov ecx, esi
shr eax, cl
mov ecx, dword [esp + 0x30]
mov edi, dword [ecx + eax*4]
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x78]
add edi, dword [esp + 0x80]
mov esi, dword [eax + 0x80a8]
mov eax, edx
and eax, 0xf
movzx ecx, byte [eax + ecx + 0x10258ab8]
mov eax, edx
and eax, 0xfffffff0
shl eax, 4
add ecx, eax
mov eax, dword [esp + 0x44]
cmp dword [eax + ecx*4], 0
mov eax, dword [esp + 0x8c]
mov cl, byte [esp + 0x13]
setg dl
xor dl, byte [eax + 0x8090]
mov al, byte [edi + esi]
shr al, cl
mov ecx, dword [esp + 0x7c]
add dl, al
and dl, 1
shl dl, cl
xor byte [edi + esi], dl
mov edx, dword [esp + 0x74]
mov esi, dword [esp + 0x28]
add edx, ebp
mov dword [esp + 0x74], edx
cmp edx, ebx
jb 0x100aadc6
mov edi, dword [esp + 0x78]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x6c]
add edi, dword [esp + 0x60]
add ecx, ebp
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x78], edi
cmp ecx, dword [esp + 0x24]
jb 0x100aad86
jmp 0x100a9bc2
cmp ecx, 8
jne 0x100aaff7
mov ecx, dword [esp + 0x1c]
mov eax, 0x10
shl eax, cl
cdq
idiv edi
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x18]
mov edi, eax
mov dword [esp + 0x70], edi
cmp eax, dword [esp + 0x24]
jae case.default.0x100aa82e
mov ecx, dword [esp + 0x28]
mov edx, eax
shl edx, 4
mov eax, ebp
shl eax, 4
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x74], edx
mov ebx, dword [esp + 0x2c]
mov esi, eax
mov eax, edi
mov dword [esp + 0x78], esi
shr eax, cl
mov eax, dword [ebx + eax*4]
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x20]
cmp eax, ebx
jae 0x100aafda
mov eax, esi
mov ecx, dword [esp + 0x34]
and eax, 0xf
mov ebp, dword [esp + 0x30]
movzx edx, byte [eax + edx + 0x10258ab8]
mov eax, esi
mov esi, dword [esp + 0x40]
and eax, 0xfffffff0
shl eax, 4
add edx, eax
mov eax, dword [esp + 0x3c]
mov edi, dword [eax + edx*4]
mov esi, dword [esi + edx*4]
mov eax, dword [esp + 0x14]
imul edi, eax
imul esi, eax
neg edi
sar edi, cl
sar esi, cl
mov ecx, dword [esp + 0x44]
mov edx, dword [ecx + edx*4]
add edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x1c]
imul edx, eax
mov eax, edi
sar eax, 1
sar edx, cl
lea ecx, [esi + 1]
sub edx, eax
sar ecx, 1
mov eax, edx
sub eax, ecx
mov ecx, dword [esp + 0x28]
add edi, eax
mov eax, dword [esp + 0x78]
shr eax, cl
add esi, edi
mov eax, dword [ebp + eax*4]
add eax, dword [esp + 0x7c]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x8c]
mov eax, dword [eax + 0x80a8]
mov dword [esp + 0x60], eax
mov eax, 0x1f
test edi, edi
jns 0x100aaf80
xor edi, edi
jmp 0x100aaf86
cmp edi, 0x1f
cmovg edi, eax
test edx, edx
jns 0x100aaf8e
xor edx, edx
jmp 0x100aaf94
cmp edx, 0x1f
cmovg edx, eax
test esi, esi
jns 0x100aaf9c
xor esi, esi
jmp 0x100aafa2
cmp esi, 0x1f
cmovg esi, eax
mov eax, dword [esp + 0x6c]
mov ebp, dword [esp + 0x48]
shl esi, 5
add esi, edx
mov edx, dword [esp + 0x60]
shl esi, 5
add esi, edi
mov word [edx + eax*2], si
mov esi, dword [esp + 0x78]
mov edx, dword [esp + 0x74]
add esi, ebp
mov dword [esp + 0x78], esi
cmp esi, ebx
jb 0x100aaee5
mov edi, dword [esp + 0x70]
mov eax, dword [esp + 0x20]
add edx, dword [esp + 0x5c]
add edi, ebp
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], edx
cmp edi, dword [esp + 0x24]
jb 0x100aaec0
jmp 0x100a9bc2
cmp ecx, 0xa
jne 0x100ab185
mov ecx, dword [esp + 0x1c]
mov eax, 0x20
shl eax, cl
cdq
idiv edi
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x18]
mov ecx, eax
mov dword [esp + 0x74], ecx
cmp eax, dword [esp + 0x24]
jae case.0x100aaad8.1
shl eax, 4
mov dword [esp + 0x78], eax
mov eax, ebp
shl eax, 4
mov dword [esp + 0x54], eax
mov dword [esp + 0x6c], 0x3f
mov edx, dword [esp + 0x20]
mov eax, ecx
mov ecx, esi
mov dword [esp + 0x60], edx
shr eax, cl
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x7c], eax
cmp edx, ebx
jae 0x100ab164
mov ecx, dword [esp + 0x78]
and edx, 0xf
mov eax, dword [esp + 0x60]
mov esi, dword [esp + 0x40]
and eax, 0xfffffff0
shl eax, 4
movzx edx, byte [edx + ecx + 0x10258ab8]
add edx, eax
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x3c]
mov esi, dword [esi + edx*4]
mov eax, dword [eax + edx*4]
imul eax, edi
imul esi, edi
neg eax
sar eax, cl
sar esi, cl
mov ecx, dword [esp + 0x44]
mov edi, dword [ecx + edx*4]
lea edx, [esi + 1]
add edi, dword [esp + 0x80]
imul edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
sar edx, 1
sar edi, cl
mov ecx, eax
sar ecx, 1
sub edi, ecx
mov ecx, edi
sub ecx, edx
add eax, ecx
add esi, eax
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x70], eax
mov eax, esi
mov esi, dword [esp + 0x28]
mov ecx, esi
cdq
sub eax, edx
mov edx, dword [esp + 0x60]
shr edx, cl
mov ecx, dword [esp + 0x30]
sar eax, 1
mov ecx, dword [ecx + edx*4]
mov edx, 0x1f
add ecx, dword [esp + 0x7c]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x8c]
mov ecx, dword [ecx + 0x80a8]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x70]
test ecx, ecx
jns 0x100ab114
xor ecx, ecx
jmp 0x100ab11a
cmp ecx, 0x1f
cmovg ecx, edx
test edi, edi
jns 0x100ab122
xor edi, edi
jmp 0x100ab12a
cmp edi, 0x3f
cmovg edi, dword [esp + 0x6c]
test eax, eax
jns 0x100ab132
xor eax, eax
jmp 0x100ab138
cmp eax, 0x1f
cmovg eax, edx
mov edx, dword [esp + 0x58]
shl eax, 6
add eax, edi
mov edi, dword [esp + 0x14]
shl eax, 5
add eax, ecx
mov ecx, dword [esp + 0x5c]
mov word [edx + ecx*2], ax
mov edx, dword [esp + 0x60]
add edx, ebp
mov dword [esp + 0x60], edx
cmp edx, ebx
jb 0x100ab062
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x54]
add ecx, ebp
add dword [esp + 0x78], eax
mov dword [esp + 0x74], ecx
cmp ecx, dword [esp + 0x24]
jb 0x100ab041
jmp 0x100a9bc2
cmp ecx, 9
mov ecx, dword [esp + 0x1c]
jne case.default.0x100aa82e
mov eax, 0x200
shl eax, cl
cdq
idiv edi
mov edi, dword [esp + 0x18]
mov dword [esp + 0x80], eax
mov eax, edi
mov dword [esp + 0x6c], eax
cmp edi, dword [esp + 0x24]
jae 0x100a9bca
mov edx, edi
mov dword [esp + 0x78], 0x3ff
mov edi, dword [esp + 0x20]
mov ecx, ebp
shl edx, 4
shl ecx, 4
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x70], edx
nop dword [eax]
mov ebx, dword [esp + 0x2c]
mov esi, edi
shr eax, cl
mov dword [esp + 0x74], esi
mov eax, dword [ebx + eax*4]
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x7c], eax
cmp edi, ebx
jae 0x100ab2eb
nop
mov eax, esi
mov ecx, dword [esp + 0x34]
and eax, 0xf
mov ebp, dword [esp + 0x30]
movzx edx, byte [eax + edx + 0x10258ab8]
mov eax, esi
mov esi, dword [esp + 0x40]
and eax, 0xfffffff0
shl eax, 4
add edx, eax
mov eax, dword [esp + 0x3c]
mov edi, dword [eax + edx*4]
mov esi, dword [esi + edx*4]
mov eax, dword [esp + 0x14]
imul edi, eax
imul esi, eax
neg edi
sar edi, cl
sar esi, cl
mov ecx, dword [esp + 0x44]
mov edx, dword [ecx + edx*4]
add edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x1c]
imul edx, eax
mov eax, edi
sar eax, 1
sar edx, cl
lea ecx, [esi + 1]
sub edx, eax
sar ecx, 1
mov eax, edx
sub eax, ecx
mov ecx, dword [esp + 0x28]
add edi, eax
mov eax, dword [esp + 0x74]
shr eax, cl
add esi, edi
mov eax, dword [ebp + eax*4]
mov ebp, dword [esp + 0x8c]
add eax, dword [esp + 0x7c]
mov ebp, dword [ebp + 0x80a8]
test edi, edi
jns 0x100ab28e
xor edi, edi
jmp 0x100ab299
cmp edi, 0x3ff
cmovg edi, dword [esp + 0x78]
test edx, edx
jns 0x100ab2a1
xor edx, edx
jmp 0x100ab2ac
cmp edx, 0x3ff
cmovg edx, dword [esp + 0x78]
test esi, esi
jns 0x100ab2b4
xor esi, esi
jmp 0x100ab2bf
cmp esi, 0x3ff
cmovg esi, dword [esp + 0x78]
shl esi, 0xa
add esi, edx
mov edx, dword [esp + 0x70]
shl esi, 0xa
add esi, edi
mov dword [ebp + eax*4], esi
mov esi, dword [esp + 0x74]
mov ebp, dword [esp + 0x48]
add esi, ebp
mov dword [esp + 0x74], esi
cmp esi, ebx
jb 0x100ab200
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x6c]
add edx, dword [esp + 0x60]
add eax, ebp
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], edx
cmp eax, dword [esp + 0x24]
jb 0x100ab1e0
jmp 0x100a9bc2
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
jmp 0x100a9bd5
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x84]
xor edx, edx
dec eax
add eax, ebp
div ebp
mov edx, dword [esp + 0x8c]
cmp dword [edx + 0xc], 7
mov dword [edx + 0x80bc], eax
jne case.default.0x100ab359
cmp dword [edx + 0x5c], 0
jne case.default.0x100ab359
mov eax, dword [edx + 0x10]
dec eax
cmp eax, 6
ja case.default.0x100ab359
jmp dword [eax*4 + 0x100ab590]
cmp edi, dword [esp + 0x24]
jae case.default.0x100ab359
mov eax, dword [esp + 0x20]
nop
mov edx, eax
mov ecx, esi
mov eax, edi
shr eax, cl
mov ecx, dword [esp + 0x2c]
mov edi, dword [ecx + eax*4]
mov eax, dword [esp + 0x20]
cmp eax, ebx
jae 0x100ab3c2
mov ebp, dword [esp + 0x68]
mov eax, edx
mov ecx, esi
shr eax, cl
mov ecx, dword [esp + 0x30]
mov ecx, dword [ecx + eax*4]
mov eax, dword [esp + 0x8c]
add ecx, edi
add ecx, dword [eax + 0x80a8]
mov eax, dword [esp + 0x64]
mov al, byte [ecx + eax]
mov byte [ecx + 1], al
mov byte [ecx + ebp], al
mov ebp, dword [esp + 0x48]
add edx, ebp
cmp edx, ebx
jb 0x100ab387
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
add edi, ebp
mov dword [esp + 0x18], edi
cmp edi, dword [esp + 0x24]
jb 0x100ab370
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x78
ret
cmp edi, dword [esp + 0x24]
jae case.default.0x100ab359
mov eax, dword [esp + 0x20]
nop word [eax + eax]
mov edx, eax
mov ecx, esi
mov eax, edi
shr eax, cl
mov ecx, dword [esp + 0x2c]
mov edi, dword [ecx + eax*4]
mov eax, dword [esp + 0x20]
cmp eax, ebx
jae 0x100ab445
mov ebp, dword [esp + 0x68]
mov eax, edx
mov ecx, esi
shr eax, cl
mov ecx, dword [esp + 0x30]
mov ecx, dword [ecx + eax*4]
mov eax, dword [esp + 0x8c]
add ecx, edi
add ecx, dword [eax + 0x80a8]
mov eax, dword [esp + 0x64]
movzx eax, word [ecx + eax*2]
mov word [ecx + 2], ax
mov word [ecx + ebp*2], ax
mov ebp, dword [esp + 0x48]
add edx, ebp
cmp edx, ebx
jb 0x100ab407
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
add edi, ebp
mov dword [esp + 0x18], edi
cmp edi, dword [esp + 0x24]
jb 0x100ab3f0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x78
ret
cmp edi, dword [esp + 0x24]
jae case.default.0x100ab359
mov eax, dword [esp + 0x20]
nop dword [eax]
mov edx, eax
mov ecx, esi
mov eax, edi
shr eax, cl
mov ecx, dword [esp + 0x2c]
mov edi, dword [ecx + eax*4]
mov eax, dword [esp + 0x20]
cmp eax, ebx
jae 0x100ab4c2
mov ebp, dword [esp + 0x68]
mov eax, edx
mov ecx, esi
shr eax, cl
mov ecx, dword [esp + 0x30]
mov ecx, dword [ecx + eax*4]
mov eax, dword [esp + 0x8c]
add ecx, edi
add ecx, dword [eax + 0x80a8]
mov eax, dword [esp + 0x64]
mov eax, dword [ecx + eax*4]
mov dword [ecx + 4], eax
mov dword [ecx + ebp*4], eax
mov ebp, dword [esp + 0x48]
add edx, ebp
cmp edx, ebx
jb 0x100ab487
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
add edi, ebp
mov dword [esp + 0x18], edi
cmp edi, dword [esp + 0x24]
jb 0x100ab470
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x78
ret