Function at 0x100a5df0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x350
mov ecx, dword [0x1026f864]
mov eax, dword [ebp + 0x10]
mov edi, dword [ebp + 0x18]
xor ecx, ebp
lea edi, [edi*8 - 4]
mov dword [ebp - 0x10], ecx
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x2f4], ecx
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
movsd qword [ebp - 0x2fc], xmm1
movsd qword [ebp - 0x304], xmm0
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0x10]
mov esi, ecx
sub edx, ecx
neg esi
cmp edx, edi
cmovg edx, edi
cmp edi, esi
cmovl edx, esi
mov esi, dword [ebp + 8]
add edx, ecx
mov dword [eax + 8], edx
mov edx, dword [ebp + 0xc]
mov dword [edx + 0x10], 0
cmp dword [edx], 0
jne 0x100a5e6d
mov eax, dword [esi + 0x1950]
add eax, eax
mov dword [edx], eax
mov eax, dword [ebp + 0x14]
cmp dword [esi + 0x1964], 0
jne 0x100a5e87
mov ecx, dword [esi + 0x1950]
add ecx, ecx
mov dword [esi + 0x1964], ecx
mov ecx, dword [ebp - 0x2fc]
mov edi, dword [ebp - 0x2f4]
test eax, eax
je 0x100a5eb1
add ecx, 0xa
mov dword [ebp - 0x31c], 0xb
cmp edi, ecx
cmovbe ecx, edi
mov dword [ebp - 0x2fc], ecx
jmp 0x100a5eba
xor eax, eax
inc eax
mov dword [ebp - 0x31c], eax
mov eax, dword [edx + 0x4c]
mov edx, dword [ebp + 0xc]
mov esi, dword [ebp + 0xc]
xor ebx, ebx
mov edx, dword [edx + 0x54]
mov dword [esi + 0x48], eax
mov eax, dword [ebp + 0xc]
mov dword [eax + 0x50], edx
mov edx, dword [ebp + 0xc]
mov eax, ecx
shr eax, 3
cmp ecx, edi
setl bl
add ebx, ecx
and cl, 7
mov dword [edx + 0x58], 1
mov esi, dword [ebp - 0x304]
movzx eax, byte [esi + eax]
mov dword [ebp - 0x2fc], ebx
shl eax, cl
test al, 0x80
je 0x100a6118
mov eax, dword [edx + 0x20]
mov dword [edx + 4], 1
mov dword [edx + 8], 0
xor ecx, ecx
mov dword [ebp - 0x30c], ebx
mov dword [ebp - 0x318], eax
movzx eax, word [edx + 0x18]
mov word [ebp - 0x228], ax
mov eax, dword [edx + 0x14]
mov dword [ebp - 0x22c], eax
mov eax, ebx
shr eax, 3
cmp ebx, edi
setl cl
movzx eax, byte [esi + eax]
mov dword [ebp - 0x310], ecx
add ecx, ebx
mov dword [ebp - 0x314], ecx
mov ecx, ebx
and cl, 7
mov ebx, dword [ebp - 0x314]
shl eax, cl
shr eax, 7
and eax, 1
mov dword [ebp - 0x2fc], ebx
mov dword [edx + 0x1c], eax
mov eax, ebx
shr eax, 3
mov eax, dword [esi + eax]
mov dword [esp], eax
call fcn.101eaef1
and bl, 7
mov edx, dword [ebp - 0x310]
mov ecx, ebx
mov ebx, dword [ebp - 0x30c]
shl eax, cl
shr eax, 0xfc
lea ebx, [ebx + edx + 4]
mov edx, dword [ebp + 0xc]
cmp edi, ebx
cmovbe ebx, edi
mov dword [ebp - 0x2fc], ebx
mov byte [edx + 0x14], al
mov eax, ebx
shr eax, 3
mov eax, dword [esi + eax]
mov dword [esp], eax
call fcn.101eaef1
mov ecx, ebx
mov edx, dword [ebp + 0xc]
add ebx, 4
and cl, 7
shl eax, cl
shr eax, 0xfc
cmp edi, ebx
cmovbe ebx, edi
mov dword [ebp - 0x2fc], ebx
mov byte [edx + 0x15], al
mov eax, ebx
shr eax, 3
mov eax, dword [esi + eax]
mov dword [esp], eax
call fcn.101eaef1
mov ecx, ebx
add ebx, 3
mov dword [ebp - 0x320], edi
mov dword [ebp - 0x308], esi
and cl, 7
shl eax, cl
shr eax, 0xfd
cmp edi, ebx
mov ecx, dword [ebp + 0xc]
cmovbe ebx, edi
add ebx, 2
cmp edi, ebx
cmovbe ebx, edi
mov byte [ecx + 0x16], al
xor eax, eax
mov ecx, ebx
mov dword [ebp - 0x2fc], ebx
shr ecx, 3
cmp ebx, edi
setl al
add eax, ebx
mov edx, eax
mov dword [ebp - 0x310], eax
shr edx, 3
mov dword [ebp - 0x314], edx
xor edx, edx
cmp eax, edi
movzx edi, byte [esi + ecx]
mov dword [ebp - 0x2fc], eax
setl dl
and bl, 7
add edx, eax
mov eax, dword [ebp - 0x314]
mov ecx, ebx
mov ebx, edi
shl ebx, cl
movzx eax, byte [esi + eax]
test bl, 0x80
mov dword [ebp - 0x2fc], edx
mov dword [ebp - 0x314], eax
je 0x100a6123
mov eax, edx
mov ebx, edx
shr eax, 3
mov eax, dword [esi + eax]
mov dword [esp], eax
call fcn.101eaef1
mov ecx, ebx
mov edi, dword [ebp - 0x320]
add ebx, 2
and cl, 7
shl eax, cl
mov ecx, dword [ebp + 0xc]
shr eax, 0xfe
cmp edi, ebx
cmovbe ebx, edi
xor edx, edx
mov dword [ebp - 0x2fc], ebx
mov byte [ecx + 0x17], al
mov eax, ebx
mov ecx, ebx
shr eax, 3
cmp ebx, edi
movzx eax, byte [esi + eax]
setl dl
and cl, 7
mov dword [ebp - 0x328], edx
add edx, ebx
mov dword [ebp - 0x2fc], edx
mov dword [ebp - 0x324], edx
shl eax, cl
mov ecx, dword [ebp + 0xc]
shr al, 7
mov byte [ecx + 0x18], al
mov eax, edx
shr eax, 3
mov eax, dword [esi + eax]
mov dword [esp], eax
call fcn.101eaef1
mov ecx, dword [ebp - 0x324]
mov edx, ebx
and cl, 7
shl eax, cl
mov ecx, dword [ebp - 0x328]
shr eax, 0xfe
lea edx, [ebx + ecx + 2]
mov ebx, dword [ebp + 0xc]
cmp edi, edx
cmovbe edx, edi
mov dword [ebp - 0x2fc], edx
jmp 0x100a6134
mov esi, dword [ebp - 0x31c]
jmp 0x100a6286
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebp - 0x320]
mov al, 2
mov word [ebx + 0x17], 0x102
mov byte [ebx + 0x19], al
and dword [ebp - 0x310], 7
movzx ecx, word [ebp - 0x228]
mov eax, dword [ebp - 0x22c]
xor cx, word [ebx + 0x18]
xor eax, dword [ebx + 0x14]
movzx ecx, cx
or ecx, eax
je 0x100a6160
mov dword [ebx + 0x10], 1
mov eax, dword [ebp - 0x314]
mov esi, dword [ebp - 0x308]
mov ecx, dword [ebp - 0x310]
shl eax, cl
test al, 0x80
je 0x100a6242
mov eax, edx
mov ebx, edx
shr eax, 3
mov eax, dword [esi + eax]
mov dword [esp], eax
call fcn.101eaef1
mov ecx, ebx
mov edx, dword [ebp + 0xc]
add ebx, 2
and cl, 7
shl eax, cl
shr eax, 0xfe
cmp edi, ebx
mov dword [ebp - 0x310], eax
cmovbe ebx, edi
mov dword [ebp - 0x2fc], ebx
mov dword [edx + 0x20], eax
mov eax, ebx
shr eax, 3
mov eax, dword [esi + eax]
mov dword [esp], eax
call fcn.101eaef1
mov ecx, ebx
mov esi, dword [ebp + 0xc]
add ebx, 2
and cl, 7
shl eax, cl
shr eax, 0xfe
cmp edi, ebx
mov ecx, dword [ebp - 0x308]
cmovbe ebx, edi
mov dword [ebp - 0x2fc], ebx
mov dword [esi + 0x24], eax
mov eax, ebx
shr eax, 3
movzx edx, byte [ecx + eax]
xor eax, eax
cmp ebx, edi
setl al
add eax, ebx
and bl, 7
mov ecx, ebx
mov dword [ebp - 0x2fc], eax
xor ebx, ebx
shl edx, cl
mov ecx, eax
shr edx, 7
shr ecx, 3
and edx, 1
cmp eax, edi
mov dword [esi + 0x28], edx
mov edx, dword [ebp - 0x308]
setl bl
add ebx, eax
and al, 7
mov edi, ebx
movzx edx, byte [edx + ecx]
mov ecx, eax
mov eax, dword [ebp - 0x310]
mov dword [ebp - 0x2fc], ebx
shl edx, cl
shr edx, 7
and edx, 1
jmp 0x100a625b
mov edi, edx
xor edx, edx
mov eax, 2
mov esi, ebx
inc edx
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x24], eax
mov dword [ebx + 0x28], 1
cmp eax, dword [ebp - 0x318]
mov dword [esi + 0x2c], edx
mov edx, esi
je 0x100a6278
cmp dword [edx + 0x10], 0
jne 0x100a6278
mov ecx, edx
call fcn.100a9fd0
mov edx, dword [ebp + 0xc]
mov esi, dword [ebp - 0x31c]
sub esi, dword [ebp - 0x30c]
add esi, edi
cmp dword [edx + 0x10], 0
mov dword [ebp - 0x31c], esi
je 0x100a68a5
mov edi, dword [edx]
cmp edi, 0xf9ff
jg 0x100a62d8
cmp edi, 0x7cff
jg 0x100a62fd
cmp edi, 0x3e80
je 0x100a74ff
cmp edi, 0x5622
je 0x100a751d
cmp edi, 0x5dc0
jne 0x100a6872
mov dword [ebp - 0x308], 0x1023fddc
jmp 0x100a634f
cmp edi, 0x1f3ff
jg 0x100a6329
cmp edi, 0xfa00
je 0x100a631d
cmp edi, 0x15888
je 0x100a6345
cmp edi, 0x17700
je 0x100a6345
jmp 0x100a6872
cmp edi, 0x7d00
je 0x100a750e
cmp edi, 0xac44
je 0x100a631d
cmp edi, 0xbb80
jne 0x100a6872
mov dword [ebp - 0x308], 0x1023fdfc
jmp 0x100a634f
cmp edi, 0x1f400
je 0x100a6345
cmp edi, 0x2b110
je 0x100a6345
cmp edi, 0x2ee00
jne 0x100a6872
mov dword [ebp - 0x308], 0x1023fe0c
cmp edi, 0xfa00
mov eax, 0xfa0
mov edx, 0x1388
mov ecx, 0xbb8
mov esi, edi
cmovl edx, eax
cmp edi, 0x7d00
cmovge ecx, edx
shr esi, 1
xor edx, edx
mov eax, ecx
shl ecx, 8
shl eax, 7
add ecx, esi
add eax, esi
div edi
mov ebx, eax
mov eax, ecx
xor edx, edx
div edi
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x308]
mov esi, eax
movzx eax, byte [edx + 0x14]
movsx eax, byte [ecx + eax]
add eax, ebx
mov dword [edx + 0x34], eax
mov cl, byte [edx + 0x15]
cmp cl, 0xd
ja 0x100a680f
movss xmm0, dword [0x1023e25c]
cvtsi2ss xmm1, esi
mov dword [edx + 0x3c], esi
mov dword [esp + 0xc], 0x3fb3b13b
mov dword [esp + 8], 0x20000000
movss dword [ebp - 0x308], xmm1
divss xmm0, xmm1
cvtss2sd xmm0, xmm0
movsd qword [esp], xmm0
call fcn.101f23e0
fstp dword [ebp - 0x34c]
movss xmm0, dword [ebp - 0x34c]
movss xmm1, dword [ebp - 0x308]
mulss xmm1, xmm0
movss dword [ebp - 0x30c], xmm0
movss dword [ebp - 0x308], xmm1
movss dword [esp], xmm1
call fcn.101f2344
movss xmm0, dword [ebp - 0x308]
mov ebx, eax
sub eax, esi
lea edi, [ebp - 0x12]
mov word [edi - 0x18], ax
mulss xmm0, dword [ebp - 0x30c]
movss dword [ebp - 0x308], xmm0
movss dword [esp], xmm0
call fcn.101f2344
movss xmm0, dword [ebp - 0x308]
mov esi, eax
sub eax, ebx
mov word [edi - 0x16], ax
mulss xmm0, dword [ebp - 0x30c]
movss dword [ebp - 0x308], xmm0
movss dword [esp], xmm0
call fcn.101f2344
movss xmm0, dword [ebp - 0x308]
mov ebx, eax
sub eax, esi
mov word [edi - 0x14], ax
mulss xmm0, dword [ebp - 0x30c]
movss dword [ebp - 0x308], xmm0
movss dword [esp], xmm0
call fcn.101f2344
movss xmm0, dword [ebp - 0x308]
mov esi, eax
sub eax, ebx
mov word [edi - 0x12], ax
mulss xmm0, dword [ebp - 0x30c]
movss dword [ebp - 0x308], xmm0
movss dword [esp], xmm0
call fcn.101f2344
movss xmm0, dword [ebp - 0x308]
mov ebx, eax
sub eax, esi
mov word [edi - 0x10], ax
mulss xmm0, dword [ebp - 0x30c]
movss dword [ebp - 0x308], xmm0
movss dword [esp], xmm0
call fcn.101f2344
movss xmm0, dword [ebp - 0x308]
mov esi, eax
sub eax, ebx
mov word [edi - 0xe], ax
mulss xmm0, dword [ebp - 0x30c]
movss dword [ebp - 0x308], xmm0
movss dword [esp], xmm0
call fcn.101f2344
movss xmm0, dword [ebp - 0x308]
mov ebx, eax
sub eax, esi
mov word [edi - 0xc], ax
mulss xmm0, dword [ebp - 0x30c]
movss dword [ebp - 0x308], xmm0
movss dword [esp], xmm0
call fcn.101f2344
movss xmm0, dword [ebp - 0x308]
mov esi, eax
sub eax, ebx
mov word [edi - 0xa], ax
mulss xmm0, dword [ebp - 0x30c]
movss dword [ebp - 0x308], xmm0
movss dword [esp], xmm0
call fcn.101f2344
movss xmm0, dword [ebp - 0x308]
mov ebx, eax
sub eax, esi
mov word [edi - 8], ax
mulss xmm0, dword [ebp - 0x30c]
movss dword [ebp - 0x308], xmm0
movss dword [esp], xmm0
call fcn.101f2344
movss xmm0, dword [ebp - 0x308]
mov esi, eax
sub eax, ebx
mov word [edi - 6], ax
mulss xmm0, dword [ebp - 0x30c]
movss dword [ebp - 0x308], xmm0
movss dword [esp], xmm0
call fcn.101f2344
movss xmm0, dword [ebp - 0x308]
mov ebx, eax
sub eax, esi
mov word [edi - 4], ax
mulss xmm0, dword [ebp - 0x30c]
movss dword [esp], xmm0
call fcn.101f2344
mov ecx, 0x40
sub ecx, eax
sub eax, ebx
xor ebx, ebx
mov word [edi - 2], ax
mov word [edi], cx
lea ecx, [ebp - 0x2a]
inc ebx
mov dword [ebp - 0x22c], ecx
mov dword [ebp - 0x228], edi
mov esi, dword [ebp + ebx*8 - 0x234]
mov edx, dword [ebp + ebx*8 - 0x230]
dec ebx
cmp esi, edx
jae 0x100a67e9
lea eax, [edx - 2]
cmp esi, eax
jae 0x100a67d8
mov ecx, edx
mov dword [ebp - 0x314], ebx
mov dword [ebp - 0x308], esi
movzx edi, word [edx]
mov dword [ebp - 0x30c], edx
sub ecx, esi
sar ecx, 2
lea ebx, [esi + ecx*2]
movzx esi, word [esi]
movzx ecx, word [ebx]
mov dword [ebp - 0x310], ebx
cmp si, di
mov word [ebp - 0x318], si
jle 0x100a6670
cmp di, cx
mov esi, edx
cmovg edi, ecx
cmovg esi, ebx
mov ecx, edi
jmp 0x100a667c
cmp si, cx
mov esi, ebx
mov edi, 1
jle 0x100a6697
movzx edx, word [ebp - 0x318]
xor edi, edi
mov word [esi], dx
mov edx, dword [ebp - 0x308]
mov word [edx], cx
mov edx, dword [ebp - 0x30c]
mov esi, dword [ebp - 0x310]
movzx ebx, word [edx]
mov dword [ebp - 0x318], edi
lea edi, [edx - 4]
movzx ecx, word [esi]
cmp cx, bx
jle 0x100a66c3
mov word [edx], cx
mov word [esi], bx
mov dword [ebp - 0x318], 0
jmp 0x100a66c5
mov ebx, ecx
mov edx, dword [ebp - 0x308]
cmp edx, edi
je 0x100a67d0
movzx ecx, word [eax]
mov word [esi], cx
lea esi, [edx + 2]
mov word [eax], bx
cmp esi, edi
jbe 0x100a66eb
mov edx, dword [ebp - 0x30c]
jmp 0x100a6732
mov edx, dword [ebp - 0x30c]
cmp esi, edi
ja 0x100a6704
movzx ecx, word [eax]
cmp word [esi], cx
jge 0x100a6704
add esi, 2
cmp esi, edi
jbe 0x100a66f8
cmp esi, edi
ja 0x100a672b
movzx ecx, word [eax]
movzx ebx, word [edi]
cmp bx, cx
jle 0x100a671c
add edi, 0xfffffffe
cmp esi, edi
jbe 0x100a670b
jmp 0x100a672b
movzx ecx, word [esi]
mov word [edi], cx
mov word [esi], bx
add esi, 2
add edi, 0xfffffffe
cmp esi, edi
jbe 0x100a66f1
movzx ebx, word [eax]
movzx ecx, word [esi]
cmp dword [ebp - 0x318], 0
mov word [esi], bx
mov word [eax], cx
je 0x100a6773
cmp dword [ebp - 0x310], esi
je 0x100a6757
lea eax, [esi - 2]
cmp dword [ebp - 0x310], eax
jne 0x100a6773
mov ecx, dword [ebp - 0x308]
mov eax, ecx
cmp ecx, edx
jae 0x100a676f
movzx ebx, word [eax]
lea ecx, [eax + 2]
cmp bx, word [eax + 2]
jle 0x100a675d
cmp edx, eax
je 0x100a67d0
mov eax, edx
mov edx, dword [ebp - 0x308]
mov ecx, esi
sub eax, esi
sub ecx, edx
cmp eax, ecx
jge 0x100a67a4
mov ebx, dword [ebp - 0x314]
add esi, 2
mov dword [ebp + ebx*8 - 0x22c], edx
mov dword [ebp + ebx*8 - 0x228], edi
mov edi, dword [ebp - 0x30c]
jmp 0x100a67c3
mov ebx, dword [ebp - 0x314]
mov eax, dword [ebp - 0x30c]
add esi, 2
mov dword [ebp + ebx*8 - 0x22c], esi
mov esi, edx
mov dword [ebp + ebx*8 - 0x228], eax
inc ebx
cmp esi, edi
mov edx, edi
jb 0x100a661f
jmp 0x100a67e9
mov ebx, dword [ebp - 0x314]
jmp 0x100a67e9
movzx eax, word [esi]
movzx ecx, word [edx]
cmp ax, cx
jle 0x100a67e9
mov word [edx], ax
mov word [esi], cx
test ebx, ebx
jne 0x100a6608
mov edx, dword [ebp + 0xc]
movzx ecx, byte [edx + 0x15]
test ecx, ecx
je 0x100a6820
mov eax, dword [edx + 0x3c]
xor edx, edx
movsx esi, word [ebp + edx*2 - 0x2a]
inc edx
add eax, esi
cmp edx, ecx
jb 0x100a6801
jmp 0x100a681b
cmp cl, 0xf
je 0x100a6825
cmp cl, 0xe
jne 0x100a6872
add eax, eax
mov edx, dword [ebp + 0xc]
jmp 0x100a6828
mov eax, dword [edx + 0x3c]
jmp 0x100a682b
lea eax, [eax + eax*2]
mov dword [edx + 0x3c], eax
cmp eax, 0x40
mov ecx, 0x40
mov esi, 0x30
cmovb ecx, eax
mov dword [edx + 0x3c], ecx
mov eax, dword [edx]
cmp eax, 0x7d01
jl 0x100a6863
mov esi, 0x23
cmp eax, 0xac44
je 0x100a6863
mov esi, 0x20
cmp eax, 0xbb7f
jle 0x100a858c
mov edx, dword [edx + 0x34]
mov eax, ecx
sub eax, edx
cmp eax, esi
jbe 0x100a6bf4
mov edx, dword [ebp + 0xc]
xor eax, eax
mov esi, dword [ebp - 0x31c]
mov dword [edx + 4], eax
mov dword [edx + 8], eax
mov dword [edx + 0x4c], 0x20
mov dword [edx + 0x54], eax
xor eax, eax
dec eax
mov dword [edx + 0x190e8], eax
mov dword [edx + 0x3948], eax
mov dword [edx + 0x14], eax
mov word [edx + 0x18], 0xffff
cmp dword [edx + 4], 0
je 0x100a7442
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp - 0x2fc]
test eax, 0xfffffffd
mov dword [edx + 0xc], eax
mov dword [edx + 8], 1
je 0x100a715f
cmp eax, 1
jne 0x100a73cb
lea edx, [ebp - 0x304]
mov eax, ecx
xor ebx, ebx
mov esi, dword [edx]
mov edi, dword [edx + 0x10]
shr eax, 3
movzx edx, byte [esi + eax]
cmp ecx, edi
mov eax, ecx
setl bl
and cl, 7
mov dword [ebp - 0x310], eax
shl edx, cl
lea ecx, [eax + ebx + 8]
add eax, ebx
cmp edi, ecx
cmovbe ecx, edi
test dl, 0x80
lea edx, [ebp - 0x304]
cmove ecx, eax
mov eax, ecx
mov dword [edx + 8], ecx
shr eax, 3
movzx esi, byte [esi + eax]
xor eax, eax
cmp ecx, edi
setl al
add eax, ecx
and cl, 7
mov dword [edx + 8], eax
shl esi, cl
mov ecx, dword [ebp + 0xc]
shr esi, 7
mov eax, esi
and eax, 1
lea edi, [ecx + 0x60]
mov dword [ecx + 0x30], eax
mov dword [esp], edi
call fcn.100aa3b0
and esi, 1
jne 0x100a73f7
mov ebx, dword [ebp + 0xc]
test eax, eax
jne 0x100a7402
lea esi, [ebx + 0x15800]
lea edx, [ebp - 0x304]
mov ecx, ebx
mov dword [esp], esi
call fcn.100aa3b0
test eax, eax
jne 0x100a7402
mov eax, dword [ebx + 0x68]
mov dword [ebp - 0x314], esi
mov dword [ebp - 0x318], edi
test eax, eax
jle 0x100a69dc
mov ecx, dword [ebp - 0x304]
mov edx, dword [ebp + 0xc]
mov esi, dword [ebp - 0x2f4]
mov dword [ebp - 0x308], ecx
mov ecx, dword [ebp - 0x2fc]
lea edi, [edx + 0x78]
mov ebx, dword [ebp - 0x308]
mov edx, ecx
shr edx, 3
movzx edx, byte [ebx + edx]
xor ebx, ebx
cmp ecx, esi
setl bl
add ebx, ecx
and cl, 7
mov dword [ebp - 0x2fc], ebx
shl edx, cl
mov ecx, ebx
shr dl, 7
mov byte [edi], dl
inc edi
dec eax
jne 0x100a69ae
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x74]
test eax, eax
jle 0x100a6a32
mov ecx, dword [ebp - 0x304]
mov edx, dword [ebp + 0xc]
mov esi, dword [ebp - 0x2f4]
mov dword [ebp - 0x308], ecx
mov ecx, dword [ebp - 0x2fc]
lea edi, [edx + 0x7d]
mov ebx, dword [ebp - 0x308]
mov edx, ecx
shr edx, 3
movzx edx, byte [ebx + edx]
xor ebx, ebx
cmp ecx, esi
setl bl
add ebx, ecx
and cl, 7
mov dword [ebp - 0x2fc], ebx
shl edx, cl
mov ecx, ebx
shr dl, 7
mov byte [edi], dl
inc edi
dec eax
jne 0x100a6a04
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x15808]
test eax, eax
jle 0x100a6a8e
mov ecx, dword [ebp - 0x304]
mov edx, dword [ebp + 0xc]
mov esi, dword [ebp - 0x2f4]
mov dword [ebp - 0x308], ecx
mov ecx, dword [ebp - 0x2fc]
lea edi, [edx + 0x15818]
mov ebx, dword [ebp - 0x308]
mov edx, ecx
shr edx, 3
movzx edx, byte [ebx + edx]
xor ebx, ebx
cmp ecx, esi
setl bl
add ebx, ecx
and cl, 7
mov dword [ebp - 0x2fc], ebx
shl edx, cl
mov ecx, ebx
shr dl, 7
mov byte [edi], dl
inc edi
dec eax
jne 0x100a6a60
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x15814]
test eax, eax
jle 0x100a6aea
mov ecx, dword [ebp - 0x304]
mov edx, dword [ebp + 0xc]
mov esi, dword [ebp - 0x2f4]
mov dword [ebp - 0x308], ecx
mov ecx, dword [ebp - 0x2fc]
lea edi, [edx + 0x1581d]
mov ebx, dword [ebp - 0x308]
mov edx, ecx
shr edx, 3
movzx edx, byte [ebx + edx]
xor ebx, ebx
cmp ecx, esi
setl bl
add ebx, ecx
and cl, 7
mov dword [ebp - 0x2fc], ebx
shl edx, cl
mov ecx, ebx
shr dl, 7
mov byte [edi], dl
inc edi
dec eax
jne 0x100a6abc
mov ecx, dword [ebp + 0xc]
mov al, byte [ecx + 0x83]
mov byte [ecx + 0x88], al
mov eax, dword [ecx + 0x7f]
mov dword [ecx + 0x84], eax
cmp dword [ecx + 0x4bb68], 0
je 0x100a8197
mov eax, dword [ebp - 0x304]
mov esi, dword [ebp - 0x2f4]
mov ebx, dword [ebp - 0x2fc]
xor edi, edi
mov dword [ebp - 0x308], eax
mov ecx, dword [ebp - 0x308]
mov eax, ebx
shr eax, 3
mov eax, dword [ecx + eax]
mov dword [esp], eax
call fcn.101eaef1
mov ecx, ebx
mov edx, dword [ebp + 0xc]
add ebx, 2
and cl, 7
shl eax, cl
shr eax, 0xfe
cmp esi, ebx
cmovbe ebx, esi
mov dword [ebp - 0x2fc], ebx
mov byte [edx + edi + 0x7f], al
inc edi
mov eax, dword [edx + 0x4bb68]
cmp edi, eax
jb 0x100a6b29
mov cl, byte [edx + 0x15823]
test eax, eax
mov edi, edx
mov byte [edx + 0x15828], cl
mov ecx, dword [edx + 0x1581f]
mov dword [edx + 0x15824], ecx
je 0x100a81b1
mov eax, dword [ebp - 0x2f4]
mov ecx, dword [ebp - 0x304]
mov ebx, dword [ebp - 0x2fc]
xor esi, esi
mov dword [ebp - 0x308], eax
mov dword [ebp - 0x30c], ecx
mov edx, dword [ebp - 0x30c]
mov eax, ebx
shr eax, 3
mov eax, dword [edx + eax]
mov dword [esp], eax
call fcn.101eaef1
mov edx, dword [ebp - 0x308]
mov ecx, ebx
add ebx, 2
and cl, 7
shl eax, cl
shr eax, 0xfe
cmp edx, ebx
cmovbe ebx, edx
mov dword [ebp - 0x2fc], ebx
mov byte [edi + esi + 0x1581f], al
inc esi
cmp esi, dword [edi + 0x4bb68]
jb 0x100a6bab
jmp 0x100a81b1
mov edi, dword [ebp + 0xc]
movzx esi, byte [edi + 0x17]
test esi, esi
je 0x100a749a
mov eax, 7
imul ebx, edx, 0x6e
movq xmm2, qword [0x1022ae58]
movd xmm1, edx
sub eax, esi
imul esi, ecx, 0x31
mov dword [ebp - 0x32c], ebx
cmp esi, ebx
lea ebx, [edx + edx]
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
mov dword [ebp - 0x324], esi
cmovbe ebx, ecx
movss dword [ebp - 0x320], xmm0
movd xmm0, ebx
por xmm1, xmm2
mov dword [edi + 0x38], ebx
por xmm0, xmm2
subsd xmm1, xmm2
subsd xmm0, xmm2
cvtsd2ss xmm1, xmm1
cvtsd2ss xmm0, xmm0
divss xmm0, xmm1
movss dword [esp], xmm0
call fcn.101f232d
fstp dword [ebp - 0x348]
movss xmm0, dword [ebp - 0x348]
mulss xmm0, dword [ebp - 0x320]
movss dword [esp], xmm0
call fcn.101f2344
test eax, eax
jle 0x100a6872
lea esi, [eax + eax]
mov dword [ebp - 0x330], eax
lea eax, [ebp - 0x28c]
movss xmm1, dword [0x10210930]
mov word [eax - 2], 0
xorps xmm0, xmm0
cvtsi2ss xmm0, esi
mov ebx, dword [edi + 0x34]
mov eax, dword [edi + 0x38]
divss xmm1, xmm0
xorps xmm2, xmm2
cvtsi2ss xmm2, ebx
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
mov dword [ebp - 0x310], eax
divss xmm0, xmm2
movss dword [ebp - 0x308], xmm2
cvtss2sd xmm1, xmm1
movsd qword [esp + 8], xmm1
cvtss2sd xmm0, xmm0
movsd qword [esp], xmm0
call fcn.101f23e0
fstp dword [ebp - 0x344]
lea edi, [ebp - 0x28c]
movss xmm0, dword [ebp - 0x344]
mov dword [ebp - 0x328], esi
dec esi
movss dword [ebp - 0x30c], xmm0
movss xmm0, dword [ebp - 0x308]
mulss xmm0, dword [ebp - 0x30c]
movss dword [ebp - 0x308], xmm0
movss dword [esp], xmm0
call fcn.101f2344
mov ecx, eax
sub ecx, ebx
mov ebx, eax
mov word [edi], cx
add edi, 2
dec esi
jne 0x100a6d1d
mov ecx, dword [ebp - 0x310]
lea edx, [ebp - 0x28c]
mov dword [ebp - 0x22c], edx
sub ecx, eax
mov eax, dword [ebp - 0x328]
xor ebx, ebx
inc ebx
mov word [ebp + eax*2 - 0x28e], cx
lea eax, [edx + eax*2 - 2]
mov dword [ebp - 0x228], eax
mov esi, dword [ebp + ebx*8 - 0x234]
mov edx, dword [ebp + ebx*8 - 0x230]
dec ebx
cmp esi, edx
jae 0x100a6f5e
lea eax, [edx - 2]
cmp esi, eax
jae 0x100a6f4d
mov ecx, edx
mov dword [ebp - 0x314], ebx
mov dword [ebp - 0x308], esi
movzx edi, word [edx]
mov dword [ebp - 0x30c], edx
sub ecx, esi
sar ecx, 2
lea ebx, [esi + ecx*2]
movzx esi, word [esi]
movzx ecx, word [ebx]
mov dword [ebp - 0x310], ebx
cmp si, di
mov word [ebp - 0x318], si
jle 0x100a6de5
cmp di, cx
mov esi, edx
cmovg edi, ecx
cmovg esi, ebx
mov ecx, edi
jmp 0x100a6df1
cmp si, cx
mov esi, ebx
mov edi, 1
jle 0x100a6e0c
movzx edx, word [ebp - 0x318]
xor edi, edi
mov word [esi], dx
mov edx, dword [ebp - 0x308]
mov word [edx], cx
mov edx, dword [ebp - 0x30c]
mov esi, dword [ebp - 0x310]
movzx ebx, word [edx]
mov dword [ebp - 0x318], edi
lea edi, [edx - 4]
movzx ecx, word [esi]
cmp cx, bx
jle 0x100a6e38
mov word [edx], cx
mov word [esi], bx
mov dword [ebp - 0x318], 0
jmp 0x100a6e3a
mov ebx, ecx
mov edx, dword [ebp - 0x308]
cmp edx, edi
je 0x100a6f45
movzx ecx, word [eax]
mov word [esi], cx
lea esi, [edx + 2]
mov word [eax], bx
cmp esi, edi
jbe 0x100a6e60
mov edx, dword [ebp - 0x30c]
jmp 0x100a6ea7
mov edx, dword [ebp - 0x30c]
cmp esi, edi
ja 0x100a6e79
movzx ecx, word [eax]
cmp word [esi], cx
jge 0x100a6e79
add esi, 2
cmp esi, edi
jbe 0x100a6e6d
cmp esi, edi
ja 0x100a6ea0
movzx ecx, word [eax]
movzx ebx, word [edi]
cmp bx, cx
jle 0x100a6e91
add edi, 0xfffffffe
cmp esi, edi
jbe 0x100a6e80
jmp 0x100a6ea0
movzx ecx, word [esi]
mov word [edi], cx
mov word [esi], bx
add esi, 2
add edi, 0xfffffffe
cmp esi, edi
jbe 0x100a6e66
movzx ebx, word [eax]
movzx ecx, word [esi]
cmp dword [ebp - 0x318], 0
mov word [esi], bx
mov word [eax], cx
je 0x100a6ee8
cmp dword [ebp - 0x310], esi
je 0x100a6ecc
lea eax, [esi - 2]
cmp dword [ebp - 0x310], eax
jne 0x100a6ee8
mov ecx, dword [ebp - 0x308]
mov eax, ecx
cmp ecx, edx
jae 0x100a6ee4
movzx ebx, word [eax]
lea ecx, [eax + 2]
cmp bx, word [eax + 2]
jle 0x100a6ed2
cmp edx, eax
je 0x100a6f45
mov eax, edx
mov edx, dword [ebp - 0x308]
mov ecx, esi
sub eax, esi
sub ecx, edx
cmp eax, ecx
jge 0x100a6f19
mov ebx, dword [ebp - 0x314]
add esi, 2
mov dword [ebp + ebx*8 - 0x22c], edx
mov dword [ebp + ebx*8 - 0x228], edi
mov edi, dword [ebp - 0x30c]
jmp 0x100a6f38
mov ebx, dword [ebp - 0x314]
mov eax, dword [ebp - 0x30c]
add esi, 2
mov dword [ebp + ebx*8 - 0x22c], esi
mov esi, edx
mov dword [ebp + ebx*8 - 0x228], eax
inc ebx
cmp esi, edi
mov edx, edi
jb 0x100a6d94
jmp 0x100a6f5e
mov ebx, dword [ebp - 0x314]
jmp 0x100a6f5e
movzx eax, word [esi]
movzx ecx, word [edx]
cmp ax, cx
jle 0x100a6f5e
mov word [edx], ax
mov word [esi], cx
test ebx, ebx
jne 0x100a6d7d
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp - 0x328]
xor edx, edx
lea ecx, [ebp - 0x28c]
inc edx
movsx edi, word [ebp + esi*2 - 0x28e]
movzx eax, word [eax + 0x34]
test esi, esi
cmovg edx, esi
mov word [ecx - 2], ax
movzx esi, word [ecx]
test si, si
jle 0x100a6872
add eax, esi
mov word [ecx], ax
add ecx, 2
dec edx
jne 0x100a6f8d
mov eax, dword [ebp - 0x32c]
cmp dword [ebp - 0x324], eax
jbe 0x100a785f
mov esi, dword [ebp + 0xc]
xor eax, eax
movss xmm0, dword [ebp - 0x320]
movsd xmm2, qword [0x1022ae58]
mov dword [ebp - 0x32c], edi
cmp byte [esi + 0x18], 0
movss xmm1, dword [esi + 0x38]
sete al
orpd xmm1, xmm2
mulss xmm0, dword [eax*4 + 0x1023e260]
subsd xmm1, xmm2
cvtsd2ss xmm1, xmm1
movss dword [ebp - 0x320], xmm0
movss xmm0, dword [esi + 0x3c]
orpd xmm0, xmm2
subsd xmm0, xmm2
cvtsd2ss xmm0, xmm0
divss xmm0, xmm1
movss dword [esp], xmm0
call fcn.101f232d
fstp dword [ebp - 0x340]
movss xmm0, dword [ebp - 0x320]
mulss xmm0, dword [ebp - 0x340]
movss dword [esp], xmm0
call fcn.101f2344
mov edi, dword [esi + 0x38]
mov esi, dword [esi + 0x3c]
movss xmm1, dword [0x10210930]
lea ebx, [eax + eax]
mov dword [ebp - 0x320], eax
xorps xmm0, xmm0
cvtsi2ss xmm0, ebx
divss xmm1, xmm0
xorps xmm2, xmm2
cvtsi2ss xmm2, edi
xorps xmm0, xmm0
cvtsi2ss xmm0, esi
divss xmm0, xmm2
movss dword [ebp - 0x308], xmm2
cvtss2sd xmm1, xmm1
cvtss2sd xmm0, xmm0
movsd qword [esp + 8], xmm1
movsd qword [esp], xmm0
call fcn.101f23e0
mov eax, dword [ebp - 0x320]
fstp dword [ebp - 0x33c]
mov dword [ebp - 0x324], ebx
test eax, eax
jle 0x100a78ea
mov dword [ebp - 0x310], esi
lea ebx, [eax + eax - 1]
lea esi, [ebp - 0x2ee]
movss xmm0, dword [ebp - 0x33c]
movss dword [ebp - 0x30c], xmm0
movss xmm0, dword [ebp - 0x308]
mulss xmm0, dword [ebp - 0x30c]
movss dword [ebp - 0x308], xmm0
movss dword [esp], xmm0
call fcn.101f2344
movss xmm0, dword [ebp - 0x308]
mov ecx, eax
sub ecx, edi
mov edi, eax
mov word [esi], cx
add esi, 2
dec ebx
jne 0x100a70cf
mov ecx, dword [ebp - 0x310]
mov esi, dword [ebp - 0x324]
sub ecx, eax
lea ebx, [ebp + esi*2 - 0x2f0]
cmp dword [ebp - 0x320], 0
mov word [ebx], cx
movsx eax, word [ebp - 0x2ee]
jle 0x100a7901
mov edi, dword [ebp - 0x32c]
cmp esi, 1
mov ecx, 2
lea edx, [ebp - 0x2ec]
cmovg ecx, esi
dec ecx
mov esi, eax
movsx eax, word [edx]
cmp esi, eax
cmovle eax, esi
add edx, 2
dec ecx
jne 0x100a7144
mov esi, dword [ebp - 0x324]
jmp 0x100a7907
lea edi, [ebp - 0x304]
mov eax, ecx
mov edx, ecx
xor ebx, ebx
mov ecx, dword [edi]
mov esi, dword [edi + 0x10]
shr eax, 3
mov dword [ebp - 0x310], edx
movzx eax, byte [ecx + eax]
cmp edx, esi
mov ecx, edx
setl bl
and cl, 7
shl eax, cl
lea ecx, [edx + ebx + 4]
cmp esi, ecx
cmova esi, ecx
test al, 0x80
lea eax, [edx + ebx]
mov ebx, dword [ebp + 0xc]
mov edx, edi
cmove esi, eax
mov dword [edi + 8], esi
lea esi, [ebx + 0x60]
mov ecx, ebx
mov dword [esp], esi
call fcn.100aa3b0
test eax, eax
jne 0x100a7402
mov eax, dword [ebx + 0x68]
mov dword [ebp - 0x318], esi
test eax, eax
jle 0x100a7210
mov ecx, dword [ebp - 0x304]
mov edx, dword [ebp + 0xc]
mov edi, dword [ebp - 0x2f4]
mov dword [ebp - 0x308], ecx
mov ecx, dword [ebp - 0x2fc]
lea esi, [edx + 0x78]
mov ebx, dword [ebp - 0x308]
mov edx, ecx
shr edx, 3
movzx edx, byte [ebx + edx]
xor ebx, ebx
cmp ecx, edi
setl bl
add ebx, ecx
and cl, 7
mov dword [ebp - 0x2fc], ebx
shl edx, cl
mov ecx, ebx
shr dl, 7
mov byte [esi], dl
inc esi
dec eax
jne 0x100a71e2
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x74]
test eax, eax
jle 0x100a7266
mov ecx, dword [ebp - 0x304]
mov edx, dword [ebp + 0xc]
mov edi, dword [ebp - 0x2f4]
mov dword [ebp - 0x308], ecx
mov ecx, dword [ebp - 0x2fc]
lea esi, [edx + 0x7d]
mov ebx, dword [ebp - 0x308]
mov edx, ecx
shr edx, 3
movzx edx, byte [ebx + edx]
xor ebx, ebx
cmp ecx, edi
setl bl
add ebx, ecx
and cl, 7
mov dword [ebp - 0x2fc], ebx
shl edx, cl
mov ecx, ebx
shr dl, 7
mov byte [esi], dl
inc esi
dec eax
jne 0x100a7238
mov edi, dword [ebp + 0xc]
mov al, byte [edi + 0x83]
mov byte [edi + 0x88], al
mov eax, dword [edi + 0x7f]
mov dword [edi + 0x84], eax
cmp dword [edi + 0x4bb68], 0
je 0x100a72e8
mov eax, dword [ebp - 0x2f4]
mov ecx, dword [ebp - 0x304]
mov ebx, dword [ebp - 0x2fc]
xor esi, esi
mov dword [ebp - 0x308], eax
mov dword [ebp - 0x30c], ecx
mov edx, dword [ebp - 0x30c]
mov eax, ebx
shr eax, 3
mov eax, dword [edx + eax]
mov dword [esp], eax
call fcn.101eaef1
mov edx, dword [ebp - 0x308]
mov ecx, ebx
add ebx, 2
and cl, 7
shl eax, cl
shr eax, 0xfe
cmp edx, ebx
cmovbe ebx, edx
mov dword [ebp - 0x2fc], ebx
mov byte [edi + esi + 0x7f], al
inc esi
cmp esi, dword [edi + 0x4bb68]
jb 0x100a72a7
mov esi, dword [ebp - 0x318]
lea edx, [ebp - 0x304]
mov ecx, edi
mov dword [esp + 4], 0
mov dword [esp], esi
call fcn.100aac00
test eax, eax
mov ebx, edi
js 0x100a7402
lea edx, [ebp - 0x304]
mov ecx, ebx
mov dword [esp], esi
mov dword [esp + 4], 0
call fcn.100ab2c0
test eax, eax
js 0x100a7402
mov ecx, dword [ebp - 0x2fc]
mov esi, ebx
mov ebx, dword [ebp - 0x304]
mov edi, dword [ebp - 0x2f4]
mov eax, ecx
shr eax, 3
movzx edx, byte [ebx + eax]
xor eax, eax
cmp ecx, edi
setl al
add eax, ecx
and cl, 7
mov dword [ebp - 0x2fc], eax
shl edx, cl
mov ecx, esi
shr edx, 7
and edx, 1
mov dword [esi + 0x64], edx
mov esi, dword [ebp - 0x31c]
je 0x100a8318
mov edx, dword [ecx + 0x4bb64]
test edx, edx
jle 0x100a8318
mov dword [ebp - 0x308], edi
lea edi, [ecx + 0x89]
mov ecx, eax
shr eax, 3
mov esi, ebx
movzx ebx, byte [ebx + eax]
xor eax, eax
cmp ecx, dword [ebp - 0x308]
setl al
add eax, ecx
and cl, 7
shl ebx, cl
shr bl, 7
mov dword [ebp - 0x2fc], eax
mov byte [edi], bl
inc edi
mov ebx, esi
dec edx
jne 0x100a7392
mov edi, dword [ebp - 0x308]
jmp 0x100a8312
xor eax, eax
mov dword [edx + 4], eax
mov dword [edx + 8], eax
mov dword [edx + 0x4c], 0x20
mov dword [edx + 0x54], eax
xor eax, eax
dec eax
mov dword [edx + 0x190e8], eax
mov dword [edx + 0x3948], eax
mov dword [edx + 0x14], eax
mov word [edx + 0x18], 0xffff
jmp 0x100a743a
mov ebx, dword [ebp + 0xc]
test eax, eax
je 0x100a752c
xor eax, eax
mov edx, ebx
mov dword [ebx + 4], eax
mov dword [ebx + 8], eax
mov dword [ebx + 0x4c], 0x20
mov dword [ebx + 0x54], eax
xor eax, eax
dec eax
mov dword [ebx + 0x190e8], eax
mov dword [ebx + 0x3948], eax
mov dword [ebx + 0x14], eax
mov word [ebx + 0x18], 0xffff
mov esi, dword [ebp - 0x31c]
mov ecx, dword [ebp - 0x310]
sub esi, ecx
add esi, dword [ebp - 0x2fc]
mov eax, 4
sub eax, esi
and eax, 7
lea eax, [esi + eax + 4]
shr eax, 3
cmp eax, dword [ebp + 0x18]
jbe 0x100a7482
xor eax, eax
mov dword [edx + 4], eax
mov dword [edx + 8], eax
mov dword [edx + 0x4c], 0x20
mov dword [edx + 0x54], eax
xor eax, eax
dec eax
mov dword [edx + 0x190e8], eax
mov dword [edx + 0x3948], eax
mov dword [edx + 0x14], eax
mov word [edx + 0x18], 0xffff
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.101e05ab
mov eax, dword [ebp + 0x18]
add esp, 0x350
pop esi
pop edi
pop ebx
pop ebp
ret
movzx ecx, byte [edi + 0x18]
inc ecx
mov edx, ecx
and edx, 2
add edx, eax
shr edx, cl
add edx, edx
test edx, edx
mov dword [edi + 0x5c], edx
jle 0x100a6872
mov esi, dword [ebp + 0xc]
movzx esi, byte [esi + 0x16]
cmp edx, esi
jle 0x100a6872
mov edi, dword [ebp + 0xc]
mov esi, edx
or esi, 1
dec esi
add edi, 0x4bb72
mov word [edi], cx
add edi, 2
dec esi
jne 0x100a74d3
imul ecx, edx
sub eax, ecx
js 0x100a78a1
mov esi, dword [ebp + 0xc]
test eax, eax
je 0x100a78ba
inc word [esi + edx*2 + 0x4bb70]
jmp 0x100a78ba
mov dword [ebp - 0x308], 0x1023fdbc
jmp 0x100a634f
mov dword [ebp - 0x308], 0x1023fdec
jmp 0x100a634f
mov dword [ebp - 0x308], 0x1023fdcc
jmp 0x100a634f
mov eax, dword [ebx + 0x15808]
mov dword [ebp - 0x318], edi
mov cl, byte [ebx + eax + 0x1580c]
mov byte [ebx + 0x1580c], cl
mov cl, byte [ebx + eax + 0x2af7c]
mov byte [ebx + 0x2af84], cl
xor ecx, ecx
cmp dword [ebx + 0x190e8], eax
setne cl
neg ecx
mov dword [ebx + 0x190e4], ecx
movzx eax, word [ebx + 0x71]
mov word [ebx + 0x15811], ax
mov eax, dword [ebx + 0x6d]
mov edi, dword [ebx + 0x68]
mov dword [ebx + 0x1580d], eax
test edi, edi
movsd xmm0, qword [ebx + 0x157dc]
movsd qword [ebx + 0x2af7c], xmm0
mov al, byte [ebx + 0x157e7]
mov byte [ebx + 0x2af87], al
movzx eax, word [ebx + 0x157e5]
mov word [ebx + 0x2af85], ax
mov dword [ebx + 0x15808], edi
mov eax, dword [ebx + 0xbc]
mov dword [ebx + 0x1585c], eax
mov esi, dword [ebx + 0x74]
mov dword [ebx + 0x15814], esi
mov eax, dword [ebx + 0x60]
mov dword [ebx + 0x15800], eax
mov eax, dword [ebx + 0x3948]
mov dword [ebx + 0x190e8], eax
jle 0x100a7630
mov ebx, dword [ebp - 0x2f4]
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x304]
mov ecx, dword [ebp - 0x2fc]
mov dword [ebp - 0x30c], ebx
lea ebx, [edx + 0x78]
mov dword [ebp - 0x308], eax
mov edx, dword [ebp - 0x308]
mov eax, ecx
shr eax, 3
movzx edx, byte [edx + eax]
xor eax, eax
cmp ecx, dword [ebp - 0x30c]
setl al
add eax, ecx
and cl, 7
shl edx, cl
shr dl, 7
mov dword [ebp - 0x2fc], eax
mov ecx, eax
mov byte [ebx], dl
inc ebx
dec edi
jne 0x100a75fe
test esi, esi
jle 0x100a7680
mov eax, dword [ebp - 0x304]
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x2fc]
mov dword [ebp - 0x308], eax
mov eax, dword [ebp - 0x2f4]
lea edi, [edx + 0x7d]
mov ebx, dword [ebp - 0x308]
mov edx, ecx
shr edx, 3
movzx edx, byte [ebx + edx]
xor ebx, ebx
cmp ecx, eax
setl bl
add ebx, ecx
and cl, 7
mov dword [ebp - 0x2fc], ebx
shl edx, cl
mov ecx, ebx
shr dl, 7
mov byte [edi], dl
inc edi
dec esi
jne 0x100a7652
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x15808]
test eax, eax
jle 0x100a76dc
mov ecx, dword [ebp - 0x304]
mov edx, dword [ebp + 0xc]
mov esi, dword [ebp - 0x2f4]
mov dword [ebp - 0x308], ecx
mov ecx, dword [ebp - 0x2fc]
lea edi, [edx + 0x15818]
mov ebx, dword [ebp - 0x308]
mov edx, ecx
shr edx, 3
movzx edx, byte [ebx + edx]
xor ebx, ebx
cmp ecx, esi
setl bl
add ebx, ecx
and cl, 7
mov dword [ebp - 0x2fc], ebx
shl edx, cl
mov ecx, ebx
shr dl, 7
mov byte [edi], dl
inc edi
dec eax
jne 0x100a76ae
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x15814]
test eax, eax
jle 0x100a7738
mov ecx, dword [ebp - 0x304]
mov edx, dword [ebp + 0xc]
mov esi, dword [ebp - 0x2f4]
mov dword [ebp - 0x308], ecx
mov ecx, dword [ebp - 0x2fc]
lea edi, [edx + 0x1581d]
mov ebx, dword [ebp - 0x308]
mov edx, ecx
shr edx, 3
movzx edx, byte [ebx + edx]
xor ebx, ebx
cmp ecx, esi
setl bl
add ebx, ecx
and cl, 7
mov dword [ebp - 0x2fc], ebx
shl edx, cl
mov ecx, ebx
shr dl, 7
mov byte [edi], dl
inc edi
dec eax
jne 0x100a770a
mov edx, dword [ebp + 0xc]
lea eax, [edx + 0x7f]
mov dword [ebp - 0x30c], eax
mov al, byte [edx + 0x83]
mov byte [edx + 0x88], al
mov eax, dword [edx + 0x7f]
mov dword [edx + 0x84], eax
cmp dword [edx + 0x4bb68], 0
je 0x100a77ba
mov eax, dword [ebp - 0x304]
mov edi, dword [ebp - 0x2f4]
mov ebx, dword [ebp - 0x2fc]
xor esi, esi
mov dword [ebp - 0x308], eax
mov ecx, dword [ebp - 0x308]
mov eax, ebx
shr eax, 3
mov eax, dword [ecx + eax]
mov dword [esp], eax
call fcn.101eaef1
mov ecx, ebx
mov edx, dword [ebp + 0xc]
add ebx, 2
and cl, 7
shl eax, cl
shr eax, 0xfe
cmp edi, ebx
cmovbe ebx, edi
mov dword [ebp - 0x2fc], ebx
mov byte [edx + esi + 0x7f], al
inc esi
cmp esi, dword [edx + 0x4bb68]
jb 0x100a777c
mov al, byte [edx + 0x15823]
mov ecx, dword [ebp - 0x30c]
mov esi, dword [ebp - 0x318]
mov ebx, edx
mov byte [edx + 0x15828], al
mov eax, dword [edx + 0x1581f]
mov dword [edx + 0x15824], eax
mov eax, dword [ecx]
mov dword [edx + 0x1581f], eax
mov al, byte [ecx + 4]
mov ecx, ebx
mov byte [edx + 0x15823], al
lea edx, [ebp - 0x304]
mov dword [esp], esi
mov dword [esp + 4], 0
call fcn.100aac00
test eax, eax
js 0x100a7402
lea edx, [ebp - 0x304]
mov ecx, ebx
mov dword [esp], esi
mov dword [esp + 4], 0
call fcn.100ab2c0
test eax, eax
js 0x100a7402
lea esi, [ebx + 0x15800]
lea edx, [ebp - 0x304]
mov ecx, ebx
mov dword [esp + 4], 1
mov dword [esp], esi
call fcn.100aac00
test eax, eax
js 0x100a7402
mov dword [esp], esi
jmp 0x100a8222
mov esi, dword [ebp - 0x330]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 0x328]
test esi, esi
mov dword [ecx + 0x5c], edx
jle 0x100a6872
movzx eax, byte [ecx + 0x16]
cmp edx, eax
jle 0x100a6872
lea eax, [ecx + 0x4bb70]
lea ecx, [esi*4 + 2]
mov dword [esp + 8], ecx
lea ecx, [ebp - 0x28e]
jmp 0x100a7df5
mov esi, dword [ebp + 0xc]
xor ecx, ecx
dec word [esi + 0x4bb72]
cmp eax, 0xffffffff
setne cl
sub word [esi + 0x4bb74], cx
movzx eax, word [esi + 0x34]
mov word [esi + 0x4bb70], ax
mov ecx, dword [esi + 0x5c]
test ecx, ecx
je 0x100a7e01
mov edx, dword [ebp + 0xc]
add edx, 0x4bb72
add ax, word [edx]
mov word [edx], ax
add edx, 2
dec ecx
jne 0x100a78d9
jmp 0x100a7e01
mov ecx, ebx
sub esi, edi
lea ebx, [ebp + ebx*2 - 0x2f0]
mov word [ebx], si
mov esi, ecx
movsx eax, word [ebp - 0x2ee]
mov edi, dword [ebp - 0x32c]
mov edx, dword [ebp + 0xc]
lea ecx, [ebp - 0x2ee]
cmp eax, edi
jge 0x100a7b3d
xor edx, edx
lea eax, [ecx + esi*2 - 2]
mov dword [ebp - 0x22c], ecx
mov dword [ebp - 0x330], ebx
inc edx
mov dword [ebp - 0x228], eax
mov esi, dword [ebp + edx*8 - 0x234]
mov ebx, dword [ebp + edx*8 - 0x230]
dec edx
cmp esi, ebx
jae 0x100a7af5
lea ecx, [ebx - 2]
cmp esi, ecx
jae 0x100a7ae4
mov eax, ebx
mov dword [ebp - 0x308], esi
mov dword [ebp - 0x314], edx
mov dword [ebp - 0x310], ebx
sub eax, esi
sar eax, 2
lea edi, [esi + eax*2]
movzx eax, word [esi]
movzx esi, word [ebx]
movzx edx, word [edi]
mov dword [ebp - 0x30c], edi
cmp ax, si
jle 0x100a7990
cmp si, dx
cmovg esi, edx
cmovg ebx, edi
mov edx, esi
jmp 0x100a799c
cmp ax, dx
mov ebx, edi
mov esi, 1
jle 0x100a79aa
mov edi, dword [ebp - 0x308]
xor esi, esi
mov word [ebx], ax
mov word [edi], dx
mov ebx, dword [ebp - 0x310]
mov edx, dword [ebp - 0x30c]
mov dword [ebp - 0x318], esi
movzx eax, word [edx]
movzx esi, word [ebx]
lea edi, [ebx - 4]
cmp ax, si
jle 0x100a79dc
mov word [ebx], ax
mov word [edx], si
mov dword [ebp - 0x318], 0
jmp 0x100a79de
mov esi, eax
mov edx, dword [ebp - 0x308]
cmp edx, edi
je 0x100a7adc
movzx eax, word [ecx]
mov ebx, dword [ebp - 0x30c]
mov word [ebx], ax
lea eax, [edx + 2]
mov word [ecx], si
cmp eax, edi
jbe 0x100a7a0a
mov ebx, dword [ebp - 0x310]
jmp 0x100a7a51
mov ebx, dword [ebp - 0x310]
cmp eax, edi
ja 0x100a7a23
movzx edx, word [ecx]
cmp word [eax], dx
jge 0x100a7a23
add eax, 2
cmp eax, edi
jbe 0x100a7a17
cmp eax, edi
ja 0x100a7a4a
movzx edx, word [ecx]
movzx esi, word [edi]
cmp si, dx
jle 0x100a7a3b
add edi, 0xfffffffe
cmp eax, edi
jbe 0x100a7a2a
jmp 0x100a7a4a
movzx edx, word [eax]
mov word [edi], dx
mov word [eax], si
add eax, 2
add edi, 0xfffffffe
cmp eax, edi
jbe 0x100a7a10
movzx esi, word [ecx]
movzx edx, word [eax]
mov word [eax], si
cmp dword [ebp - 0x318], 0
mov word [ecx], dx
mov edx, dword [ebp - 0x30c]
je 0x100a7a90
cmp edx, eax
je 0x100a7a74
lea ecx, [eax - 2]
cmp edx, ecx
jne 0x100a7a90
mov edx, dword [ebp - 0x308]
mov ecx, edx
cmp edx, ebx
jae 0x100a7a8c
movzx esi, word [ecx]
lea edx, [ecx + 2]
cmp si, word [ecx + 2]
jle 0x100a7a7a
cmp ebx, ecx
je 0x100a7adc
mov esi, dword [ebp - 0x308]
mov ecx, ebx
mov edx, eax
sub ecx, eax
sub edx, esi
cmp ecx, edx
jge 0x100a7abd
mov edx, dword [ebp - 0x314]
add eax, 2
mov dword [ebp + edx*8 - 0x22c], esi
mov dword [ebp + edx*8 - 0x228], edi
mov esi, eax
jmp 0x100a7ad6
mov edx, dword [ebp - 0x314]
add eax, 2
mov dword [ebp + edx*8 - 0x22c], eax
mov dword [ebp + edx*8 - 0x228], ebx
mov ebx, edi
inc edx
jmp 0x100a7940
mov edx, dword [ebp - 0x314]
jmp 0x100a7af5
movzx eax, word [esi]
movzx ecx, word [ebx]
cmp ax, cx
jle 0x100a7af5
mov word [ebx], ax
mov word [esi], cx
test edx, edx
jne 0x100a7931
mov edi, dword [ebp - 0x330]
movsx eax, word [ebp - 0x2ee]
mov esi, dword [ebp - 0x32c]
movsx ecx, word [edi]
sub esi, eax
mov edx, ecx
sub edx, eax
sar edx, 1
cmp esi, edx
cmovle edx, esi
mov esi, dword [ebp - 0x324]
add eax, edx
sub ecx, edx
mov edx, dword [ebp + 0xc]
mov word [ebp - 0x2ee], ax
mov word [edi], cx
lea ecx, [ebp - 0x2ee]
lea eax, [ecx + esi*2 - 2]
xor esi, esi
mov dword [ebp - 0x22c], ecx
inc esi
mov dword [ebp - 0x228], eax
mov ecx, dword [ebp + esi*8 - 0x234]
mov edi, dword [ebp + esi*8 - 0x230]
dec esi
cmp ecx, edi
jae 0x100a7d41
mov eax, edi
lea ebx, [edi - 2]
cmp ecx, ebx
jae 0x100a7d2d
mov eax, edi
mov edx, edi
mov dword [ebp - 0x314], esi
mov dword [ebp - 0x30c], ecx
sub eax, ecx
movzx esi, word [edx]
mov dword [ebp - 0x310], edx
sar eax, 2
lea edi, [ecx + eax*2]
movzx eax, word [ecx]
mov dword [ebp - 0x308], edi
mov word [ebp - 0x318], ax
cmp ax, si
movzx eax, word [edi]
jle 0x100a7bc3
mov ecx, edx
movzx edx, word [ebp - 0x318]
cmp si, ax
cmovg esi, eax
cmovg ecx, edi
mov eax, esi
jmp 0x100a7bd6
movzx edx, word [ebp - 0x318]
mov ecx, edi
mov esi, 1
cmp dx, ax
jle 0x100a7be4
mov word [ecx], dx
mov ecx, dword [ebp - 0x30c]
xor esi, esi
mov word [ecx], ax
mov edx, dword [ebp - 0x310]
mov ecx, dword [ebp - 0x308]
mov dword [ebp - 0x318], esi
movzx eax, word [ecx]
movzx esi, word [edx]
lea edi, [edx - 4]
cmp ax, si
jle 0x100a7c16
mov word [edx], ax
mov word [ecx], si
mov dword [ebp - 0x318], 0
jmp 0x100a7c18
mov esi, eax
mov edx, dword [ebp - 0x30c]
cmp edx, edi
je 0x100a7d22
movzx eax, word [ebx]
mov ecx, dword [ebp - 0x308]
add edx, 2
cmp edx, edi
mov word [ecx], ax
mov word [ebx], si
jbe 0x100a7c44
mov ecx, dword [ebp - 0x310]
jmp 0x100a7c8b
mov ecx, dword [ebp - 0x310]
cmp edx, edi
ja 0x100a7c5d
movzx eax, word [ebx]
cmp word [edx], ax
jge 0x100a7c5d
add edx, 2
cmp edx, edi
jbe 0x100a7c51
cmp edx, edi
ja 0x100a7c84
movzx eax, word [ebx]
movzx esi, word [edi]
cmp si, ax
jle 0x100a7c75
add edi, 0xfffffffe
cmp edx, edi
jbe 0x100a7c64
jmp 0x100a7c84
movzx eax, word [edx]
mov word [edi], ax
mov word [edx], si
add edx, 2
add edi, 0xfffffffe
cmp edx, edi
jbe 0x100a7c4a
movzx esi, word [ebx]
movzx eax, word [edx]
cmp dword [ebp - 0x318], 0
mov word [edx], si
mov word [ebx], ax
je 0x100a7ccc
cmp dword [ebp - 0x308], edx
je 0x100a7cb0
lea eax, [edx - 2]
cmp dword [ebp - 0x308], eax
jne 0x100a7ccc
mov esi, dword [ebp - 0x30c]
mov eax, esi
cmp esi, ecx
jae 0x100a7cc8
movzx ebx, word [eax]
lea esi, [eax + 2]
cmp bx, word [eax + 2]
jle 0x100a7cb6
cmp ecx, eax
je 0x100a7d22
mov ebx, dword [ebp - 0x30c]
mov eax, ecx
mov esi, edx
sub eax, edx
sub esi, ebx
cmp eax, esi
jge 0x100a7cfb
mov esi, dword [ebp - 0x314]
add edx, 2
mov dword [ebp + esi*8 - 0x22c], ebx
mov dword [ebp + esi*8 - 0x228], edi
mov edi, ecx
mov ecx, edx
jmp 0x100a7d14
mov esi, dword [ebp - 0x314]
add edx, 2
mov dword [ebp + esi*8 - 0x22c], edx
mov dword [ebp + esi*8 - 0x228], ecx
mov ecx, ebx
mov edx, dword [ebp + 0xc]
inc esi
cmp ecx, edi
jb 0x100a7b69
jmp 0x100a7d41
mov edx, dword [ebp + 0xc]
mov esi, dword [ebp - 0x314]
jmp 0x100a7d41
movzx eax, word [ecx]
movzx edx, word [edi]
cmp ax, dx
jle 0x100a7d3e
mov word [edi], ax
mov word [ecx], dx
mov edx, dword [ebp + 0xc]
test esi, esi
jne 0x100a7b50
movzx eax, word [edx + 0x38]
cmp dword [ebp - 0x320], 0
mov word [ebp - 0x2f0], ax
jle 0x100a7d88
mov edx, dword [ebp - 0x324]
xor ecx, ecx
inc ecx
test edx, edx
cmovg ecx, edx
lea edx, [ebp - 0x2ee]
movzx esi, word [edx]
test si, si
jle 0x100a6872
add eax, esi
mov word [edx], ax
add edx, 2
dec ecx
jne 0x100a7d71
mov edx, dword [ebp - 0x324]
mov eax, dword [ebp + 0xc]
add edx, dword [ebp - 0x328]
mov dword [eax + 0x5c], edx
jle 0x100a6872
mov eax, dword [ebp + 0xc]
mov ecx, edx
movzx eax, byte [eax + 0x16]
cmp edx, eax
jle 0x100a6872
mov edi, dword [ebp - 0x328]
mov esi, dword [ebp + 0xc]
lea ecx, [ebp - 0x28e]
mov dword [esp + 4], ecx
add edi, edi
lea eax, [esi + 0x4bb70]
or edi, 2
mov dword [esp], eax
mov dword [esp + 8], edi
call fcn.101e35e0
mov ecx, dword [ebp - 0x320]
lea eax, [esi + edi + 0x4bb70]
shl ecx, 2
mov dword [esp + 8], ecx
lea ecx, [ebp - 0x2ee]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.101e35e0
mov eax, dword [ebp + 0xc]
mov ebx, eax
mov edi, dword [eax + 0x5c]
movzx eax, byte [eax + 0x16]
lea ecx, [ebx + 0x4bc04]
sub edi, eax
lea eax, [ebx + eax*2 + 0x4bb70]
lea esi, [edi + 1]
lea edx, [edi + edi + 2]
mov dword [ebx + 0x4bb64], edi
shr esi, 1
mov dword [ebx + 0x4bb60], esi
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.101e35e0
movzx ecx, word [ebx + edi*2 + 0x4bc04]
movzx eax, word [ebx + 0x4bc04]
mov edx, ecx
sub edx, eax
cmp ecx, 0x40
mov dword [ebx + 0x54], edx
mov dword [ebx + 0x4c], eax
ja 0x100a6872
cmp ax, 0x20
ja 0x100a6872
mov ebx, dword [ebp + 0xc]
test esi, esi
mov word [ebx + 0x4bbd2], ax
je 0x100a7e9f
and edi, 1
mov ecx, 2
xor edx, edx
sub ecx, edi
lea ecx, [ebx + ecx*2 + 0x4bc04]
movzx edi, word [ecx + edx*4]
mov word [ebx + edx*2 + 0x4bbd4], di
inc edx
cmp esi, edx
jne 0x100a7e8e
movzx ecx, byte [ebx + 0x19]
movsd xmm1, qword [0x1022ae58]
movzx eax, ax
cvtsi2ss xmm0, ecx
movss dword [ebp - 0x308], xmm0
movss xmm0, dword [ebx + 0x3c]
orpd xmm0, xmm1
subsd xmm0, xmm1
xorps xmm1, xmm1
cvtsi2ss xmm1, eax
cvtsd2ss xmm0, xmm0
divss xmm0, xmm1
movss dword [esp], xmm0
call fcn.101f232d
fstp dword [ebp - 0x338]
movss xmm0, dword [ebp - 0x308]
mulss xmm0, dword [ebp - 0x338]
movss dword [esp], xmm0
call fcn.101f2344
test eax, eax
jle 0x100a7f9b
movzx eax, byte [ebx + 0x19]
movsd xmm2, qword [0x1022ae58]
movss xmm1, dword [ebx + 0x4c]
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
orpd xmm1, xmm2
movss dword [ebp - 0x308], xmm0
movss xmm0, dword [ebx + 0x3c]
subsd xmm1, xmm2
cvtsd2ss xmm1, xmm1
orpd xmm0, xmm2
subsd xmm0, xmm2
cvtsd2ss xmm0, xmm0
divss xmm0, xmm1
movss dword [esp], xmm0
call fcn.101f232d
fstp dword [ebp - 0x334]
movss xmm0, dword [ebp - 0x308]
mulss xmm0, dword [ebp - 0x334]
movss dword [esp], xmm0
call fcn.101f2344
cmp eax, 5
mov dword [ebx + 0x4bb68], eax
ja 0x100a6872
mov edx, dword [ebp + 0xc]
mov ecx, eax
test ecx, ecx
movzx eax, word [edx + 0x4bbd2]
mov word [edx + 0x4bc66], ax
jne 0x100a7fb8
jmp 0x100a7fe4
mov dword [ebx + 0x4bb68], 1
xor ecx, ecx
mov edx, ebx
movzx eax, word [ebx + 0x4bbd2]
inc ecx
mov word [ebx + 0x4bc66], ax
mov esi, dword [edx + 0x4bb60]
lea edi, [edx + 0x4bc68]
xor ebx, ebx
mov eax, esi
xor edx, edx
sub eax, ebx
div ecx
mov edx, dword [ebp + 0xc]
add ebx, eax
movzx eax, word [edx + ebx*2 + 0x4bbd2]
mov word [edi], ax
add edi, 2
dec ecx
jne 0x100a7fc6
mov eax, dword [edx + 0x34]
mov esi, dword [edx]
mov edi, dword [edx + 0x4c]
mov ecx, edx
mov dword [ebp - 0x308], eax
mov eax, esi
sar eax, 1
add eax, 0x1f4000
cdq
idiv esi
mov dword [ecx + 0x4bcb0], 0
mov edx, dword [ecx + 0x54]
add edx, edi
cmp eax, edx
jae 0x100a802b
xor ebx, ebx
dec ebx
mov ecx, dword [ebp + 0xc]
movzx edx, word [ecx + ebx*2 + 0x4bb72]
mov ecx, dword [ebp + 0xc]
inc ebx
cmp eax, edx
jg 0x100a8016
jmp 0x100a802e
mov ebx, dword [ecx + 0x5c]
xor edx, edx
lea eax, [ecx + 0x4bb70]
xor esi, esi
mov dword [ebp - 0x310], 0
dec edx
mov dword [ebp - 0x314], eax
mov eax, edx
mov dword [ebp - 0x30c], edx
mov eax, dword [ebp - 0x30c]
mov ecx, ebx
mov dword [ebp - 0x30c], ebx
cmp ebx, eax
jne 0x100a806f
cmp dword [ebp - 0x308], edx
je 0x100a6872
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x318], edi
mov ecx, dword [ebp - 0x30c]
mov edi, dword [eax + 0x34]
mov eax, dword [ebp - 0x314]
lea edx, [eax + ecx*2]
xor eax, eax
xor ecx, ecx
test eax, eax
je 0x100a80a2
mov ebx, ecx
not ebx
add ebx, dword [ebp - 0x308]
add ebx, edi
cmp esi, ebx
jbe 0x100a80af
movzx esi, word [edx + eax*2]
dec eax
lea ecx, [edi + esi]
and ecx, 1
jmp 0x100a808e
cmp dword [ebp - 0x310], 5
mov edi, dword [ebp - 0x318]
ja 0x100a6872
mov eax, esi
mov edx, 0
mov ebx, dword [ebp - 0x310]
sub eax, edi
test eax, eax
cmovle eax, edx
mov edx, dword [ebp + 0xc]
mov byte [edx + ebx + 0x4bcb4], al
mov eax, dword [edx + 0x34]
sub eax, ecx
mov ecx, dword [edx + 0x4bcb0]
sub al, byte [edx + ecx + 0x4bcb4]
mov byte [edx + ecx + 0x4bcba], al
mov eax, dword [edx + 0x4bcb0]
cmp byte [edx + eax + 0x4bcb4], 0
je 0x100a811c
inc eax
mov edi, esi
mov dword [ebp - 0x310], eax
mov dword [edx + 0x4bcb0], eax
mov eax, esi
jmp 0x100a8125
mov dword [ebp - 0x310], eax
mov eax, dword [edx + 0x4c]
mov ebx, dword [ebp - 0x30c]
movzx ecx, word [edx + ebx*2 + 0x4bb70]
sub ecx, esi
cmp ecx, 2
jg 0x100a813d
mov ebx, dword [edx + 0x5c]
mov ecx, dword [edx + 0x54]
add ecx, dword [edx + 0x4c]
mov edx, dword [ebp - 0x308]
mov dword [ebp - 0x308], eax
cmp esi, ecx
jne 0x100a8051
mov eax, dword [ebp - 0x310]
mov ecx, dword [ebp + 0xc]
mov esi, dword [ebp - 0x31c]
cmp eax, 2
jb 0x100a817c
cmp byte [ecx + eax + 0x4bcb3], 2
ja 0x100a817c
dec eax
mov dword [ecx + 0x4bcb0], eax
call fcn.100a9fd0
mov edx, dword [ebp + 0xc]
xor eax, eax
mov dword [edx + 0x157e8], eax
mov dword [edx + 0x2af88], eax
jmp 0x100a68a5
mov al, byte [ecx + 0x15823]
mov edi, ecx
mov byte [ecx + 0x15828], al
mov eax, dword [ecx + 0x1581f]
mov dword [ecx + 0x15824], eax
mov esi, dword [ebp - 0x318]
lea edx, [ebp - 0x304]
mov ecx, edi
mov dword [esp + 4], 0
mov ebx, edi
mov dword [esp], esi
call fcn.100aac00
mov edi, dword [ebp - 0x314]
test eax, eax
js 0x100a7402
lea edx, [ebp - 0x304]
mov ecx, ebx
mov dword [esp], edi
mov dword [esp + 4], 1
call fcn.100aac00
test eax, eax
js 0x100a7402
lea edx, [ebp - 0x304]
mov ecx, ebx
mov dword [esp], esi
mov dword [esp + 4], 0
call fcn.100ab2c0
test eax, eax
js 0x100a7402
mov dword [esp], edi
lea edx, [ebp - 0x304]
mov ecx, ebx
mov dword [esp + 4], 1
call fcn.100ab2c0
test eax, eax
js 0x100a7402
mov ecx, dword [ebp - 0x2fc]
mov edx, dword [ebp - 0x304]
mov esi, dword [ebp - 0x2f4]
mov edi, ebx
mov eax, ecx
mov dword [ebp - 0x30c], edx
mov ebx, esi
mov dword [ebp - 0x308], esi
shr eax, 3
movzx edx, byte [edx + eax]
xor eax, eax
cmp ecx, esi
setl al
add eax, ecx
and cl, 7
mov dword [ebp - 0x2fc], eax
shl edx, cl
shr edx, 7
and edx, 1
mov dword [edi + 0x64], edx
je 0x100a82d0
mov ecx, edi
mov edi, dword [edi + 0x4bb64]
test edi, edi
jle 0x100a82d0
lea esi, [ecx + 0x89]
mov edx, dword [ebp - 0x30c]
mov ecx, eax
shr ecx, 3
movzx ebx, byte [edx + ecx]
xor edx, edx
cmp eax, dword [ebp - 0x308]
setl dl
add edx, eax
and al, 7
mov ecx, eax
mov dword [ebp - 0x2fc], edx
mov eax, edx
shl ebx, cl
shr bl, 7
mov byte [esi], bl
inc esi
dec edi
jne 0x100a829b
jmp 0x100a82d2
mov edx, eax
mov ebx, dword [ebp - 0x30c]
mov edi, dword [ebp - 0x308]
mov eax, edx
shr eax, 3
movzx esi, byte [ebx + eax]
xor eax, eax
cmp edx, edi
setl al
add eax, edx
and dl, 7
mov ecx, edx
mov dword [ebp - 0x2fc], eax
shl esi, cl
mov ecx, dword [ebp + 0xc]
shr esi, 7
and esi, 1
mov dword [ecx + 0x15804], esi
jne 0x100a8537
mov esi, dword [ebp - 0x31c]
mov ecx, eax
mov dword [ebp - 0x30c], ebx
shr ecx, 3
movzx edx, byte [ebx + ecx]
xor ebx, ebx
cmp eax, edi
setl bl
add ebx, eax
and al, 7
mov ecx, eax
mov dword [ebp - 0x2fc], ebx
shl edx, cl
mov ecx, dword [ebp - 0x310]
test dl, 0x80
mov edx, dword [ebp + 0xc]
je 0x100a743a
mov edx, dword [ebp - 0x30c]
mov eax, ebx
mov dword [ebp - 0x310], ecx
shr eax, 3
mov eax, dword [edx + eax]
mov dword [esp], eax
call fcn.101eaef1
mov ecx, ebx
mov edx, edi
mov edi, eax
add ebx, 4
and cl, 7
mov dword [ebp - 0x308], edx
shl edi, cl
shr edi, 0xfc
cmp edx, ebx
cmovbe ebx, edx
cmp edi, 0xf
mov dword [ebp - 0x2fc], ebx
jne 0x100a83ca
mov ecx, dword [ebp - 0x30c]
mov eax, ebx
shr eax, 3
mov eax, dword [ecx + eax]
mov dword [esp], eax
call fcn.101eaef1
mov ecx, ebx
mov edi, eax
add ebx, 8
and cl, 7
shl edi, cl
mov ecx, dword [ebp - 0x308]
shr edi, 0xf8
cmp ecx, ebx
cmovbe ebx, ecx
add edi, 0xf
mov dword [ebp - 0x2fc], ebx
shl edi, 3
cmp edi, 8
jl 0x100a84d1
mov ecx, dword [ebp - 0x30c]
mov eax, ebx
add edi, 0xfffffffe
shr eax, 3
mov eax, dword [ecx + eax]
mov dword [esp], eax
call fcn.101eaef1
mov edx, dword [ebp - 0x308]
mov ecx, ebx
add ebx, 2
and cl, 7
shl eax, cl
shr eax, 0xfe
cmp edx, ebx
cmovbe ebx, edx
mov edx, dword [ebp + 0xc]
cmp eax, 2
mov dword [ebp - 0x2fc], ebx
jne 0x100a84fe
mov ecx, dword [ebp - 0x310]
lea eax, [edx + 0x2afa0]
mov dword [ebp - 0x30c], eax
mov eax, dword [ebp + 8]
cmp dword [eax + 0x1970], 0
je 0x100a8504
mov ebx, eax
mov eax, dword [eax + 4]
mov ecx, dword [ebp - 0x30c]
lea edx, [ebp - 0x304]
mov dword [esp + 0xc], edi
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp], eax
call fcn.100a0ee0
mov ecx, dword [ebx + 4]
sub edi, eax
cmp edi, 8
mov dword [ecx + 0x2cc], 0x1c
jl 0x100a84d1
mov ecx, dword [ebp - 0x2f4]
mov ebx, dword [ebp - 0x2fc]
mov eax, dword [ebp - 0x304]
add edi, 0xfffffffe
mov dword [ebp - 0x308], ecx
mov ecx, ebx
shr ecx, 3
mov eax, dword [eax + ecx]
mov dword [esp], eax
call fcn.101eaef1
mov ecx, ebx
add ebx, 2
mov edx, dword [ebp + 0xc]
and cl, 7
shl eax, cl
mov ecx, dword [ebp - 0x308]
shr eax, 0xfe
cmp ecx, ebx
cmovbe ebx, ecx
mov ecx, dword [ebp - 0x310]
cmp eax, 2
mov dword [ebp - 0x2fc], ebx
je 0x100a842b
jmp 0x100a8504
mov ecx, dword [ebp - 0x310]
mov edx, dword [ebp + 0xc]
test edi, edi
jle 0x100a743a
mov eax, dword [ebp - 0x2f4]
add edi, dword [ebp - 0x2fc]
cmp eax, edi
cmovbe edi, eax
mov dword [ebp - 0x2fc], edi
jmp 0x100a743a
mov ecx, dword [ebp - 0x310]
mov eax, dword [ebp - 0x308]
mov dword [ebp - 0x308], ebx
neg dword [ebp - 0x308]
sub eax, ebx
cmp eax, edi
cmovg eax, edi
cmp edi, dword [ebp - 0x308]
cmovl eax, dword [ebp - 0x308]
add eax, ebx
mov dword [ebp - 0x2fc], eax
jmp 0x100a743a
mov edx, dword [ecx + 0x4bb64]
mov esi, dword [ebp - 0x31c]
test edx, edx
jle 0x100a8318
mov esi, dword [ebp - 0x30c]
lea edi, [ecx + 0x15829]
mov ecx, eax
shr eax, 3
movzx ebx, byte [esi + eax]
xor eax, eax
cmp ecx, dword [ebp - 0x308]
setl al
add eax, ecx
and cl, 7
shl ebx, cl
shr bl, 7
mov dword [ebp - 0x2fc], eax
mov byte [edi], bl
mov ebx, dword [ebp - 0x30c]
inc edi
dec edx
jne 0x100a8557
jmp 0x100a73c0
call fcn.101f01af
int3