Function at 0x100637a6
Capabilities:
Inspect section memory permissions
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x12c
and dword [esp + 0x40], 0
mov eax, ecx
mov dword [esp + 4], eax
xor cl, cl
cmp dword [ebp + 8], 0x67f
xorps xmm0, xmm0
mov dword [esp + 0x2c], ecx
mov edx, dword [eax + 0x74]
sbb eax, eax
and eax, dword [ebp + 8]
mov dword [esp + 0x48], eax
mov dword [esp + 0x10], edx
mov byte [esp + 0x28], cl
lea eax, [eax*8 + 0x100a2798]
movlpd qword [esp + 0x1c], xmm0
mov dword [esp + 0x34], eax
mov eax, dword [eax]
shr eax, 0xe
and eax, 0x3ff
push ebx
mov ebx, dword [ebp + 0x10]
push esi
lea eax, [eax*8 + 0x100a1798]
mov dword [esp + 0x44], eax
mov eax, dword [ebp + 0x14]
push edi
mov edi, dword [ebp + 0xc]
mov ecx, dword [eax]
mov eax, dword [ebx]
and ecx, 7
and eax, 7
lea ecx, [eax + ecx*8]
mov eax, dword [edi]
and eax, 7
lea esi, [eax + ecx*8]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x3c], esi
mov eax, dword [ecx + 0x70]
sub eax, edx
cmp eax, 0x10
sbb ecx, ecx
xor eax, eax
neg ecx
cmp dword [esp + 0x54], eax
sete al
xor edx, edx
or ecx, eax
inc edx
mov eax, dword [esp + 0x10]
or ecx, dword [eax + 0x44]
or ecx, dword [eax + 0x24]
mov dword [esp + 0x20], ecx
test ecx, 0x3e001
je 0x10063a81
cmp dword [eax + 0x2c], 0
jne 0x10063875
push 0
push 5
mov ecx, eax
jmp 0x100639bb
cmp dword [esp + 0x54], 0
je 0x1006986a
push 0x10
push eax
lea ecx, [esp + 0x24]
call fcn.10063193
test eax, eax
jne 0x100639a5
mov ecx, dword [esp + 0x10]
xor edx, edx
inc edx
test byte [ecx + 0x10], dl
je 0x10063956
mov esi, edi
mov eax, dword [ebp + 0x18]
lea edi, [esp + 0xd8]
push 0
push 6
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, ebx
lea edi, [esp + 0xf0]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [ebp + 0x14]
lea edi, [esp + 0x100]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, eax
lea edi, [esp + 0x110]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea esi, [eax + 0x10]
lea edi, [esp + 0x120]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea esi, [eax + 0x20]
mov eax, dword [esp + 0x5c]
lea edi, [esp + 0x130]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [esp + 0xc8], eax
mov edi, ecx
mov eax, dword [esp + 0x28]
mov dword [esp + 0xcc], eax
mov eax, dword [edi + 0x48]
mov ecx, dword [edi + 0x4c]
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
mov al, byte [edi + 0x38]
mov byte [esp + 0x60], al
lea eax, [esp + 0xe0]
push eax
lea eax, [esp + 0xcc]
push eax
push dword [esp + 0x68]
call dword [edi + 0x64]
add esp, 0x14
test eax, eax
jne 0x100639a9
mov esi, dword [esp + 0x3c]
xor edx, edx
inc edx
mov ecx, edi
mov eax, dword [esp + 0x54]
mov eax, dword [eax*8 + 0x100a2798]
shr eax, 0xe
and eax, 0x3ff
mov eax, dword [eax*8 + 0x100a1798]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x20]
shr eax, 0xd
test dl, al
je 0x10063a39
mov eax, dword [esp + 0x20]
and eax, 0x30000
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x44]
shr eax, 0x10
test dl, al
jne 0x100639c9
cmp dword [esp + 0x24], 0
jne 0x100639d0
push 0x21
pop eax
mov edi, dword [esp + 0x10]
xor ecx, ecx
mov dword [edi + 0x48], ecx
mov dword [edi + 0x4c], ecx
mov dword [edi + 0x44], ecx
push ecx
mov dword [edi + 0x50], ecx
mov ecx, edi
push eax
call fcn.1006fa24
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
cmp dword [esp + 0x24], 0
je 0x10063a2e
mov eax, dword [esp + 0x20]
shr eax, 0x10
mov dword [esp + 0x24], eax
test dl, al
je 0x100639ee
mov eax, dword [esp + 0x44]
shr eax, 0x11
test dl, al
jne 0x100639ee
push 0x22
jmp 0x100639a4
mov eax, dword [esp + 0x20]
shr eax, 0x11
test dl, al
je 0x10063a08
mov eax, dword [esp + 0x44]
shr eax, 0x12
test dl, al
jne 0x10063a08
push 0x23
jmp 0x100639a4
mov eax, dword [esp + 0x24]
not al
and al, dl
or eax, 0xf2
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x24]
mov byte [eax], bl
mov eax, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x1c], eax
jmp 0x10063a32
mov eax, dword [esp + 0x1c]
mov byte [eax], 0xf0
inc dword [esp + 0x1c]
test dword [esp + 0x20], 0xc000
je 0x10063a81
mov eax, dword [esp + 0x44]
shr eax, 0xe
test dl, al
je 0x10063ae7
mov eax, dword [ecx + 0x48]
test eax, eax
je 0x10063a69
shr eax, 8
test al, 0xf
jne 0x10063ae7
cmp dword [ecx + 0x4c], edx
jne 0x10063ae7
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
shr ecx, 0xf
not cl
and cl, dl
or cl, 0xf2
mov byte [eax], cl
inc dword [esp + 0x1c]
mov ebx, dword [esp + 0x54]
movzx eax, byte [ebx*8 + 0x100a279e]
and dword [esp + 0x18], 0
mov ecx, dword [eax*4 + 0x100a5b90]
mov eax, ecx
shr eax, 0x12
and eax, 7
mov dword [esp + 0x14], eax
movzx eax, byte [ebx*8 + 0x100a279d]
or eax, ecx
mov ecx, eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0xc], ecx
movzx ebx, byte [eax + 4]
mov dword [esp + 0x58], ebx
cmp ebx, 0xa0
mov ebx, dword [ebp + 0x10]
ja case.default.0x10063ae0
mov edi, dword [esp + 0x58]
mov dword [esp + 0x44], 0x8000000
jmp dword [edi*4 + 0x10069872]
push 0x24
jmp 0x100639a4
shr ecx, 0xd
and ecx, 7
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
shr ecx, 0x15
and ecx, 7
setne al
movzx eax, al
push eax
movzx eax, byte [ecx + 0x1009d200]
lea ecx, [esp + 0x20]
push eax
call fcn.10069cc8
mov edx, dword [esp + 0xc]
or edx, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
shr edx, 0x15
and eax, 8
or edx, eax
mov eax, dword [esp + 0x14]
shr edx, 2
and eax, 8
or edx, eax
shr edx, 1
cmp edx, 0x80
ja 0x10067552
mov eax, dword [esp + 0x1c]
and edx, 0x7f
mov cl, dl
or cl, 0x40
mov byte [eax], cl
xor eax, eax
push dword [esp + 0xc]
test edx, edx
lea ecx, [esp + 0x20]
setne al
and dword [esp + 0x18], 7
add dword [esp + 0x20], eax
and dword [esp + 0x1c], 7
call fcn.100634f2
mov cl, byte [esp + 0x14]
mov eax, dword [esp + 0x1c]
shl cl, 3
sub cl, 0x40
add cl, byte [esp + 0x18]
mov byte [eax], cl
inc dword [esp + 0x1c]
jmp 0x10063c77
mov edi, dword [ebp + 0xc]
mov eax, dword [edi]
and eax, 7
cmp al, 3
jne case.default.0x10063ae0
lea ecx, [esp + 0xc]
call fcn.100633ce
mov ecx, edi
mov dword [esp + 0x18], eax
call fcn.10062f83
mov ecx, eax
call fcn.10069ca9
movzx eax, al
cdq
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
mov byte [esp + 0x34], 1
jmp case.0x10063ae0.63
mov edi, dword [ebp + 0xc]
mov eax, dword [edi]
and al, 7
cmp al, dl
jne case.default.0x10063ae0
mov ecx, edi
call fcn.10062f83
mov ecx, eax
call fcn.10062fcf
mov ecx, dword [esp + 0x10]
movzx eax, al
movzx esi, byte [eax + 0x1009d268]
call fcn.10063378
test esi, eax
lea ecx, [esp + 0x1c]
setne al
movzx eax, al
push eax
call fcn.10069cf5
mov ecx, dword [esp + 0xc]
shr ecx, 0x15
and ecx, 7
setne al
movzx eax, al
push eax
movzx eax, byte [ecx + 0x1009d200]
lea ecx, [esp + 0x20]
push eax
call fcn.10069cc8
mov edx, dword [esp + 0xc]
or edx, dword [esp + 0x20]
shr edx, 0x18
cmp edx, 0x80
ja 0x10067552
mov eax, dword [esp + 0x1c]
and edx, 0x7f
mov cl, dl
or cl, 0x40
mov byte [eax], cl
xor eax, eax
push dword [esp + 0xc]
test edx, edx
lea ecx, [esp + 0x20]
setne al
add dword [esp + 0x20], eax
call fcn.100634f2
push dword [esp + 0x34]
lea ecx, [esp + 0x20]
push dword [esp + 0x30]
push dword [esp + 0x30]
call fcn.1006359e
mov edi, dword [esp + 0x10]
xor eax, eax
lea ecx, [esp + 0x1c]
mov dword [edi + 0x48], eax
mov dword [edi + 0x4c], eax
mov dword [edi + 0x44], eax
push edi
mov dword [edi + 0x50], eax
call fcn.10063237
xor eax, eax
jmp 0x100639c0
mov edi, dword [ebp + 0xc]
test esi, esi
je case.0x10063ae0.1
cmp esi, edx
jne case.default.0x10063ae0
mov ecx, edi
call fcn.10062fbd
test eax, eax
je case.0x10063ae0.1
mov edi, dword [esp + 0x10]
push 0x1a
jmp 0x10067558
mov edi, dword [ebp + 0xc]
test esi, esi
je case.0x10063ae0.1
cmp esi, 9
jne case.default.0x10063ae0
mov ecx, edi
call fcn.10062fbd
cmp eax, 2
jne case.default.0x10063ae0
mov ecx, ebx
jmp 0x10063cc0
mov edi, dword [ebp + 0xc]
test esi, esi
je case.0x10063ae0.1
cmp esi, 2
jne case.default.0x10063ae0
xor edx, edx
mov ecx, edi
call fcn.10063458
test al, al
je case.default.0x10063ae0
mov esi, edi
mov ecx, esi
call fcn.10062f83
mov ecx, eax
call fcn.10063040
mov ecx, esi
movzx ebx, byte [eax + 0x1009d268]
call fcn.10062f83
mov ecx, eax
call fcn.1006304f
test al, al
jne case.default.0x10063ae0
test bl, 2
jne case.default.0x10063ae0
push dword [esp + 0xc]
lea ecx, [esp + 0x20]
call fcn.100634d3
push dword [esp + 0x20]
lea ecx, [esp + 0x10]
call fcn.100633d7
mov edi, eax
mov ecx, edi
call fcn.100634b1
test al, al
jne 0x10067552
and edi, 0x7f
lea ecx, [esp + 0x1c]
setne dl
or edi, 0x40
movzx edx, dl
push edx
push edi
call fcn.10069cc8
mov ecx, esi
call fcn.10062f83
mov ecx, eax
call fcn.10063354
push eax
lea ecx, [esp + 0x20]
call fcn.1006354a
mov edi, dword [esp + 0x10]
mov ecx, edi
call fcn.10063378
test ebx, eax
lea ecx, [esp + 0x1c]
setne al
movzx eax, al
push eax
call fcn.10069cf5
push dword [esp + 0xc]
lea ecx, [esp + 0x20]
call fcn.100634f2
xor eax, eax
push eax
push eax
push eax
jmp 0x10066b0d
mov edi, dword [ebp + 0xc]
cmp esi, 3
jne 0x10063dfd
mov ecx, edi
call fcn.10062f83
mov ecx, eax
call fcn.10069ca9
movzx eax, al
cdq
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
mov byte [esp + 0x34], 1
jmp case.0x10063ae0.1
cmp esi, 0x19
jne case.default.0x10063ae0
mov ecx, edi
call fcn.10062fbd
test eax, eax
jne case.default.0x10063ae0
mov ecx, ebx
jmp 0x10063ddb
mov edi, dword [ebp + 0xc]
mov eax, dword [edi]
and al, 7
cmp al, dl
jne case.0x10063ae0.11
mov ecx, edi
call fcn.10062fb8
push eax
lea ecx, [esp + 0x10]
call fcn.10069d04
xor edx, edx
inc edx
jmp case.0x10063ae0.11
mov edi, dword [ebp + 0xc]
movzx eax, byte [edi + 3]
and eax, 0xf
mov eax, dword [eax*4 + 0x100b49c0]
or eax, ecx
mov dword [esp + 0xc], eax
mov edi, dword [ebp + 0xc]
mov eax, dword [edi + 4]
mov dword [esp + 0x18], eax
cmp esi, edx
je case.0x10063ae0.63
mov ebx, edi
cmp esi, 2
je 0x10063ea1
jmp case.default.0x10063ae0
mov edi, dword [ebp + 0xc]
cmp esi, 0x4a
jne case.0x10063ae0.14
push 2
pop edx
mov ecx, ebx
call fcn.100632fe
test al, al
je case.default.0x10063ae0
mov ecx, dword [ebp + 0x14]
xor edx, edx
call fcn.100632fe
test al, al
je case.default.0x10063ae0
mov ebx, edi
mov edi, dword [esp + 0x10]
mov ecx, ebx
call fcn.10062f86
push 0xe000
lea ecx, [esp + 0x10]
call fcn.10063429
mov ecx, ebx
call fcn.10062f83
mov ecx, eax
call fcn.10063040
mov ecx, ebx
movzx eax, byte [eax + 0x1009d268]
mov dword [esp + 0x44], eax
call fcn.10062f83
mov ecx, eax
call fcn.10063354
push eax
lea ecx, [esp + 0x20]
call fcn.1006354a
lea ecx, [esp + 0x1c]
call fcn.10063096
mov ecx, edi
mov dword [esp + 0x58], eax
call fcn.10063378
test dword [esp + 0x44], eax
setne cl
movzx ecx, cl
push ecx
lea ecx, [esp + 0x20]
call fcn.10069cf5
push dword [esp + 0xc]
lea ecx, [esp + 0x20]
call fcn.100634d3
mov ecx, ebx
call fcn.10062f83
mov ecx, eax
call fcn.10062fbd
mov ecx, ebx
mov dword [esp + 0x18], eax
call fcn.10062f83
mov ecx, eax
call fcn.1006304b
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push dword [esp + 0x20]
shr edx, 1
and ecx, 8
and edx, 4
mov dword [esp + 0x28], eax
and eax, 8
or edx, eax
shr edx, 1
or edx, ecx
lea ecx, [esp + 0x10]
shr edx, 1
and edx, dword [esp + 0x48]
mov dword [esp + 0x54], edx
call fcn.100633d7
mov esi, dword [esp + 0x50]
or esi, eax
mov ecx, esi
call fcn.100634b1
test al, al
jne 0x10067556
and esi, 0x7f
lea ecx, [esp + 0x1c]
setne al
or esi, 0x40
movzx eax, al
push eax
push esi
call fcn.10069cc8
push dword [esp + 0xc]
and dword [esp + 0x18], 7
lea ecx, [esp + 0x20]
call fcn.100634f2
jmp 0x10068b60
mov edi, dword [ebp + 0xc]
cmp esi, 2
jne case.default.0x10063ae0
jmp 0x10063e9f
mov edi, dword [ebp + 0xc]
test esi, esi
je case.0x10063ae0.1
push 0x11f
lea ecx, [esp + 0x10]
call fcn.100633fd
and dword [esp + 0x14], 0
cmp esi, 1
jne 0x10064003
mov ecx, edi
call fcn.10062fb8
push eax
lea ecx, [esp + 0x10]
call fcn.10069d04
mov ecx, edi
jmp 0x10064eca
cmp esi, 2
jne 0x1006401e
mov ecx, edi
call fcn.10062fb8
push eax
lea ecx, [esp + 0x10]
call fcn.10069d04
jmp 0x10063e9f
mov ecx, ebx
call fcn.10062fbd
mov ecx, ebx
mov dword [esp + 0x14], eax
call fcn.10062fb8
push eax
lea ecx, [esp + 0x10]
call fcn.10069d04
cmp esi, 9
je 0x10063ffc
cmp esi, 0xa
jmp 0x10063fbd
mov edi, dword [ebp + 0xc]
cmp esi, 2
jne case.default.0x10063ae0
mov ecx, edi
call fcn.10062fbd
mov dword [esp + 0x18], eax
mov ecx, edi
call fcn.10062f83
mov ecx, eax
call fcn.10063040
mov ecx, edi
movzx ebx, byte [eax + 0x1009d268]
call fcn.10062f83
mov ecx, eax
call fcn.1006304f
test al, al
jne case.default.0x10063ae0
test bl, 2
jne case.default.0x10063ae0
push dword [esp + 0xc]
lea ecx, [esp + 0x20]
call fcn.100634d3
push dword [esp + 0x20]
lea ecx, [esp + 0x10]
call fcn.100633d7
mov edx, dword [esp + 0x18]
mov esi, eax
mov ecx, dword [esp + 0x14]
shr edx, 2
and ecx, 8
or edx, ecx
shr edx, 1
or esi, edx
mov ecx, esi
call fcn.100634b1
test al, al
jne 0x10067552
and esi, 0x7f
lea ecx, [esp + 0x1c]
setne al
or esi, 0x40
movzx eax, al
push eax
push esi
call fcn.10069cc8
and dword [esp + 0x14], 7
mov ecx, edi
and dword [esp + 0x18], 7
call fcn.10062f83
mov ecx, eax
call fcn.10063354
push eax
lea ecx, [esp + 0x20]
call fcn.1006354a
mov edi, dword [esp + 0x10]
mov ecx, edi
call fcn.10063378
test ebx, eax
lea ecx, [esp + 0x1c]
setne al
movzx eax, al
push eax
call fcn.10069cf5
push dword [esp + 0xc]
lea ecx, [esp + 0x20]
call fcn.100634f2
push dword [esp + 0x18]
mov edx, dword [esp + 0x18]
push 3
pop ecx
call fcn.100634a6
pop ecx
push eax
lea ecx, [esp + 0x20]
call fcn.10069cda
jmp 0x10063dc7
mov edi, dword [ebp + 0xc]
cmp esi, 0x49
jne 0x10064185
push 2
pop edx
mov ecx, ebx
call fcn.100632fe
test al, al
je case.default.0x10063ae0
mov ecx, dword [ebp + 0x14]
xor edx, edx
call fcn.100632fe
test al, al
je case.default.0x10063ae0
jmp 0x10063ffc
cmp esi, edx
jne case.default.0x10063ae0
mov ecx, edi
call fcn.10063285
jmp 0x10064178
mov edi, dword [ebp + 0xc]
cmp esi, edx
jne case.default.0x10063ae0
jmp 0x10063ffc
mov edi, dword [ebp + 0xc]
movzx eax, byte [edi + 3]
and eax, 0xf
mov eax, dword [eax*4 + 0x100b49c0]
or eax, ecx
mov dword [esp + 0xc], eax
mov edi, dword [ebp + 0xc]
cmp esi, 9
jne 0x100641d4
mov eax, dword [edi + 4]
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 4]
jmp 0x10064ecf
cmp esi, 0x11
jne case.default.0x10063ae0
mov ecx, edi
call fcn.10062fbd
mov dword [esp + 0x14], eax
jmp 0x10063ea1
mov edi, dword [ebp + 0xc]
cmp esi, 9
jne 0x1006423d
mov ecx, edi
call fcn.10062fbd
mov ecx, ebx
mov dword [esp + 0x14], eax
call fcn.10062fbd
mov ecx, edi
mov dword [esp + 0x18], eax
call fcn.10062fb8
cmp eax, 2
jne 0x10064227
push 0x66
lea ecx, [esp + 0x20]
call fcn.10069cda
jmp case.0x10063ae0.63
mov ecx, edi
call fcn.10062fb8
push eax
lea ecx, [esp + 0x10]
call fcn.10069d2e
jmp case.0x10063ae0.63
cmp esi, 0x11
jne case.default.0x10063ae0
mov ecx, edi
call fcn.10062fbd
mov ecx, edi
mov dword [esp + 0x14], eax
call fcn.10062fb8
cmp eax, 2
jne 0x1006426d
push 0x66
lea ecx, [esp + 0x20]
call fcn.10069cda
jmp 0x10063ea1
mov ecx, edi
call fcn.10062fb8
push eax
lea ecx, [esp + 0x10]
call fcn.10069d2e
jmp 0x10063ea1
mov edi, dword [ebp + 0xc]
movzx eax, byte [edi + 3]
and eax, 0xf
mov eax, dword [eax*4 + 0x100b49c0]
or eax, ecx
mov dword [esp + 0xc], eax
mov edi, dword [ebp + 0xc]
cmp esi, 9
jne 0x100642b5
mov eax, dword [edi + 4]
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 4]
mov dword [esp + 0x14], eax
jmp case.0x10063ae0.63
cmp esi, 0xa
jne case.default.0x10063ae0
mov ecx, ebx
call fcn.10062fbd
mov dword [esp + 0x14], eax
jmp 0x10063e9f
mov edi, dword [ebp + 0xc]
cmp esi, 9
jne 0x100643d2
mov ecx, edi
call fcn.10062fb8
push eax
lea ecx, [esp + 0x10]
call fcn.10069d19
mov ecx, edi
call fcn.10062fb8
mov ecx, ebx
mov esi, eax
call fcn.10062fb8
cmp esi, eax
jne 0x100669f4
mov ecx, edi
call fcn.10062fbd
mov ecx, ebx
mov dword [esp + 0x18], eax
call fcn.10062fbd
mov ecx, edi
mov dword [esp + 0x14], eax
call fcn.10062fb8
cmp eax, 1
jne 0x1006439f
mov eax, dword [edi]
lea ecx, [esp + 0x20]
and eax, 0xff000fff
mov esi, Ordinal_2
mov edi, 0xc0000000
cmp eax, 0x1000021
je 0x1006435a
cmp dword [esp + 0x18], 4
sbb edx, edx
and edx, edi
add edx, 0x40000000
call fcn.1006314f
push 4
pop ecx
jmp 0x10064368
mov edx, esi
call fcn.1006314f
push 4
pop ecx
add dword [esp + 0x18], ecx
mov eax, dword [ebx]
and eax, 0xff000fff
cmp eax, 0x1000021
je 0x1006438f
cmp dword [esp + 0x14], ecx
lea ecx, [esp + 0x20]
sbb edx, edx
and edx, edi
add edx, 0x40000000
call fcn.1006314f
jmp 0x1006439f
mov edx, esi
lea ecx, [esp + 0x20]
call fcn.1006314f
add dword [esp + 0x14], 4
mov ecx, dword [esp + 0x20]
mov edx, 0x200
call fcn.10069cc2
test al, al
je case.0x10063ae0.63
push 2
lea ecx, [esp + 0x10]
call fcn.100633b1
lea edx, [esp + 0x18]
lea ecx, [esp + 0x14]
call fcn.10039576
jmp case.0x10063ae0.63
cmp esi, 0x11
jne 0x10064451
push 2
lea ecx, [esp + 0x10]
call fcn.100633b1
mov ecx, edi
call fcn.10062fb8
push eax
lea ecx, [esp + 0x10]
call fcn.10069d19
mov ecx, edi
call fcn.10062fbd
mov ecx, edi
mov dword [esp + 0x14], eax
call fcn.10062fb8
cmp eax, 1
jne 0x10063ea1
mov eax, dword [edi]
lea ecx, [esp + 0x20]
and eax, 0xff000fff
cmp eax, 0x1000021
je 0x1006443d
cmp dword [esp + 0x14], 4
sbb edx, edx
and edx, 0xc0000000
add edx, 0x40000000
call fcn.1006314f
jmp 0x10063ea1
mov edx, Ordinal_2
call fcn.1006314f
add dword [esp + 0x14], 4
jmp 0x10063ea1
cmp esi, 0xa
jne 0x100644c2
mov ecx, ebx
call fcn.10062fb8
push eax
lea ecx, [esp + 0x10]
call fcn.10069d19
mov ecx, ebx
call fcn.10062fbd
mov ecx, ebx
mov dword [esp + 0x14], eax
call fcn.10062fb8
cmp eax, 1
jne 0x10063e9f
mov ecx, ebx
call fcn.10063255
lea ecx, [esp + 0x20]
test al, al
jne 0x100644ae
cmp dword [esp + 0x14], 4
sbb edx, edx
and edx, 0xc0000000
add edx, 0x40000000
call fcn.1006314f
jmp 0x10063e9f
mov edx, Ordinal_2
call fcn.1006314f
add dword [esp + 0x14], 4
jmp 0x10063e9f
push 0x80
lea ecx, [esp + 0x10]
call fcn.100633fd
cmp esi, 0x19
jne 0x100646f1
mov ecx, edi
call fcn.10062fb8
mov ecx, edi
mov dword [esp + 0x60], eax
call fcn.10062fbd
mov ecx, ebx
mov dword [esp + 0x18], eax
call fcn.10062f83
mov ecx, eax
call fcn.1006307f
mov ecx, dword [esp + 0x60]
xor ebx, ebx
inc ebx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
cmp ecx, ebx
jne 0x10064557
mov ecx, edi
call fcn.10063255
lea ecx, [esp + 0x20]
test al, al
jne 0x10064539
cmp dword [esp + 0x18], 4
sbb edx, edx
and edx, 0xc0000000
add edx, 0x40000000
call fcn.1006314f
jmp 0x10064548
mov edx, Ordinal_2
call fcn.1006314f
add dword [esp + 0x18], 4
mov dl, bl
mov dword [esp + 0x48], edx
mov byte [esp + 0x34], dl
jmp 0x10064659
push 4
pop eax
cmp ecx, 2
jne 0x10064572
push 0x200000
lea ecx, [esp + 0x10]
call fcn.1006341e
jmp 0x10064609
cmp ecx, eax
jne 0x1006458f
push dword [esp + 0x2c]
push dword [esp + 0x2c]
call fcn.10069d44
pop ecx
pop ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
jmp 0x10064609
cmp ecx, 8
jne 0x1006460c
cmp dword [esp + 0x54], 0x15
jne 0x100645b2
push dword [esp + 0x2c]
push dword [esp + 0x2c]
call fcn.10069d4a
mov byte [esp + 0x67], bl
pop ecx
pop ecx
test al, al
jne 0x100645b7
mov byte [esp + 0x5f], 0
push dword [esp + 0x2c]
push dword [esp + 0x2c]
call fcn.10069c86
pop ecx
pop ecx
test al, al
jne 0x100645dd
cmp byte [esp + 0x5f], al
jne 0x100645f2
push 0x32
pop ecx
call fcn.10062f83
jmp 0x100639a5
cmp byte [esp + 0x5f], 0
je 0x100645fb
mov ecx, dword [esp + 0x10]
push ebx
call fcn.1006317f
test al, al
je 0x100645fb
push 4
pop eax
mov dword [esp + 0x60], eax
jmp 0x100645ff
mov eax, dword [esp + 0x60]
push eax
lea ecx, [esp + 0x10]
call fcn.10069d2e
push 4
pop eax
lea edx, [esp + 0x70]
mov dword [esp + 0x70], eax
lea ecx, [esp + 0x60]
call fcn.10069cba
push dword [esp + 0x2c]
mov dword [esp + 0x4c], eax
push dword [esp + 0x2c]
mov byte [esp + 0x3c], al
call fcn.10069c60
pop ecx
pop ecx
test al, al
je 0x10064655
mov ecx, dword [esp + 0x20]
push 0x20
pop edx
call fcn.10069cc2
mov edx, dword [esp + 0x48]
test al, al
movzx edx, dl
cmove edx, ebx
jmp 0x1006454a
mov edx, dword [esp + 0x48]
cmp dword [esp + 0x18], 0
jne 0x100646cb
mov ecx, dword [esp + 0x60]
cmp ecx, ebx
je 0x1006466c
cmp dl, bl
je 0x100646d3
mov ecx, dword [esp + 0x20]
push 0x20
pop edx
call fcn.10069cc2
test al, al
jne 0x100646cb
push 0x8200000
lea ecx, [esp + 0x10]
call fcn.10063413
mov eax, dword [esp + 0x14]
xor ecx, ecx
cmp dword [esp + 0x60], ebx
push 4
setne cl
shl eax, 3
pop ebx
add ecx, ebx
or ecx, eax
push ecx
lea ecx, [esp + 0x10]
call fcn.1006341e
lea edx, [esp + 0xbc]
mov dword [esp + 0xbc], ebx
lea ecx, [esp + 0x60]
call fcn.10069cba
mov byte [esp + 0x34], al
jmp case.0x10063ae0.1
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x48]
cmp dl, bl
push 3
pop eax
cmovne eax, ebx
dec ecx
neg ecx
sbb ecx, ecx
and ecx, eax
push ecx
lea ecx, [esp + 0x10]
call fcn.100633b1
jmp case.0x10063ae0.63
cmp esi, 0x1a
jne case.default.0x10063ae0
mov ecx, edi
call fcn.10062fb8
mov dword [esp + 0x68], eax
test eax, eax
je 0x100668f4
mov ecx, ebx
call fcn.10062f83
mov ecx, eax
call fcn.1006307f
push 4
mov esi, eax
mov dword [esp + 0x30], edx
pop ebx
lea edx, [esp + 0xb8]
mov dword [esp + 0x28], esi
lea ecx, [esp + 0x68]
mov dword [esp + 0xb8], ebx
call fcn.10069cba
mov dword [esp + 0x38], eax
mov byte [esp + 0x34], al
cmp dword [esp + 0x68], ebx
jne 0x10064761
push dword [esp + 0x2c]
push esi
call fcn.10069d44
pop ecx
pop ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
push dword [esp + 0x2c]
push dword [esp + 0x2c]
call fcn.10069c60
pop ecx
pop ecx
test al, al
je 0x10064799
mov ecx, dword [esp + 0x20]
push 0x20
pop edx
call fcn.10069cc2
mov ecx, dword [esp + 0x38]
test al, al
push 1
movzx ecx, cl
pop edx
cmove ecx, edx
mov dword [esp + 0x38], ecx
mov byte [esp + 0x34], cl
jmp 0x1006479c
xor edx, edx
inc edx
cmp byte [esp + 0x38], dl
mov ecx, dword [esp + 0x68]
push 3
pop eax
cmovne eax, edx
dec ecx
neg ecx
sbb ecx, ecx
and ecx, eax
push ecx
lea ecx, [esp + 0x10]
call fcn.100633b1
push dword [esp + 0x68]
jmp 0x10064010
mov edi, dword [ebp + 0xc]
cmp esi, edx
jne case.default.0x10063ae0
mov ecx, edi
call fcn.10062fb8
cmp eax, 1
je case.default.0x10063ae0
mov ecx, edi
call fcn.10062fbd
mov ecx, edi
mov dword [esp + 0x14], eax
call fcn.10062fb8
push eax
lea ecx, [esp + 0x10]
call fcn.10069d04
mov edi, dword [esp + 0x10]
jmp 0x10066a94
mov edi, dword [ebp + 0xc]
mov ecx, ebx
cmp esi, 9
jne 0x1006482d
call fcn.10062fb8
push eax
lea ecx, [esp + 0x10]
call fcn.10069d04
mov ecx, ebx
call fcn.10062fbd
mov dword [esp + 0x14], eax
jmp 0x10063ffc
cmp esi, 0xa
jne 0x10064846
call fcn.10062fb8
push eax
lea ecx, [esp + 0x10]
call fcn.10069d04
jmp 0x100642be
call fcn.10062f83
mov ecx, eax
call fcn.1006307f
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x28], eax
mov al, 1
mov dword [esp + 0x2c], edx
mov dword [esp + 0x38], eax
mov byte [esp + 0x34], al
call fcn.100634c7
push eax
lea ecx, [esp + 0x10]
call fcn.100633fd
mov ecx, edi
call fcn.10062fb8
push eax
lea ecx, [esp + 0x10]
call fcn.10069d04
lea ecx, [esp + 0xc]
call fcn.10063354
mov dword [esp + 0x14], eax
cmp esi, 0x19
je 0x10063ffc
cmp esi, 0x1a
jne case.default.0x10063ae0
mov ecx, edi
call fcn.10062fb8
test eax, eax
je 0x100668f4
jmp 0x10063e9f
mov edi, dword [ebp + 0xc]
cmp esi, edx
je 0x10063ffc
mov ebx, edi
cmp esi, 2
je 0x10063ea1
push 0xe8
lea ecx, [esp + 0x10]
call fcn.100633fd
and dword [esp + 0x14], 0
jmp 0x100651f5
mov edi, dword [ebp + 0xc]
test esi, 0x1c0
je 0x10064917
mov ecx, dword [ebp + 0x14]
call fcn.10062fd7
test al, al
je case.default.0x10063ae0
mov ecx, dword [ebp + 0x14]
call fcn.10062fbd
test eax, eax
jne case.default.0x10063ae0
and esi, 0x3f
cmp esi, 9
jne 0x100649d6
mov ecx, edi
call fcn.10062fb8
mov ecx, ebx
mov esi, eax
call fcn.10062fb8
cmp esi, eax
jne 0x100669f4
mov ecx, edi
call fcn.10062fb8
push eax
lea ecx, [esp + 0x10]
call fcn.10069d19
mov ecx, edi
call fcn.10062fbd
mov ecx, ebx
mov dword [esp + 0x18], eax
call fcn.10062fbd
mov ecx, edi
mov dword [esp + 0x14], eax
call fcn.10062fb8
cmp eax, 1
jne case.0x10063ae0.63
mov ecx, edi
call fcn.10063255
lea ecx, [esp + 0x20]
mov esi, Ordinal_2
mov edi, 0xc0000000
test al, al
jne 0x1006499e
cmp dword [esp + 0x18], 4
sbb edx, edx
and edx, edi
add edx, 0x40000000
call fcn.1006314f
jmp 0x100649aa
mov edx, esi
call fcn.1006314f
add dword [esp + 0x18], 4
mov ecx, ebx
call fcn.10063255
lea ecx, [esp + 0x20]
test al, al
jne 0x10066750
cmp dword [esp + 0x14], 4
sbb edx, edx
and edx, edi
add edx, 0x40000000
call fcn.1006314f
jmp case.0x10063ae0.63
cmp esi, 0xa
jne case.default.0x10063ae0
jmp 0x10064456
mov edi, dword [ebp + 0xc]
cmp esi, 0x4a
jne 0x10063fba
mov ebx, dword [ebp + 0x18]
mov ecx, ebx
call fcn.10062f8c
test al, al
je case.default.0x10063ae0
lea ecx, [ebx + 0x10]
call fcn.10062f8c
jmp 0x10063e97
mov edi, dword [ebp + 0xc]
mov edx, 0x8000000
mov eax, dword [edi + 4]
mov dword [esp + 0x14], eax
xor eax, eax
cmp byte [edi + 3], 8
cmove eax, edx
or eax, ecx
mov dword [esp + 0xc], eax
cmp esi, 9
jne 0x10064aac
mov ecx, ebx
call fcn.10062fbd
mov ecx, ebx
mov dword [esp + 0x18], eax
call fcn.10062fb8
cmp eax, 1
jne 0x10064a85
mov eax, dword [ebx]
and eax, 0xff000fff
cmp eax, 0x1000021
je 0x10064a6e
cmp dword [esp + 0x18], 4
sbb eax, eax
and eax, 0xc0000000
add eax, 0x40000000
or eax, dword [esp + 0x20]
jmp 0x10064a7c
add dword [esp + 0x18], 4
mov eax, dword [esp + 0x20]
or eax, 0x80000000
mov dword [esp + 0x20], eax
jmp case.0x10063ae0.63
mov ecx, ebx
call fcn.10062fb8
cmp eax, 2
jne 0x10064a9c
push 0x66
lea ecx, [esp + 0x20]
call fcn.10069cda
push 1
lea ecx, [esp + 0x10]
call fcn.100633b1
jmp case.0x10063ae0.63
cmp esi, 0x11
jne case.default.0x10063ae0
mov ecx, ebx
call fcn.10062fb8
test eax, eax
je 0x100668f4
mov ecx, ebx
call fcn.10062fb8
cmp eax, 2
jne 0x10064adb
push 0x66
lea ecx, [esp + 0x20]
call fcn.10069cda
mov ecx, ebx
call fcn.10062fb8
dec eax
neg eax
sbb eax, eax
neg eax
push eax
lea ecx, [esp + 0x10]
call fcn.100633b1
jmp 0x10063ea1
mov edi, dword [ebp + 0xc]
cmp esi, 0x1b
jne case.default.0x10063ae0
mov ecx, edi
call fcn.10062f83
mov ecx, eax
call fcn.10069cad
mov ecx, ebx
mov di, ax
call fcn.10062f83
mov ecx, eax
call fcn.10069ca9
movzx eax, al
cdq
mov ecx, eax
mov byte [esp + 0x34], 3
mov esi, edx
movzx eax, di
shld esi, ecx, 0x10
cdq
shl ecx, 0x10
or ecx, eax
or esi, edx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], esi
jmp case.0x10063ae0.1
mov edi, dword [ebp + 0xc]
cmp esi, 0xc9
jne 0x10064be9
push 0x6b
lea ecx, [esp + 0x10]
call fcn.100633fd
mov ecx, edi
call fcn.10062fb8
push eax
lea ecx, [esp + 0x10]
call fcn.10069d04
mov ecx, dword [ebp + 0x14]
call fcn.10062f83
mov ecx, eax
call fcn.1006307f
mov esi, eax
mov byte [esp + 0x34], 1
mov eax, edx
mov dword [esp + 0x28], esi
push eax
push esi
mov dword [esp + 0x34], eax
call fcn.10069c60
pop ecx
pop ecx
test al, al
je 0x10064bb4
mov ecx, dword [esp + 0x20]
push 0x20
pop edx
call fcn.10069cc2
test al, al
je 0x10064bd7
push 2
lea ecx, [esp + 0x10]
call fcn.10063408
mov ecx, edi
call fcn.10062fb8
cmp eax, 2
setne al
lea eax, [eax*2 + 2]
mov byte [esp + 0x34], al
mov ecx, edi
call fcn.10062fbd
mov dword [esp + 0x14], eax
mov ecx, ebx
jmp 0x10064eca
cmp esi, 0xd1
jne 0x10064ca7
push 0x6b
lea ecx, [esp + 0x10]
call fcn.100633fd
mov ecx, edi
call fcn.10062fb8
push eax
lea ecx, [esp + 0x10]
call fcn.10069d04
mov ecx, dword [ebp + 0x14]
call fcn.10062f83
mov ecx, eax
call fcn.1006307f
mov esi, eax
mov dword [esp + 0x2c], edx
mov al, 1
mov dword [esp + 0x28], esi
mov ecx, edi
mov dword [esp + 0x38], eax
mov byte [esp + 0x34], al
call fcn.10062fb8
cmp eax, 4
jne 0x10064c54
push dword [esp + 0x2c]
push esi
call fcn.10069d44
pop ecx
pop ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
push dword [esp + 0x2c]
push dword [esp + 0x2c]
call fcn.10069c60
pop ecx
pop ecx
test al, al
je 0x10064c7b
mov ecx, dword [esp + 0x20]
push 0x20
pop edx
call fcn.10069cc2
test al, al
je 0x100641dd
push 2
lea ecx, [esp + 0x10]
call fcn.10063408
mov ecx, edi
call fcn.10062fb8
cmp eax, 2
setne al
lea eax, [eax*2 + 2]
mov dword [esp + 0x38], eax
mov byte [esp + 0x34], al
jmp 0x100641dd
cmp esi, 9
jne 0x10064d0e
mov ecx, ebx
call fcn.10062fb8
cmp eax, 1
je 0x10064e1a
mov ecx, edi
call fcn.10062fb8
mov ecx, ebx
mov esi, eax
call fcn.10062fb8
cmp esi, eax
jne 0x100669f4
mov ecx, edi
call fcn.10062fbd
mov ecx, ebx
mov dword [esp + 0x14], eax
call fcn.10062fbd
push 0x1af
lea ecx, [esp + 0x10]
mov dword [esp + 0x1c], eax
call fcn.100633fd
mov ecx, edi
call fcn.10062fb8
push eax
lea ecx, [esp + 0x10]
call fcn.10069d04
jmp case.0x10063ae0.63
cmp esi, 0x11
jne 0x10064d52
mov ecx, ebx
call fcn.10062fb8
cmp eax, 1
je 0x10064e7f
mov ecx, edi
call fcn.10062fbd
push 0x1af
lea ecx, [esp + 0x10]
mov dword [esp + 0x18], eax
call fcn.100633fd
mov ecx, edi
call fcn.10062fb8
push eax
lea ecx, [esp + 0x10]
call fcn.10069d04
jmp 0x10063ea1
cmp esi, 0x19
jne case.0x10063ae0.13
push 0x6b
lea ecx, [esp + 0x10]
call fcn.100633fd
mov ecx, edi
call fcn.10062fb8
push eax
lea ecx, [esp + 0x10]
call fcn.10069d04
mov ecx, ebx
call fcn.10062f83
mov ecx, eax
call fcn.1006307f
mov esi, eax
mov byte [esp + 0x34], 1
mov ebx, edx
mov dword [esp + 0x28], esi
mov ecx, edi
mov dword [esp + 0x2c], ebx
call fcn.10062fb8
cmp eax, 4
jne 0x10064db3
push ebx
push esi
call fcn.10069d44
pop ecx
pop ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
push dword [esp + 0x2c]
push dword [esp + 0x2c]
call fcn.10069c60
pop ecx
pop ecx
test al, al
je 0x10064dd6
mov ecx, dword [esp + 0x20]
push 0x20
pop edx
call fcn.10069cc2
test al, al
je 0x10064df9
push 2
lea ecx, [esp + 0x10]
call fcn.10063408
mov ecx, edi
call fcn.10062fb8
cmp eax, 2
setne al
lea eax, [eax*2 + 2]
mov byte [esp + 0x34], al
mov ecx, edi
call fcn.10062fbd
mov dword [esp + 0x18], eax
jmp 0x100642ac
mov edi, dword [ebp + 0xc]
cmp esi, 7
jbe case.0x10063ae0.12
cmp esi, 9
jne 0x10064e7a
xor edx, edx
mov ecx, edi
call fcn.100632e5
test al, al
je case.default.0x10063ae0
mov ecx, ebx
call fcn.10063275
test al, al
je case.default.0x10063ae0
mov ecx, ebx
call fcn.10062fbd
mov dword [esp + 0x18], eax
mov ecx, ebx
call fcn.10063255
lea ecx, [esp + 0x20]
test al, al
jne 0x10064e66
cmp dword [esp + 0x18], 4
sbb edx, edx
and edx, 0xc0000000
jmp 0x100649c6
mov edx, Ordinal_2
call fcn.1006314f
add dword [esp + 0x18], 4
jmp case.0x10063ae0.63
cmp esi, 0x11
jne 0x10064e99
xor edx, edx
mov ecx, edi
call fcn.100632e5
mov edi, dword [esp + 0x10]
test al, al
je 0x10063cd1
jmp 0x10063ea5
cmp esi, 0x49
jne 0x10064ed8
mov ecx, edi
call fcn.10062fb8
mov ecx, ebx
mov esi, eax
call fcn.10062fb8
cmp esi, eax
jne case.default.0x10063ae0
mov ecx, edi
call fcn.10062fb8
push eax
lea ecx, [esp + 0x10]
call fcn.10069d19
mov ecx, dword [ebp + 0x14]
call fcn.10062fbd
mov dword [esp + 0x18], eax
jmp case.0x10063ae0.63
cmp esi, 0x89
jne case.default.0x10063ae0
mov ecx, edi
call fcn.10062fb8
mov ecx, ebx
mov esi, eax
call fcn.10062fb8
cmp esi, eax
jne case.default.0x10063ae0
mov ecx, edi
call fcn.10062fb8
push eax
lea ecx, [esp + 0x10]
call fcn.10069d19
mov ebx, dword [ebp + 0x14]
jmp 0x10063ea1
mov edi, dword [ebp + 0xc]
cmp esi, edx
jne 0x10064f4f
mov ecx, edi
call fcn.10062fb8
push eax
lea ecx, [esp + 0x10]
call fcn.10069d19
mov ecx, edi
call fcn.10062fbd
mov ecx, edi
mov dword [esp + 0x18], eax
call fcn.10062fb8
cmp eax, 1
jne case.0x10063ae0.63
mov ecx, edi
jmp 0x10064e47
cmp esi, 2
jne case.default.0x10063ae0
mov ecx, edi
call fcn.10062fb8
test eax, eax
je 0x100668f4
mov ecx, edi
call fcn.10062fb8
push eax
lea ecx, [esp + 0x10]
call fcn.10069d19
jmp 0x10063e9f
mov edi, dword [ebp + 0xc]
cmp esi, 0x19
jne 0x10064fee
mov ecx, edi
call fcn.10062fbd
test eax, eax
jne case.default.0x10063ae0
mov ecx, ebx
call fcn.10062f83
mov ecx, eax
call fcn.10069ca9
movzx eax, al
mov ecx, edi
cdq
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
mov byte [esp + 0x34], 1
call fcn.10062fb8
mov ecx, dword [esp + 0x40]
lea esi, [eax - 1]
neg esi
sbb esi, esi
neg esi
call fcn.100634c7
add eax, esi
push eax
lea ecx, [esp + 0x10]
call fcn.100633fd
mov ecx, edi
call fcn.10062fb8
push eax
lea ecx, [esp + 0x10]
call fcn.10069d5e
jmp case.0x10063ae0.1
cmp esi, 9
jne case.default.0x10063ae0
mov ecx, edi
call fcn.10062fbd
test eax, eax
jne case.default.0x10063ae0
mov ecx, ebx
call fcn.10062fbd
cmp eax, 2
jne case.default.0x10063ae0
mov ecx, edi
call fcn.10062fb8
dec eax
lea ecx, [esp + 0xc]
neg eax
sbb eax, eax
neg eax
push eax
call fcn.100633b1
jmp 0x10064fd8
mov edi, dword [ebp + 0xc]
cmp esi, 0xa
jne case.default.0x10063ae0
push 7
pop edx
mov ecx, edi
call fcn.10063458
test al, al
je case.default.0x10063ae0
mov ecx, ebx
call fcn.10062fbd
cmp eax, 2
jne case.default.0x10063ae0
mov ecx, edi
call fcn.10062fb8
mov ebx, eax
test ebx, ebx
je 0x100668f4
xor ecx, ecx
mov esi, edi
cmp ebx, 1
setne cl
push ecx
lea ecx, [esp + 0x10]
call fcn.100633b1
push ebx
lea ecx, [esp + 0x10]
call fcn.10069d5e
jmp 0x10063d17
mov edi, dword [ebp + 0xc]
cmp esi, edx
jne 0x10064f4f
mov ecx, edi
call fcn.10062fbd
mov ecx, edi
mov dword [esp + 0x18], eax
call fcn.10062fb8
cmp eax, 1
jne 0x100650bb
mov eax, dword [edi]
jmp 0x10064a4b
mov ecx, dword [esp + 0x10]
call fcn.1006315d
test al, al
je 0x100650df
mov ecx, dword [esp + 0x40]
call fcn.100634c7
mov ecx, dword [esp + 0x18]
and ecx, 7
add eax, ecx
jmp 0x10064fce
mov ecx, edi
call fcn.10062fb8
push eax
lea ecx, [esp + 0x10]
call fcn.10069d19
jmp case.0x10063ae0.63
mov edi, dword [ebp + 0xc]
cmp esi, 3
jne case.default.0x10063ae0
mov ecx, edi
call fcn.10062f83
mov ecx, eax
call fcn.1006307f
jmp 0x10063deb
push 0x40
mov edx, 0x80
pop ecx
call fcn.10063145
mov ecx, dword [esp + 0x20]
mov edx, eax
call fcn.10069cc2
mov edi, dword [ebp + 0xc]
test al, al
je 0x10065164
mov ecx, dword [esp + 0x10]
push 0x10
call fcn.1006317f
test al, al
je 0x10065164
mov ecx, dword [esp + 0x20]
push 0x40
pop edx
call fcn.10069cc2
shl al, 4
lea ecx, [esp + 0x1c]
add al, 0x2e
mov byte [esp + 0x58], al
push dword [esp + 0x58]
call fcn.10069cda
mov ebx, edi
jmp 0x100648df
mov edi, dword [ebp + 0xc]
mov ecx, edi
call fcn.10062f8c
test al, al
je 0x10065164
xor edx, edx
mov ecx, edi
inc edx
call fcn.10062ff6
test al, al
je case.default.0x10063ae0
mov esi, dword [esp + 0x10]
mov ecx, esi
call fcn.1006315d
test al, al
je 0x100651a6
mov ecx, edi
call fcn.10062fb8
cmp eax, 2
je 0x100651bd
mov ecx, esi
call fcn.10063163
test al, al
je 0x100651c1
mov ecx, edi
call fcn.10062fb8
cmp eax, 4
jne 0x100651c1
mov al, 1
jmp 0x100651c3
xor al, al
push eax
lea ecx, [esp + 0x20]
call fcn.10069cf5
jmp 0x100648df
mov edi, dword [ebp + 0xc]
cmp esi, edx
je 0x10063ffc
mov ebx, edi
cmp esi, 2
je 0x10063ea1
push 0xe9
jmp 0x100648d6
mov ebx, dword [ebp + 0xc]
mov edx, dword [esp + 0xc]
or edx, dword [esp + 0x20]
mov edi, dword [esp + 0x10]
shr edx, 0x18
cmp edx, 0x80
ja 0x10067556
mov eax, dword [esp + 0x1c]
and edx, 0x7f
mov cl, dl
mov dword [esp + 0x50], edx
or cl, 0x40
mov byte [eax], cl
xor eax, eax
mov ecx, dword [esp + 0x1c]
test edx, edx
setne al
add ecx, eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x1c], ecx
sub ecx, dword [edi + 0x6c]
mov dword [esp + 0x38], ecx
movzx eax, byte [eax + 7]
mov ecx, dword [esp + 0xc]
and ecx, 0x1f00
sub ecx, 0x100
mov esi, dword [eax*4 + 0x100a2578]
neg ecx
mov dword [esp + 0x3c], esi
sbb ecx, ecx
xor eax, eax
inc ecx
cmp dword [esp + 0x14], eax
setne al
add eax, 5
add ecx, eax
mov eax, dword [ebx]
and al, 7
mov dword [esp + 0x44], ecx
mov ecx, ebx
cmp al, 4
jne 0x100653ea
call fcn.10062f83
mov ecx, dword [edi + 0x2c]
push eax
call fcn.10063124
mov ebx, eax
mov dword [esp + 0x54], ebx
test ebx, ebx
je 0x100693f6
lea esi, [edi + 0x68]
mov ecx, ebx
push dword [esi]
mov dword [esp + 0x4c], esi
call fcn.100630ec
test al, al
je 0x10065325
mov ecx, ebx
call fcn.100630f9
mov ebx, dword [esp + 0x44]
mov esi, eax
sub esi, dword [esp + 0x38]
sub esi, ebx
lea eax, [esi - 2]
add eax, ebx
mov ecx, eax
mov dword [esp + 0x58], eax
call fcn.10069dcf
test al, al
je 0x10065494
mov ebx, dword [esp + 0x3c]
test ebx, ebx
je 0x10065494
mov ecx, dword [esp + 0x20]
push 0x20
pop edx
call fcn.10069cc2
test al, al
jne 0x10065494
push 0x10
pop edx
lea ecx, [esp + 0x20]
call fcn.1006314f
push ebx
lea ecx, [esp + 0x20]
call fcn.10069cda
push dword [esp + 0x58]
lea ecx, [esp + 0x20]
call fcn.10069cda
jmp 0x10063c90
mov ebx, dword [esp + 0x3c]
test ebx, ebx
je 0x1006534f
cmp dword [esp + 0xc], 0
je 0x100653d3
mov ecx, dword [esp + 0x20]
push 0x10
pop edx
call fcn.10069cc2
test al, al
jne 0x100653d3
lea esi, [edi + 0x68]
cmp dword [esp + 0xc], 0
mov dword [esp + 0x48], esi
je 0x1006548d
mov ecx, dword [esp + 0x20]
push 0x10
pop edx
call fcn.10069cc2
test al, al
jne 0x1006548d
push 0x1f00
lea ecx, [esp + 0x10]
call fcn.10063429
test eax, eax
lea ecx, [esp + 0x1c]
setne al
movzx eax, al
push eax
push 0xf
call fcn.10069cc8
push dword [esp + 0xc]
lea ecx, [esp + 0x20]
call fcn.10069cda
mov edx, dword [esp + 0x14]
test edx, edx
setne al
movzx eax, al
push eax
push 0
push 3
pop ecx
call fcn.100634a6
pop ecx
push eax
lea ecx, [esp + 0x24]
call fcn.10069cc8
mov dword [esp + 0x3c], 0xfffffffc
push 4
pop ebx
jmp 0x100694c7
push ebx
lea ecx, [esp + 0x20]
call fcn.10069cda
or dword [esp + 0x3c], 0xffffffff
xor ebx, ebx
inc ebx
jmp 0x100694c7
call fcn.10062fa3
test al, al
je 0x10063cd1
mov ecx, edi
call fcn.10063159
mov ecx, eax
call fcn.10063104
mov ecx, ebx
mov dword [esp + 0x48], eax
mov dword [esp + 0x40], edx
call fcn.10062f83
mov ecx, eax
call fcn.1006307f
mov ecx, dword [esp + 0x48]
and ecx, dword [esp + 0x40]
mov dword [esp + 0x34], eax
mov dword [esp + 0x24], edx
cmp ecx, 0xffffffff
je 0x10065522
mov ebx, dword [esp + 0x44]
mov esi, eax
sub esi, ebx
mov ecx, edi
sbb edx, 0
sub esi, dword [esp + 0x48]
sbb edx, dword [esp + 0x40]
sub esi, dword [esp + 0x38]
sbb edx, 0
mov dword [esp + 0x58], edx
call fcn.1006316b
mov cl, al
call fcn.10063088
test al, al
jne 0x100652c5
push dword [esp + 0x58]
push esi
call fcn.10069c86
pop ecx
pop ecx
test al, al
jne 0x100652c5
mov ecx, dword [esp + 0x54]
call fcn.10063445
test al, al
jne 0x1006551e
push 0x30
jmp 0x100693f8
cmp dword [esp + 0xc], 0
je 0x1006548d
mov ecx, dword [esp + 0x20]
push 0x10
pop edx
call fcn.10069cc2
test al, al
jne 0x1006548d
push 0x10
pop ecx
call fcn.10063140
mov edx, eax
lea ecx, [esp + 0x20]
call fcn.10063154
push 0x1f00
lea ecx, [esp + 0x10]
call fcn.10063429
test eax, eax
lea ecx, [esp + 0x1c]
setne al
movzx eax, al
push eax
push 0xf
call fcn.10069cc8
push dword [esp + 0xc]
lea ecx, [esp + 0x20]
call fcn.10069cda
mov edx, dword [esp + 0x14]
test edx, edx
setne al
movzx eax, al
push eax
push 0
push 3
pop ecx
call fcn.100634a6
pop ecx
push eax
lea ecx, [esp + 0x24]
call fcn.10069cc8
push esi
lea ecx, [esp + 0x20]
call fcn.10069ce7
jmp 0x10063c90
mov esi, dword [esp + 0x3c]
mov ecx, dword [edi + 0x2c]
lea eax, [esp + 0x4c]
push 4
pop ebx
push ebx
push eax
call fcn.1006a983
test eax, eax
jne 0x100639a9
mov ecx, edi
call fcn.1006318c
mov ecx, dword [esp + 0x4c]
mov dword [ecx + 0x18], eax
and dword [ecx + 0x1c], 0
mov ecx, dword [edi + 0x68]
call fcn.10063096
mov ecx, dword [esp + 0x4c]
mov dword [ecx + 0x10], eax
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x34]
mov dword [eax + 0x20], ecx
mov ecx, dword [esp + 0x24]
mov dword [eax + 0x24], ecx
cmp dword [esp + 0xc], 0
je 0x10065657
mov ecx, edi
call fcn.1006316b
mov cl, al
call fcn.1006308e
test al, al
je 0x100655cd
mov ecx, dword [esp + 0x54]
call fcn.10063445
test al, al
je 0x100655cd
cmp dword [esp + 0x50], 0
jne 0x100655aa
push 0x40
lea ecx, [esp + 0x20]
call fcn.10069cda
push dword [esp + 0x24]
mov ecx, dword [edi + 0x2c]
push dword [esp + 0x38]
call fcn.1006a49d
test eax, eax
jne 0x100639a9
mov eax, dword [esp + 0x4c]
mov dword [eax + 4], 5
push 0x1f00
lea ecx, [esp + 0x10]
call fcn.10063429
test eax, eax
lea ecx, [esp + 0x1c]
setne al
movzx eax, al
push eax
push 0xf
call fcn.10069cc8
push dword [esp + 0xc]
lea ecx, [esp + 0x20]
call fcn.10069cda
mov edx, dword [esp + 0x14]
test edx, edx
setne al
movzx eax, al
push eax
push 0
push 3
pop ecx
call fcn.100634a6
pop ecx
push eax
lea ecx, [esp + 0x24]
call fcn.10069cc8
mov ecx, dword [esp + 0x4c]
push ebx
xor ebx, ebx
push ebx
lea ecx, [ecx + 8]
call fcn.100630a5
push ebx
push dword [edi + 0x74]
lea ecx, [esp + 0x24]
call fcn.100631f9
mov ecx, dword [esp + 0x50]
push eax
lea ecx, [ecx + 8]
call fcn.100630ca
push ebx
lea ecx, [esp + 0x20]
call fcn.10069dde
jmp 0x10063c90
push esi
lea ecx, [esp + 0x20]
call fcn.10069cda
mov ecx, dword [esp + 0x4c]
xor ebx, ebx
push 1
push ebx
lea ecx, [ecx + 8]
call fcn.100630a5
push ebx
push dword [edi + 0x74]
lea ecx, [esp + 0x24]
call fcn.100631f9
mov ecx, dword [esp + 0x50]
push eax
lea ecx, [ecx + 8]
call fcn.100630ca
push ebx
lea ecx, [esp + 0x20]
call fcn.10069cda
jmp 0x10063c90
mov edi, dword [ebp + 0xc]
cmp esi, 2
jne 0x100656ec
mov ecx, edi
mov ebx, edi
call fcn.10062fb8
mov edi, dword [esp + 0x10]
mov esi, eax
test esi, esi
jne 0x100656c1
mov ecx, edi
call fcn.1006316f
mov esi, eax
jmp 0x100656dd
sub esi, 2
cmp esi, 2
je 0x100656dd
cmp esi, 4
je 0x100656dd
mov ecx, edi
call fcn.1006316f
cmp esi, eax
jne 0x10065df6
push esi
lea ecx, [esp + 0x10]
call fcn.10069d04
jmp 0x10063ea5
cmp esi, 0x1b
jne case.default.0x10063ae0
mov ecx, dword [esp + 0x10]
call fcn.1006315d
test al, al
je case.default.0x10063ae0
mov ecx, edi
call fcn.10062f83
mov ecx, ebx
mov esi, eax
call fcn.10062f83
mov ecx, esi
mov edi, eax
call fcn.1006307f
test edx, edx
jg 0x100645d0
jl 0x10065734
cmp eax, 0xffff
ja 0x100645d0
mov ecx, edi
call fcn.1006307f
test edx, edx
jg 0x100645d0
jl 0x1006574e
cmp eax, 0xffffffff
ja 0x100645d0
mov ecx, dword [esp + 0x40]
call fcn.100634c7
push eax
lea ecx, [esp + 0x10]
call fcn.100633fd
mov ecx, esi
call fcn.1006307f
mov ecx, edi
mov esi, eax
call fcn.1006307f
or edx, esi
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
mov byte [esp + 0x34], 6
jmp case.0x10063ae0.1
mov edi, dword [ebp + 0xc]
cmp esi, 0x11
jne case.default.0x10063ae0
mov ecx, edi
call fcn.10062fb8
push eax
lea ecx, [esp + 0x10]
call fcn.10069d04
jmp 0x100641dd
mov edi, dword [ebp + 0xc]
cmp esi, 9
jne 0x100659b0
mov ecx, edi
call fcn.10062fd7
mov ecx, edi
test al, al
je 0x10065942
call fcn.10062fbd
mov ecx, ebx
mov dword [esp + 0x18], eax
call fcn.10062fbd
mov ecx, ebx
mov dword [esp + 0x14], eax
call fcn.10062fd7
test al, al
je 0x100658a0
mov ecx, edi
call fcn.10062fb8
mov ecx, ebx
mov esi, eax
call fcn.10062fb8
cmp esi, eax
jne case.default.0x10063ae0
cmp esi, 1
jne 0x10065883
mov ecx, edi
call fcn.10063255
lea ecx, [esp + 0x20]
mov esi, Ordinal_2
mov edi, 0xc0000000
test al, al
jne 0x10065833
cmp dword [esp + 0x18], 4
sbb edx, edx
and edx, edi
add edx, 0x40000000
call fcn.1006314f
jmp 0x1006583f
mov edx, esi
call fcn.1006314f
add dword [esp + 0x18], 4
mov ecx, ebx
call fcn.10063255
lea ecx, [esp + 0x20]
test al, al
jne 0x10065864
cmp dword [esp + 0x14], 4
sbb edx, edx
and edx, edi
add edx, 0x40000000
call fcn.1006314f
jmp 0x10065870
mov edx, esi
call fcn.1006314f
add dword [esp + 0x14], 4
push 0x88
lea ecx, [esp + 0x10]
call fcn.100633fd
jmp 0x1006439f
push 0x89
lea ecx, [esp + 0x10]
call fcn.100633fd
push esi
lea ecx, [esp + 0x10]
call fcn.10069d04
jmp 0x1006439f
mov ecx, ebx
call fcn.100632b5
test al, al
je 0x100658d3
push 0x8c
lea ecx, [esp + 0x10]
call fcn.100633fd
mov ecx, edi
call fcn.10062fb8
push eax
lea ecx, [esp + 0x10]
call fcn.10069d04
dec dword [esp + 0x14]
jmp case.0x10063ae0.63
mov ecx, ebx
call fcn.100632c5
test al, al
je 0x10065920
push 0x120
lea ecx, [esp + 0x10]
call fcn.100633fd
test byte [esp + 0x14], 8
je case.0x10063ae0.63
mov ecx, dword [esp + 0x10]
call fcn.1006315d
test al, al
je case.0x10063ae0.63
push 0xf0
lea ecx, [esp + 0x20]
call fcn.10069cda
and dword [esp + 0x14], 7
jmp case.0x10063ae0.63
mov ecx, ebx
call fcn.100632d5
test al, al
je case.default.0x10063ae0
push 0x121
lea ecx, [esp + 0x10]
call fcn.100633fd
jmp case.0x10063ae0.63
call fcn.10062fbd
mov ecx, ebx
mov dword [esp + 0x14], eax
call fcn.10062fbd
mov ecx, ebx
mov dword [esp + 0x18], eax
call fcn.10062fd7
test al, al
je case.default.0x10063ae0
mov ecx, edi
call fcn.100632b5
test al, al
je 0x10065985
push 0x8e
lea ecx, [esp + 0x10]
call fcn.100633fd
mov ecx, ebx
jmp 0x100658bb
mov ecx, edi
call fcn.100632c5
test al, al
je 0x1006599a
push 0x122
jmp 0x100658e3
mov ecx, edi
call fcn.100632d5
test al, al
je case.default.0x10063ae0
push 0x123
jmp 0x10065934
cmp esi, 0x11
jne 0x10065ab7
mov ecx, edi
call fcn.10062fbd
mov esi, ebx
mov dword [esp + 0x14], eax
mov ecx, edi
mov dword [esp + 0x24], esi
call fcn.100632b5
lea ecx, [esp + 0xc]
test al, al
je 0x100659fd
push 0x8e
call fcn.100633fd
mov ecx, ebx
call fcn.10062fb8
push eax
lea ecx, [esp + 0x10]
call fcn.10069d04
dec dword [esp + 0x14]
jmp 0x10063ea1
push 0
call fcn.100633fd
mov ecx, edi
call fcn.10062fb8
push eax
lea ecx, [esp + 0x10]
call fcn.10069d19
cmp dword [esp + 0x14], 0
jne 0x10065a69
mov ecx, ebx
call fcn.10062f83
mov ecx, eax
call fcn.10063018
test al, al
jne 0x10065a69
mov ecx, ebx
call fcn.10062f83
push eax
push dword [esp + 0x24]
mov ecx, edi
call fcn.10062fb8
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x24]
push eax
call fcn.100635f5
add esp, 0xc
test al, al
je 0x10065a69
push 0xa0
lea ecx, [esp + 0x10]
call fcn.100633b1
jmp 0x10065e69
mov ecx, edi
call fcn.10062fb8
cmp eax, 1
jne 0x10065aad
mov ecx, edi
call fcn.10063255
lea ecx, [esp + 0x20]
test al, al
jne 0x10065a9e
cmp dword [esp + 0x14], 4
sbb edx, edx
and edx, 0xc0000000
add edx, 0x40000000
call fcn.1006314f
jmp 0x10065aad
mov edx, Ordinal_2
call fcn.1006314f
add dword [esp + 0x14], 4
push 0x8a
jmp 0x10064aea
cmp esi, 0xa
jne 0x10065bc0
mov ecx, ebx
call fcn.10062fbd
mov esi, edi
mov dword [esp + 0x14], eax
mov ecx, ebx
mov dword [esp + 0x24], esi
call fcn.100632b5
lea ecx, [esp + 0xc]
test al, al
je 0x10065b06
push 0x8c
call fcn.100633fd
mov ecx, edi
call fcn.10062fb8
push eax
lea ecx, [esp + 0x10]
call fcn.10069d04
dec dword [esp + 0x14]
mov ebx, esi
jmp 0x10063ea1
push 0
call fcn.100633fd
mov ecx, ebx
call fcn.10062fb8
push eax
lea ecx, [esp + 0x10]
call fcn.10069d19
cmp dword [esp + 0x14], 0
jne 0x10065b69
mov ecx, edi
call fcn.10062f83
mov ecx, eax
call fcn.10063018
test al, al
jne 0x10065b69
mov ecx, edi
call fcn.10062f83
push eax
push dword [esp + 0x24]
mov ecx, ebx
call fcn.10062fb8
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x24]
push eax
call fcn.100635f5
add esp, 0xc
test al, al
je 0x10065b69
push 0xa2
jmp 0x10065a5b
mov ecx, ebx
call fcn.10062fb8
cmp eax, 1
jne 0x10065bad
mov ecx, ebx
call fcn.10063255
lea ecx, [esp + 0x20]
test al, al
jne 0x10065b9e
cmp dword [esp + 0x14], 4
sbb edx, edx
and edx, 0xc0000000
add edx, 0x40000000
call fcn.1006314f
jmp 0x10065bad
mov edx, Ordinal_2
call fcn.1006314f
add dword [esp + 0x14], 4
push 0x88
lea ecx, [esp + 0x10]
call fcn.100633b1
jmp 0x10065aff
cmp esi, 0x19
jne 0x10065cf2
mov ecx, edi
call fcn.10062fbd
mov ecx, edi
mov dword [esp + 0x14], eax
call fcn.10062fb8
mov byte [esp + 0x34], al
cmp al, 1
jne 0x10065c48
mov ecx, edi
call fcn.10063255
lea ecx, [esp + 0x20]
test al, al
jne 0x10065c0c
cmp dword [esp + 0x14], 4
sbb edx, edx
and edx, 0xc0000000
add edx, 0x40000000
call fcn.1006314f
jmp 0x10065c1b
mov edx, Ordinal_2
call fcn.1006314f
add dword [esp + 0x14], 4
push 0xb0
lea ecx, [esp + 0x10]
call fcn.100633fd
mov ecx, ebx
call fcn.10062f83
mov ecx, eax
call fcn.10069ca9
movzx eax, al
cdq
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
jmp 0x100647fb
mov ecx, ebx
call fcn.10062f83
mov ecx, eax
call fcn.1006307f
cmp byte [esp + 0x34], 8
mov esi, eax
mov ebx, edx
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], ebx
jne 0x10065c9a
mov ecx, dword [esp + 0x20]
push 0x20
pop edx
call fcn.10069cc2
test al, al
jne 0x10065c9a
push ebx
push esi
call fcn.10069d4a
pop ecx
pop ecx
test al, al
je 0x10065cba
mov ecx, dword [esp + 0x10]
push 1
call fcn.1006317f
test al, al
je 0x10065cba
mov byte [esp + 0x34], 4
push 0xb8
lea ecx, [esp + 0x10]
call fcn.100633fd
push dword [esp + 0x34]
lea ecx, [esp + 0x10]
call fcn.10069d74
jmp 0x100647fb
push dword [esp + 0x2c]
push dword [esp + 0x2c]
call fcn.10069c86
pop ecx
pop ecx
test al, al
je 0x10065c9a
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0xc]
push 0x80000c7
mov dword [esp + 0x1c], eax
call fcn.100633fd
and dword [esp + 0x14], 0
mov byte [esp + 0x34], 4
jmp case.0x10063ae0.63
cmp esi, 0x1a
jne case.default.0x10063ae0
mov ecx, edi
call fcn.10062fb8
mov dword [esp + 0x6c], eax
test eax, eax
je 0x100668f4
xor ecx, ecx
cmp eax, 1
setne cl
add ecx, 0xc6
push ecx
lea ecx, [esp + 0x10]
call fcn.100633fd
push dword [esp + 0x6c]
lea ecx, [esp + 0x10]
call fcn.10069d04
and dword [esp + 0x14], 0
mov ecx, ebx
call fcn.10062f83
mov ecx, eax
call fcn.1006307f
mov dword [esp + 0x2c], edx
lea ecx, [esp + 0x6c]
mov dword [esp + 0x28], eax
lea edx, [esp + 0x74]
mov dword [esp + 0x74], 4
call fcn.10069cba
mov dword [esp + 0x38], eax
mov byte [esp + 0x34], al
jmp 0x10063e9f
mov edi, dword [ebp + 0xc]
cmp esi, 0x11
jne 0x10065dfd
mov ecx, edi
call fcn.10062fbd
mov esi, ebx
mov dword [esp + 0x14], eax
push 0xa0
lea ecx, [esp + 0x10]
mov dword [esp + 0x28], esi
call fcn.100633fd
mov ecx, edi
call fcn.10062fb8
push eax
lea ecx, [esp + 0x10]
call fcn.10069d19
mov ecx, edi
call fcn.10062f83
mov ecx, eax
call fcn.10062fc1
test al, al
je case.default.0x10063ae0
cmp dword [esp + 0x14], 0
jne case.default.0x10063ae0
mov ecx, ebx
call fcn.10062f83
mov ecx, eax
call fcn.10063018
test al, al
jne 0x10065df2
mov ecx, ebx
call fcn.10062f83
mov ecx, eax
call fcn.10063331
cmp eax, 2
jne 0x10065e69
mov edi, dword [esp + 0x10]
push 0x2b
jmp 0x100693f8
cmp esi, 0xa
jne 0x10065eaf
mov ecx, ebx
call fcn.10062fbd
mov esi, edi
mov dword [esp + 0x14], eax
push 0xa2
lea ecx, [esp + 0x10]
mov dword [esp + 0x28], esi
call fcn.100633fd
mov ecx, ebx
call fcn.10062fb8
push eax
lea ecx, [esp + 0x10]
call fcn.10069d19
mov ecx, ebx
call fcn.10062f83
mov ecx, eax
call fcn.10062fc1
test al, al
je case.default.0x10063ae0
cmp dword [esp + 0x14], 0
jne case.default.0x10063ae0
mov ecx, edi
call fcn.10062f83
mov ecx, eax
call fcn.10063018
test al, al
jne 0x10065df2
mov ecx, esi
call fcn.10062f83
mov ecx, eax
call fcn.10063064
mov ecx, dword [esp + 0x10]
mov esi, eax
mov edi, edx
call fcn.1006316f
mov ecx, dword [esp + 0x24]
mov byte [esp + 0x34], al
call fcn.10062f83
mov ecx, eax
call fcn.10063354
push eax
lea ecx, [esp + 0x20]
call fcn.1006354a
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], edi
jmp case.0x10063ae0.1
cmp esi, 0x19
jne case.default.0x10063ae0
mov ecx, edi
call fcn.10062f83
mov ecx, eax
call fcn.10063265
test al, al
je case.default.0x10063ae0
mov ecx, edi
call fcn.10062fbd
push 0xb8
lea ecx, [esp + 0x10]
mov dword [esp + 0x18], eax
call fcn.100633fd
mov ecx, ebx
mov byte [esp + 0x34], 8
call fcn.10062f83
mov ecx, eax
call fcn.1006307f
push 8
lea ecx, [esp + 0x10]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], edx
call fcn.10069d8a
jmp 0x100647fb
mov ecx, ebx
call fcn.10062fb8
dec eax
lea ecx, [esp + 0xc]
neg eax
sbb eax, eax
neg eax
push eax
call fcn.100633b1
mov edi, dword [ebp + 0xc]
mov ecx, edi
call fcn.10062fb8
push eax
lea ecx, [esp + 0x10]
call fcn.10069d04
cmp esi, 9
jne 0x100641d4
mov ecx, edi
call fcn.10062fbd
mov ecx, ebx
mov dword [esp + 0x14], eax
call fcn.10062fbd
mov ecx, ebx
mov dword [esp + 0x18], eax
call fcn.10062fb8
cmp eax, 1
jne case.0x10063ae0.63
jmp 0x10064a49
mov edi, dword [ebp + 0xc]
cmp esi, 0xa
jne case.default.0x10063ae0
mov ecx, ebx
call fcn.10063265
movzx eax, al
lea ecx, [esp + 0xc]
push eax
call fcn.10069d95
jmp 0x100642be
mov edi, dword [ebp + 0xc]
cmp esi, 0x12
jne case.default.0x10063ae0
mov ecx, edi
call fcn.10062f83
mov ecx, ebx
mov esi, eax
call fcn.10062f83
mov ecx, eax
call fcn.10062fcf
mov ecx, esi
mov bl, al
call fcn.10062fcf
cmp al, bl
jne case.default.0x10063ae0
mov ecx, esi
call fcn.1006300e
test al, al
jne case.default.0x10063ae0
mov ecx, esi
call fcn.1006304f
test al, al
jne case.default.0x10063ae0
mov ecx, esi
call fcn.1006334a
test al, al
je 0x10066004
mov ecx, esi
call fcn.10063354
cmp eax, 1
jne case.default.0x10063ae0
mov ecx, edi
call fcn.10062f83
mov ecx, eax
call fcn.10062fbd
mov ebx, dword [ebp + 0x10]
mov dword [esp + 0x14], eax
jmp 0x10063ea1
mov edi, dword [ebp + 0xc]
cmp esi, 0xb
jne 0x10066070
mov ecx, ebx
call fcn.10062fbd
test eax, eax
jne case.default.0x10063ae0
mov ecx, ebx
call fcn.10062fb8
mov ecx, dword [esp + 0x40]
lea esi, [eax - 1]
neg esi
sbb esi, esi
neg esi
call fcn.100634c7
add eax, esi
lea ecx, [esp + 0xc]
push eax
call fcn.100633fd
mov ecx, ebx
call fcn.10062fb8
push eax
lea ecx, [esp + 0x10]
call fcn.10069d5e
jmp 0x10063dd9
cmp esi, 9
jne case.default.0x10063ae0
mov ecx, edi
call fcn.10062fbd
cmp eax, 2
jne case.default.0x10063ae0
mov ecx, ebx
call fcn.10062fbd
test eax, eax
jne case.default.0x10063ae0
mov ecx, ebx
call fcn.10062fb8
dec eax
lea ecx, [esp + 0xc]
neg eax
sbb eax, eax
neg eax
push eax
call fcn.100633b1
mov ecx, ebx
jmp 0x10064fda
mov edi, dword [ebp + 0xc]
cmp esi, 0x11
jne case.default.0x10063ae0
mov ecx, edi
call fcn.10062fbd
cmp eax, 2
jne case.default.0x10063ae0
push 6
pop edx
mov ecx, ebx
call fcn.10063458
test al, al
je case.default.0x10063ae0
mov ecx, ebx
call fcn.10062fb8
mov edi, eax
test edi, edi
je 0x100668f4
xor ecx, ecx
mov esi, ebx
cmp edi, 1
setne cl
push ecx
lea ecx, [esp + 0x10]
call fcn.100633b1
push edi
jmp 0x10065084
mov edi, dword [ebp + 0xc]
cmp esi, edx
jne 0x1006614b
mov ecx, edi
call fcn.100632b5
test al, al
je 0x100661e1
mov ecx, edi
call fcn.10062fbd
cmp eax, 7
jae 0x100661da
push dword [eax*4 + 0x1009d248]
lea ecx, [esp + 0x10]
call fcn.100633fd
jmp case.0x10063ae0.1
cmp esi, 3
jne 0x10066225
mov ecx, edi
call fcn.10062f83
mov ecx, eax
call fcn.1006307f
mov esi, eax
mov bl, 4
mov eax, edx
mov dword [esp + 0x28], esi
push eax
push esi
mov dword [esp + 0x34], eax
mov byte [esp + 0x3c], bl
call fcn.10069c60
pop ecx
pop ecx
test al, al
je 0x1006619c
mov ecx, dword [esp + 0x20]
push 0x20
pop edx
call fcn.10069cc2
test al, al
movzx ebx, bl
push 1
pop eax
cmove ebx, eax
mov byte [esp + 0x34], bl
push 0x68
pop eax
push 0x6a
pop ecx
cmp bl, 1
cmove eax, ecx
push eax
jmp 0x1006613d
mov edi, dword [ebp + 0xc]
cmp esi, edx
jne 0x10066225
mov ecx, edi
call fcn.100632b5
test al, al
je 0x100661e1
mov ecx, edi
call fcn.10062fbd
cmp eax, 2
je 0x100661da
cmp eax, 7
jae 0x100661da
push dword [eax*4 + 0x1009d730]
jmp 0x1006613d
push 0x31
jmp 0x100645d2
mov ecx, edi
call fcn.10062fb8
cmp eax, 2
jb case.default.0x10063ae0
mov ecx, dword [esp + 0x40]
call fcn.100634c7
push eax
lea ecx, [esp + 0x10]
call fcn.100633fd
mov ecx, edi
call fcn.10062fb8
push eax
lea ecx, [esp + 0x10]
call fcn.10069d5e
mov ecx, edi
call fcn.10062fbd
mov dword [esp + 0x14], eax
jmp 0x100647fb
cmp esi, 2
jne case.default.0x10063ae0
mov ecx, edi
call fcn.10062fb8
test eax, eax
je 0x100668f4
mov ecx, edi
call fcn.10062fb8
cmp eax, esi
je 0x10066262
mov ecx, edi
call fcn.10062fb8
mov ecx, dword [esp + 0x10]
mov esi, eax
call fcn.1006316f
cmp esi, eax
jne case.default.0x10063ae0
mov ecx, edi
call fcn.10062fb8
push eax
lea ecx, [esp + 0x10]
call fcn.10069d5e
jmp 0x10063e9f
mov edi, dword [ebp + 0xc]
test esi, esi
jne 0x1006628e
push edx
lea ecx, [esp + 0x10]
call fcn.100633b1
jmp case.0x10063ae0.1
cmp esi, 3
jne case.default.0x10063ae0
mov ecx, edi
call fcn.10062f83
mov ecx, eax
call fcn.1006307f
mov esi, eax
mov eax, edx
mov dword [esp + 0x28], esi
or esi, eax
mov dword [esp + 0x2c], eax
jne 0x100662c9
mov ecx, dword [esp + 0x20]
push 0x20
pop edx
call fcn.10069cc2
test al, al
jne 0x100662c9
push 1
jmp 0x10066280
mov byte [esp + 0x34], 2
jmp case.0x10063ae0.1
mov edi, dword [ebp + 0xc]
mov ecx, edi
mov eax, dword [edi]
and al, 7
cmp al, dl
jne 0x100663b4
call fcn.10062fb8
push eax
lea ecx, [esp + 0x10]
call fcn.10069d19
mov ecx, edi
call fcn.10062fbd
mov ecx, edi
mov dword [esp + 0x18], eax
call fcn.10062fb8
cmp eax, 1
jne 0x10066341
mov eax, dword [edi]
and eax, 0xff000fff
cmp eax, 0x1000021
je 0x1006632f
cmp dword [esp + 0x18], 4
sbb eax, eax
and eax, 0xc0000000
add eax, 0x40000000
or eax, dword [esp + 0x20]
jmp 0x1006633d
mov eax, dword [esp + 0x20]
add dword [esp + 0x18], 4
or eax, 0x80000000
mov dword [esp + 0x20], eax
cmp esi, 9
jne 0x1006635d
mov ecx, ebx
call fcn.10062fbd
cmp eax, 1
jne case.default.0x10063ae0
push 2
jmp 0x100646e3
cmp esi, 0x19
jne case.default.0x10063ae0
mov ecx, ebx
call fcn.10062f83
mov ecx, eax
call fcn.1006307f
xor ebx, ebx
movzx eax, al
xor edx, edx
mov dword [esp + 0x28], eax
inc ebx
mov dword [esp + 0x2c], edx
mov byte [esp + 0x34], dl
cmp eax, ebx
jne 0x100663a0
mov ecx, dword [esp + 0x20]
push 0x20
pop edx
call fcn.10069cc2
test al, al
je case.0x10063ae0.63
push 0x10
lea ecx, [esp + 0x10]
call fcn.10063408
mov byte [esp + 0x34], bl
jmp case.0x10063ae0.63
call fcn.10062fb8
test eax, eax
je 0x100668f4
mov ecx, edi
call fcn.10062fb8
push eax
lea ecx, [esp + 0x10]
call fcn.10069d19
cmp esi, 0xa
jne 0x100663f7
mov ecx, ebx
call fcn.10062fbd
cmp eax, 1
jne case.default.0x10063ae0
push 2
lea ecx, [esp + 0x10]
call fcn.100633b1
jmp 0x10063e9f
cmp esi, 0x1a
jne case.default.0x10063ae0
mov ecx, ebx
call fcn.10062f83
mov ecx, eax
call fcn.1006307f
xor ebx, ebx
movzx eax, al
xor cl, cl
mov dword [esp + 0x28], eax
xor edx, edx
mov dword [esp + 0x38], ecx
inc ebx
mov dword [esp + 0x2c], edx
mov byte [esp + 0x34], cl
cmp eax, ebx
jne 0x10066440
mov ecx, dword [esp + 0x20]
push 0x20
pop edx
call fcn.10069cc2
test al, al
je 0x10063e9f
push 0x10
lea ecx, [esp + 0x10]
call fcn.10063408
mov al, bl
jmp 0x10065d63
mov edi, dword [ebp + 0xc]
cmp esi, edx
jne 0x10063fba
mov ecx, edi
call fcn.10062fbd
mov dword [esp + 0x18], eax
mov ecx, dword [edi]
and ecx, 0xff000fff
cmp ecx, 0x1000021
je 0x10066480
cmp eax, 4
jmp 0x10064a5c
add eax, 4
mov dword [esp + 0x18], eax
jmp 0x10064a73
mov edi, dword [ebp + 0xc]
cmp esi, 0xc9
jne 0x100664d2
mov ecx, edi
call fcn.10062fb8
push eax
lea ecx, [esp + 0x10]
call fcn.10069d04
mov ecx, ebx
call fcn.10062fbd
mov ecx, edi
mov dword [esp + 0x14], eax
call fcn.10062fbd
mov ecx, dword [ebp + 0x14]
mov dword [esp + 0x18], eax
call fcn.10062f83
mov ecx, eax
call fcn.1006307f
jmp 0x10063bc4
cmp esi, 0xca
jne 0x1006651e
mov ecx, ebx
call fcn.10062fb8
push eax
lea ecx, [esp + 0x10]
call fcn.10069d04
mov ecx, ebx
call fcn.10062fbd
mov ecx, dword [ebp + 0x14]
mov ebx, edi
mov dword [esp + 0x14], eax
call fcn.10062f83
mov ecx, eax
call fcn.1006307f
mov dword [esp + 0x28], eax
mov al, 1
mov dword [esp + 0x2c], edx
mov dword [esp + 0x38], eax
mov byte [esp + 0x34], al
jmp 0x10063ea1
push edx
lea ecx, [esp + 0x10]
call fcn.100633b1
cmp esi, 0x49
jne 0x10066545
mov ecx, dword [ebp + 0x14]
call fcn.10062fbd
cmp eax, 1
jne case.default.0x10063ae0
mov ecx, edi
jmp 0x1006480e
cmp esi, 0x4a
jne case.default.0x10063ae0
mov ecx, dword [ebp + 0x14]
call fcn.10062fbd
cmp eax, 1
jne case.default.0x10063ae0
mov ecx, ebx
jmp 0x10064832
mov edi, dword [ebp + 0xc]
cmp esi, 0x11
jne case.default.0x10063ae0
mov ecx, ebx
mov esi, ebx
call fcn.10062f83
mov ecx, eax
call fcn.1006307b
test eax, eax
jne case.default.0x10063ae0
mov ecx, edi
call fcn.10062f83
xor edx, edx
mov ecx, eax
call fcn.10062ff6
test al, al
je case.default.0x10063ae0
mov ecx, edi
call fcn.10062fb8
mov ecx, ebx
mov edi, eax
call fcn.10062fae
test al, al
je 0x100665c5
mov ecx, ebx
call fcn.10062fb8
cmp eax, edi
jne 0x100669f4
push edi
lea ecx, [esp + 0x10]
call fcn.10069d19
jmp 0x10063d17
mov edi, dword [ebp + 0xc]
cmp esi, 0xa
jne case.default.0x10063ae0
mov ecx, edi
mov esi, edi
call fcn.10062f83
mov ecx, eax
call fcn.1006307b
test eax, eax
jne case.default.0x10063ae0
mov ecx, ebx
call fcn.10062f83
xor edx, edx
mov ecx, eax
call fcn.10062ff6
test al, al
je case.default.0x10063ae0
mov ecx, ebx
call fcn.10062fb8
mov ecx, edi
mov ebx, eax
call fcn.10062fae
test al, al
je 0x10066633
mov ecx, edi
call fcn.10062fb8
cmp eax, ebx
jne 0x100669f4
push ebx
jmp 0x100665c6
mov edi, dword [ebp + 0xc]
cmp esi, 0x12
jne case.default.0x10063ae0
mov ecx, edi
call fcn.10062f83
mov ecx, eax
call fcn.10063040
mov ecx, ebx
mov esi, eax
call fcn.10062f83
mov ecx, eax
call fcn.10063040
cmp esi, eax
jne case.default.0x10063ae0
mov ecx, edi
mov esi, ebx
call fcn.10062f83
mov ecx, eax
call fcn.1006304f
test al, al
jne case.default.0x10063ae0
mov ecx, ebx
call fcn.10062fb8
mov ebx, eax
test ebx, ebx
je 0x100668f4
jmp 0x10066624
mov edi, dword [ebp + 0xc]
cmp esi, 9
jne 0x10066761
mov ecx, edi
call fcn.10062fb8
mov ecx, ebx
mov esi, eax
call fcn.10062fb8
cmp esi, eax
jne 0x100669f4
mov ecx, edi
call fcn.10062fb8
push eax
lea ecx, [esp + 0x10]
call fcn.10069d19
mov ecx, edi
call fcn.10062fbd
mov ecx, ebx
mov dword [esp + 0x18], eax
call fcn.10062fbd
mov ecx, edi
mov dword [esp + 0x14], eax
call fcn.10062fb8
cmp eax, 1
jne case.0x10063ae0.63
mov eax, dword [edi]
lea ecx, [esp + 0x20]
and eax, 0xff000fff
mov esi, Ordinal_2
mov edi, 0xc0000000
cmp eax, 0x1000021
je 0x10066723
cmp dword [esp + 0x18], 4
sbb edx, edx
and edx, edi
add edx, 0x40000000
call fcn.1006314f
push 4
pop ecx
jmp 0x10066731
mov edx, esi
call fcn.1006314f
push 4
pop ecx
add dword [esp + 0x18], ecx
mov eax, dword [ebx]
and eax, 0xff000fff
cmp eax, 0x1000021
je 0x1006674c
cmp dword [esp + 0x14], ecx
lea ecx, [esp + 0x20]
jmp 0x100649c2
lea ecx, [esp + 0x20]
mov edx, esi
call fcn.1006314f
add dword [esp + 0x14], 4
jmp case.0x10063ae0.63
cmp esi, 0xa
jne 0x100667ad
mov ecx, ebx
call fcn.10062fb8
push eax
lea ecx, [esp + 0x10]
call fcn.10069d19
mov ecx, ebx
call fcn.10062fbd
mov ecx, ebx
mov dword [esp + 0x14], eax
call fcn.10062fb8
cmp eax, 1
jne 0x10063e9f
mov eax, dword [ebx]
lea ecx, [esp + 0x20]
and eax, 0xff000fff
cmp eax, 0x1000021
je 0x100644ae
jmp 0x10064491
mov ecx, eax
call fcn.100634c7
push eax
lea ecx, [esp + 0x10]
call fcn.100633fd
lea ecx, [esp + 0xc]
call fcn.10063354
mov dword [esp + 0x14], eax
cmp esi, 0x19
jne 0x100668e0
mov ecx, edi
call fcn.10062fb8
push eax
lea ecx, [esp + 0x10]
call fcn.10069d19
mov ecx, edi
call fcn.10062fbd
mov ecx, edi
mov dword [esp + 0x18], eax
call fcn.10062fb8
cmp eax, 1
jne 0x10066855
mov ecx, edi
call fcn.10063255
lea ecx, [esp + 0x20]
test al, al
jne 0x10066825
cmp dword [esp + 0x18], 4
sbb edx, edx
and edx, 0xc0000000
add edx, 0x40000000
call fcn.1006314f
jmp 0x10066834
mov edx, Ordinal_2
call fcn.1006314f
add dword [esp + 0x18], 4
mov ecx, ebx
call fcn.10062f83
mov ecx, eax
call fcn.10069ca9
movzx eax, al
cdq
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
mov byte [esp + 0x34], 1
jmp 0x1006688f
mov ecx, ebx
call fcn.10062f83
mov ecx, eax
call fcn.1006307f
mov ecx, edi
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
mov dword [esp + 0x78], 4
call fcn.10062fb8
lea edx, [esp + 0x78]
mov dword [esp + 0x7c], eax
lea ecx, [esp + 0x7c]
call fcn.10069cba
mov byte [esp + 0x34], al
cmp dword [esp + 0x18], 0
jne case.0x10063ae0.63
mov ecx, dword [esp + 0x20]
push 0x20
pop edx
call fcn.10069cc2
test al, al
jne case.0x10063ae0.63
push 0x8200000
lea ecx, [esp + 0x10]
call fcn.10063413
mov ecx, edi
call fcn.10062fb8
xor ecx, ecx
cmp eax, 1
setne cl
add ecx, 0xa8
push ecx
lea ecx, [esp + 0x10]
call fcn.1006341e
jmp case.0x10063ae0.1
cmp esi, 0x1a
jne case.default.0x10063ae0
mov ecx, edi
call fcn.10062fb8
test eax, eax
jne 0x100668fb
push 0x34
jmp 0x100639a4
mov ecx, edi
call fcn.10062fb8
push eax
lea ecx, [esp + 0x10]
call fcn.10069d19
mov ecx, ebx
call fcn.10062f83
mov ecx, eax
call fcn.1006307f
mov ecx, edi
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
mov dword [esp + 0x80], 4
call fcn.10062fb8
mov dword [esp + 0x84], eax
lea edx, [esp + 0x80]
lea ecx, [esp + 0x84]
jmp 0x10065d5e
mov edi, dword [ebp + 0xc]
cmp esi, 0x11
jne case.0x10063ae0.61
mov ecx, edi
call fcn.10062fb8
push eax
lea ecx, [esp + 0x10]
call fcn.10069d19
mov ecx, edi
call fcn.10062fbd
mov ecx, edi
mov dword [esp + 0x14], eax
call fcn.10062fb8
cmp eax, 1
jne 0x10063ea1
mov eax, dword [edi]
and eax, 0xff000fff
cmp eax, 0x1000021
je 0x100669a7
cmp dword [esp + 0x14], 4
sbb eax, eax
and eax, 0xc0000000
add eax, 0x40000000
or eax, dword [esp + 0x20]
jmp 0x100669b5
mov eax, dword [esp + 0x20]
add dword [esp + 0x14], 4
or eax, 0x80000000
mov dword [esp + 0x20], eax
jmp 0x10063ea1
mov edi, dword [ebp + 0xc]
cmp esi, 9
jne 0x10066b21
mov ecx, edi
call fcn.10062fbd
mov ecx, ebx
mov dword [esp + 0x18], eax
call fcn.10062fbd
mov ecx, edi
mov dword [esp + 0x14], eax
call fcn.10062fb8
mov ecx, ebx
mov esi, eax
call fcn.10062fb8
cmp esi, eax
je 0x100669fb
push 0x35
jmp 0x100639a4
cmp esi, 1
je 0x100666ee
cmp dword [esp + 0x54], 0x668
jne 0x10066b1b
cmp dword [esp + 0x14], 0
je 0x10066a24
cmp dword [esp + 0x18], 0
jne 0x10066b1b
mov edi, dword [esp + 0x10]
mov ecx, edi
call fcn.10063163
test al, al
je 0x10066a52
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x18]
jne 0x10066a52
cmp esi, 4
jb 0x10066a52
cmp esi, 8
jne 0x10066b1b
push 0x8000000
jmp 0x10066a7d
mov ecx, dword [esp + 0x20]
push 0x20
pop edx
call fcn.10069cc2
test al, al
jne 0x10066b1b
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0xc]
add dword [esp + 0x14], eax
push esi
call fcn.10069d19
push 0x8200000
lea ecx, [esp + 0x10]
call fcn.10063413
push 0x90
lea ecx, [esp + 0x10]
call fcn.1006341e
push dword [esp + 0xc]
lea ecx, [esp + 0x20]
call fcn.100634d3
push dword [esp + 0x20]
lea ecx, [esp + 0x10]
call fcn.100633d7
mov ecx, dword [esp + 0x14]
mov esi, eax
shr ecx, 3
or esi, ecx
mov ecx, esi
call fcn.100634b1
test al, al
jne 0x10067556
and esi, 0x7f
lea ecx, [esp + 0x1c]
setne al
or esi, 0x40
movzx eax, al
push eax
push esi
call fcn.10069cc8
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0xc]
and eax, 7
push eax
mov dword [esp + 0x18], eax
call fcn.100633b1
push dword [esp + 0xc]
lea ecx, [esp + 0x20]
call fcn.100634f2
push dword [esp + 0x34]
push dword [esp + 0x30]
push dword [esp + 0x30]
lea ecx, [esp + 0x28]
call fcn.1006359e
jmp 0x10063c90
push esi
jmp 0x100650e7
cmp esi, 0xa
jne case.default.0x10063ae0
jmp 0x10066766
mov edi, dword [ebp + 0xc]
cmp esi, 9
jne 0x10066b7b
mov ecx, edi
call fcn.10062fbd
mov ecx, ebx
mov dword [esp + 0x14], eax
call fcn.10062fbd
mov ecx, dword [esp + 0x20]
mov edx, 0x100
mov dword [esp + 0x18], eax
call fcn.10069cc2
test al, al
je case.0x10063ae0.63
mov ecx, dword [esp + 0x40]
call fcn.100634c7
push eax
lea ecx, [esp + 0x10]
call fcn.100633fd
jmp 0x100643c0
cmp esi, 0x11
je 0x100641dd
cmp esi, 0xa
jne case.default.0x10063ae0
mov ecx, eax
call fcn.100634c7
push eax
lea ecx, [esp + 0x10]
call fcn.100633fd
jmp 0x100642be
mov edi, dword [ebp + 0xc]
cmp esi, 9
jne 0x10066c4a
mov ecx, edi
call fcn.10062fbd
mov ecx, ebx
mov dword [esp + 0x14], eax
call fcn.10062fbd
mov edx, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x18], edx
test eax, eax
je 0x10066c9d
test edx, edx
jne case.default.0x10063ae0
push 0xff
lea ecx, [esp + 0x10]
mov dword [esp + 0x1c], eax
call fcn.10063429
mov ecx, dword [esp + 0x18]
add ecx, 0x37000
add eax, ecx
push eax
lea ecx, [esp + 0x10]
call fcn.100633fd
mov ecx, dword [esp + 0xc]
shr ecx, 0x15
and ecx, 7
setne al
movzx eax, al
push eax
movzx eax, byte [ecx + 0x1009d200]
lea ecx, [esp + 0x20]
push eax
call fcn.10069cc8
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0xc]
shr ecx, 0xa
mov byte [eax], cl
mov eax, dword [esp + 0x1c]
mov cl, byte [esp + 0xc]
inc eax
mov dword [esp + 0x1c], eax
mov byte [eax], cl
inc dword [esp + 0x1c]
jmp case.0x10063ae0.0
cmp esi, 2
jne case.default.0x10063ae0
mov ecx, edi
call fcn.10062fb8
mov ecx, 0xdc
cmp eax, 4
lea edx, [ecx - 4]
cmove ecx, edx
push ecx
lea ecx, [esp + 0x10]
call fcn.100633fd
push 0xffff1fff
lea ecx, [esp + 0x10]
call fcn.10063413
jmp 0x10063e9f
mov edi, dword [ebp + 0xc]
test esi, esi
je 0x10066c99
cmp esi, edx
jne 0x10066c4a
mov ecx, edi
call fcn.10062fbd
mov edx, eax
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0xc]
shr eax, 0xa
movzx eax, al
add eax, 0x36000
add eax, edx
mov dword [esp + 0xc], eax
jmp case.0x10063ae0.65
mov edi, dword [ebp + 0xc]
cmp esi, 2
jne 0x10066d51
mov ecx, edi
mov ebx, edi
call fcn.10062fb8
mov esi, dword [esp + 0x48]
cmp eax, 4
jne 0x10066ce9
push 0x1000
mov ecx, esi
call fcn.10063385
test al, al
jne 0x10063ea1
mov ecx, edi
call fcn.10062fb8
cmp eax, 8
jne 0x10066d0c
push 0x2000
mov ecx, esi
call fcn.10063385
test al, al
je 0x10066d0c
push 4
jmp 0x10064aea
mov ecx, edi
call fcn.10062fb8
cmp eax, 0xa
jne case.default.0x10063ae0
push 0x800
mov ecx, esi
call fcn.10063385
test al, al
je case.default.0x10063ae0
mov ecx, dword [esp + 0x40]
call fcn.100634c7
push eax
lea ecx, [esp + 0x10]
call fcn.100633fd
lea ecx, [esp + 0xc]
call fcn.10063354
jmp 0x100641e4
cmp esi, edx
jne case.default.0x10063ae0
mov eax, dword [esp + 0x54]
cmp eax, 0xce
jne 0x10066d75
mov ecx, edi
call fcn.10062fbd
add eax, 0x364c0
jmp 0x10066bf9
cmp eax, 0xec
jne 0x10066d8d
mov ecx, edi
call fcn.10062fbd
add eax, 0x374d0
jmp 0x10066bf9
cmp eax, 0xef
jne case.default.0x10063ae0
mov ecx, edi
call fcn.10062fbd
add eax, 0x374d8
jmp 0x10066bf9
mov edi, dword [ebp + 0xc]
cmp esi, 2
jne case.default.0x10063ae0
push 0xffff1fff
lea ecx, [esp + 0x10]
call fcn.10063413
mov ecx, edi
mov ebx, edi
call fcn.10062fb8
mov esi, dword [esp + 0x48]
cmp eax, 2
jne 0x10066de9
push 0x800
mov ecx, esi
call fcn.10063385
test al, al
jne 0x10066d05
mov ecx, edi
call fcn.10062fb8
cmp eax, 4
jne 0x10066e09
push 0x1000
mov ecx, esi
call fcn.10063385
test al, al
jne 0x10063ea1
mov ecx, edi
call fcn.10062fb8
cmp eax, 8
jne case.default.0x10063ae0
push 0x2000
mov ecx, esi
call fcn.10063385
test al, al
je case.default.0x10063ae0
mov ecx, dword [esp + 0x40]
call fcn.100634c7
and eax, 0xffff1fff
jmp 0x10066d39
test esi, esi
jne case.0x10063ae0.70
push edx
lea ecx, [esp + 0x10]
call fcn.100633b1
jmp case.0x10063ae0.65
mov edi, dword [ebp + 0xc]
cmp esi, edx
jne case.default.0x10063ae0
mov ecx, edi
call fcn.10062fbd
push eax
jmp 0x10066e45
mov edi, dword [ebp + 0xc]
cmp esi, edx
jne 0x10066e8c
mov ecx, edi
call fcn.10062fbd
test eax, eax
jne case.default.0x10063ae0
mov ecx, dword [esp + 0x40]
call fcn.100634c7
jmp 0x10066bf9
cmp esi, 2
jne case.default.0x10063ae0
jmp 0x10066c72
mov edi, dword [ebp + 0xc]
cmp esi, 0xc9
jne 0x10066eda
mov ecx, ebx
call fcn.10063295
movzx eax, al
lea ecx, [esp + 0xc]
push eax
call fcn.10069da4
mov ecx, dword [ebp + 0x14]
call fcn.10062f83
mov ecx, eax
call fcn.1006307f
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
mov byte [esp + 0x34], 1
jmp 0x10064bd7
cmp esi, 0xca
jne case.default.0x10063ae0
mov ecx, eax
call fcn.100634c7
push eax
lea ecx, [esp + 0x10]
call fcn.100633fd
mov ecx, ebx
call fcn.10063295
movzx eax, al
lea ecx, [esp + 0xc]
push eax
call fcn.10069da4
mov ecx, dword [ebp + 0x14]
call fcn.10062f83
mov ecx, eax
call fcn.1006307f
mov dword [esp + 0x28], eax
mov al, 1
mov dword [esp + 0x2c], edx
mov dword [esp + 0x38], eax
mov byte [esp + 0x34], al
jmp 0x100642be
mov edi, dword [ebp + 0xc]
cmp esi, 0xc9
jne 0x10066f71
mov ecx, ebx
call fcn.10063295
movzx eax, al
lea ecx, [esp + 0xc]
push eax
call fcn.10069da4
mov ecx, dword [ebp + 0x14]
call fcn.10062f83
mov ecx, eax
call fcn.1006307f
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
mov byte [esp + 0x34], 1
jmp 0x1006481d
cmp esi, 0xca
jne case.default.0x10063ae0
jmp 0x10066ef7
mov edi, dword [ebp + 0xc]
cmp esi, 9
jne 0x10066fcb
mov ecx, edi
call fcn.10062fbd
mov ecx, ebx
mov dword [esp + 0x14], eax
call fcn.10062fbd
mov ecx, dword [esp + 0x20]
mov edx, 0x100
mov dword [esp + 0x18], eax
call fcn.10069cc2
test al, al
je case.0x10063ae0.63
mov eax, dword [esp + 0x40]
cmp byte [eax + 7], 0
je case.0x10063ae0.63
mov ecx, eax
jmp 0x10066b67
cmp esi, 0x11
je 0x100641dd
mov ecx, eax
call fcn.100634c7
push eax
lea ecx, [esp + 0x10]
call fcn.100633fd
jmp 0x100642b5
mov edi, dword [ebp + 0xc]
cmp esi, 0x11
jne 0x10067007
mov ecx, edi
call fcn.10062fb8
cmp eax, 1
je case.default.0x10063ae0
jmp 0x10065791
mov ecx, eax
call fcn.100634c7
push eax
lea ecx, [esp + 0x10]
call fcn.100633fd
cmp esi, 0xa
jne case.default.0x10063ae0
mov ecx, ebx
call fcn.10062fb8
cmp eax, 1
je case.default.0x10063ae0
jmp 0x1006655f
mov edi, dword [ebp + 0xc]
cmp esi, 9
jne 0x100670e5
mov ecx, edi
call fcn.10062fbd
mov ecx, ebx
mov dword [esp + 0x14], eax
call fcn.10062fbd
mov ecx, edi
mov dword [esp + 0x18], eax
call fcn.100632a5
test al, al
je 0x10067099
mov ecx, ebx
call fcn.100632a5
test al, al
je 0x10067099
push 0x16f
lea ecx, [esp + 0x10]
call fcn.100633fd
mov ecx, dword [esp + 0x20]
mov edx, 0x100
call fcn.10069cc2
test al, al
je case.0x10063ae0.63
push 0x10
jmp 0x100643b7
mov ecx, edi
call fcn.10063295
test al, al
je 0x10067165
mov ecx, ebx
call fcn.10063295
test al, al
je 0x10067165
push 0x40017e
lea ecx, [esp + 0x10]
call fcn.100633fd
mov ecx, dword [esp + 0x20]
mov edx, 0x100
call fcn.10069cc2
test al, al
je case.0x10063ae0.63
push 0x2001d6
jmp 0x10066b6d
cmp esi, 0x11
jne 0x10067125
mov ecx, edi
call fcn.10062fbd
mov ecx, edi
mov dword [esp + 0x14], eax
call fcn.100632a5
test al, al
je 0x10067113
push 0x16f
lea ecx, [esp + 0x10]
call fcn.100633fd
jmp 0x10063ea1
mov ecx, edi
call fcn.10063295
test al, al
je 0x10067165
push 0x40017e
jmp 0x10067105
cmp esi, 0xa
jne 0x10067165
mov ecx, ebx
call fcn.10062fbd
mov ecx, ebx
mov dword [esp + 0x14], eax
call fcn.100632a5
test al, al
je 0x10067153
push 0x17f
lea ecx, [esp + 0x10]
call fcn.100633fd
jmp 0x10063e9f
mov ecx, ebx
call fcn.10063295
test al, al
je 0x10067165
push 0x2001d6
jmp 0x10067145
mov eax, 0x8000000
lea ecx, [esp + 0xc]
push eax
mov dword [esp + 0x48], eax
call fcn.1006341e
mov edi, dword [ebp + 0xc]
xor ecx, ecx
mov edx, 0x200000
mov eax, dword [edi + 4]
mov dword [esp + 0x14], eax
mov eax, dword [edi]
and eax, 0xff000fff
cmp eax, 0x10000161
cmove ecx, edx
or dword [esp + 0xc], ecx
cmp esi, 9
jne 0x100671b1
mov ecx, ebx
call fcn.10062fd7
test al, al
je 0x100671ba
jmp 0x10064be2
cmp esi, 0x11
je 0x10063ea1
push dword [esp + 0x44]
lea ecx, [esp + 0x10]
call fcn.10063413
mov ecx, dword [esp + 0x40]
call fcn.100634c7
push eax
lea ecx, [esp + 0x10]
call fcn.1006341e
mov ecx, ebx
call fcn.10062fbd
mov ecx, ebx
mov dword [esp + 0x14], eax
call fcn.10063295
movzx eax, al
lea ecx, [esp + 0xc]
push eax
call fcn.10069da4
cmp esi, 9
jne 0x1006403f
mov ecx, edi
call fcn.10062fd7
jmp 0x10064178
mov eax, dword [ebp + 0x14]
cmp dword [eax], 0
je 0x10067227
xor edx, edx
mov ecx, eax
call fcn.10063318
test al, al
je case.default.0x10063ae0
and esi, 0x3f
jmp case.0x10063ae0.73
mov eax, dword [ebp + 0x14]
cmp dword [eax], 0
je 0x10067227
push 7
pop edx
mov ecx, eax
call fcn.10063458
jmp 0x1006721f
xor eax, eax
mov edx, 0x8000000
cmp byte [ebx + 3], 8
cmove eax, edx
or ecx, eax
mov dword [esp + 0x24], ecx
jmp 0x1006725a
mov edx, dword [esp + 0x44]
mov edi, dword [ebp + 0xc]
xor ecx, ecx
mov eax, dword [edi]
and eax, 0xff000fff
cmp eax, 0x8000039
cmove ecx, edx
or ecx, dword [esp + 0x24]
mov dword [esp + 0xc], ecx
mov edi, dword [ebp + 0xc]
cmp esi, 9
je 0x100641c5
cmp esi, 0x11
jne case.default.0x10063ae0
mov eax, dword [edi + 4]
jmp 0x100641e4
mov edi, dword [ebp + 0xc]
cmp esi, 9
jne 0x100672d1
mov ecx, edi
call fcn.10063295
mov ecx, dword [ebp + 0x10]
mov bl, al
call fcn.10063295
movzx ecx, al
movzx eax, bl
or ecx, eax
push ecx
lea ecx, [esp + 0x10]
call fcn.10069db3
mov ecx, edi
call fcn.10062fbd
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x14], eax
jmp 0x10064eca
cmp esi, 0x11
jne case.default.0x10063ae0
mov ecx, edi
call fcn.10063295
movzx eax, al
lea ecx, [esp + 0xc]
push eax
call fcn.10069da4
jmp 0x100641dd
mov edi, dword [ebp + 0xc]
cmp esi, 9
je 0x10064bd7
cmp esi, 0x11
je 0x100641dd
mov ecx, eax
call fcn.100634c7
push eax
lea ecx, [esp + 0x10]
call fcn.100633fd
lea ecx, [esp + 0xc]
call fcn.10063354
mov dword [esp + 0x14], eax
cmp esi, 0x19
jne case.default.0x10063ae0
mov ecx, ebx
call fcn.10062f83
mov ecx, eax
call fcn.1006307f
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
mov byte [esp + 0x34], 1
jmp 0x10063ffc
mov edi, dword [ebp + 0xc]
cmp esi, 9
je 0x1006729b
cmp esi, 0x11
je 0x100672da
mov ecx, eax
call fcn.100634c7
push eax
lea ecx, [esp + 0x10]
call fcn.100633fd
lea ecx, [esp + 0xc]
call fcn.10063354
mov dword [esp + 0x14], eax
cmp esi, 0x19
jne case.default.0x10063ae0
mov ecx, edi
call fcn.10063295
movzx eax, al
lea ecx, [esp + 0xc]
push eax
call fcn.10069da4
jmp 0x1006732f
mov ebx, dword [ebp + 0x14]
xor eax, eax
mov ecx, dword [ebp + 0x14]
mov edi, dword [ebp + 0xc]
or eax, dword [ebx + 8]
mov ecx, dword [ecx + 0xc]
mov ebx, dword [ebp + 0x10]
mov dword [esp + 0x28], eax
mov al, dl
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x38], eax
mov byte [esp + 0x34], al
cmp esi, 0xc9
je 0x10064bd7
cmp esi, 0xd1
jmp 0x100641d7
mov ecx, dword [ebp + 0x14]
call fcn.10062f83
mov ecx, eax
call fcn.1006307f
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x28], eax
mov al, 1
mov dword [esp + 0x2c], edx
mov dword [esp + 0x38], eax
mov byte [esp + 0x34], al
cmp esi, 0xc9
je 0x1006729b
cmp esi, 0xd1
jmp 0x100672d4
mov ecx, dword [ebp + 0xc]
call fcn.10062fbd
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 4]
mov dword [esp + 0x18], eax
cmp esi, 9
je case.0x10063ae0.63
cmp esi, 0xd9
jne case.default.0x10063ae0
mov ecx, dword [esp + 0x40]
call fcn.100634c7
push eax
lea ecx, [esp + 0x10]
call fcn.100633fd
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0xc]
mov dword [esp + 0x18], eax
call fcn.10063354
mov ecx, dword [ebp + 0x14]
mov dword [esp + 0x14], eax
call fcn.10062f83
mov ecx, eax
call fcn.10069ca9
mov ecx, dword [ebp + 0x10]
mov bl, al
call fcn.10062f83
mov ecx, eax
call fcn.10069ca9
movzx eax, al
cdq
mov ecx, eax
mov byte [esp + 0x34], 2
mov esi, edx
movzx eax, bl
cdq
shld edx, eax, 8
shl eax, 8
add ecx, eax
mov dword [esp + 0x28], ecx
adc esi, edx
mov dword [esp + 0x2c], esi
jmp case.0x10063ae0.63
mov eax, dword [ebp + 0x18]
mov edi, dword [ebp + 0xc]
mov ecx, dword [eax]
mov eax, dword [edi + 4]
and ecx, 7
shl ecx, 9
add ecx, esi
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 4]
mov dword [esp + 0x18], eax
cmp ecx, 9
je case.0x10063ae0.63
cmp ecx, 0x6c9
jne case.default.0x10063ae0
mov ecx, dword [esp + 0x40]
call fcn.100634c7
push eax
lea ecx, [esp + 0x10]
call fcn.100633fd
mov ecx, dword [ebp + 0x18]
call fcn.10062f83
mov ecx, eax
call fcn.10069ca9
mov ecx, dword [ebp + 0x14]
jmp 0x1006747b
mov edi, dword [ebp + 0xc]
and dword [esp + 0x2c], 0
movzx eax, cl
mov dword [esp + 0x28], eax
mov al, dl
mov dword [esp + 0x38], eax
mov byte [esp + 0x34], al
mov dword [esp + 0xc], 0x10f
mov eax, dword [edi + 4]
mov dword [esp + 0x14], eax
cmp esi, 9
je 0x10064be2
mov edi, dword [esp + 0x10]
cmp esi, 0x11
jne 0x10063cd1
jmp 0x10063ea5
mov edi, dword [esp + 0x10]
push 0x25
pop eax
jmp 0x100639a9
mov esi, ecx
mov eax, ecx
shr esi, 6
and eax, 0x600000
and esi, 0x1800000
and ecx, 0x1f00
or esi, eax
mov eax, dword [esp + 0x20]
shr esi, 5
or esi, ecx
shr eax, 0xa
shr esi, 8
test dl, al
je 0x100675af
push 0x18
lea ecx, [esp + 0x10]
call fcn.10063432
or eax, 0x78e0c4
shl esi, 8
xor eax, esi
lea ecx, [esp + 0x1c]
push eax
call fcn.10069ce7
jmp case.0x10063ae0.0
push 0xc5
lea ecx, [esp + 0x20]
call fcn.10069cda
mov eax, esi
lea ecx, [esp + 0x1c]
xor eax, 0xf900
shr eax, 8
xor eax, esi
push eax
call fcn.10069cda
push dword [esp + 0xc]
lea ecx, [esp + 0x20]
call fcn.10069cda
jmp case.0x10063ae0.0
mov edi, dword [ebp + 0xc]
cmp esi, 9
jne 0x10067674
mov ecx, edi
call fcn.10062fbd
mov ecx, ebx
mov dword [esp + 0x14], eax
call fcn.10062fbd
mov ecx, ebx
mov dword [esp + 0x18], eax
call fcn.10062fd7
test al, al
je 0x1006762a
mov ecx, dword [esp + 0x40]
call fcn.100634c7
push eax
lea ecx, [esp + 0x10]
call fcn.100633fd
jmp case.0x10063ae0.93
mov ecx, edi
call fcn.10062fd7
test al, al
je 0x10067641
mov ecx, dword [esp + 0x40]
call fcn.100634c7
inc eax
jmp 0x1006761b
mov ecx, dword [esp + 0x20]
mov edx, 0x100
call fcn.10069cc2
test al, al
je case.0x10063ae0.93
push 1
lea ecx, [esp + 0x10]
call fcn.100633b1
lea edx, [esp + 0x18]
lea ecx, [esp + 0x14]
call fcn.10039576
jmp case.0x10063ae0.93
cmp esi, 0x11
jne 0x10067685
mov ecx, edi
call fcn.10062fbd
jmp 0x1006872f
cmp esi, 0xa
jne case.default.0x10063ae0
push edx
lea ecx, [esp + 0x10]
call fcn.100633b1
jmp 0x10068726
mov edi, dword [ebp + 0xc]
cmp esi, edx
jne case.default.0x10063ae0
mov ecx, edi
call fcn.10062fbd
mov ecx, edi
mov dword [esp + 0x18], eax
call fcn.10062f83
mov ecx, eax
call fcn.10063265
movzx eax, al
lea ecx, [esp + 0xc]
push eax
call fcn.10069d95
jmp case.0x10063ae0.93
mov edi, dword [ebp + 0xc]
cmp esi, 2
jne case.default.0x10063ae0
mov ebx, edi
jmp 0x10068733
mov edi, dword [ebp + 0xc]
movzx eax, byte [ebx + 3]
movzx ecx, byte [edi + 3]
or ecx, eax
shr ecx, 4
mov eax, dword [ecx*4 + 0x1009d670]
or eax, dword [esp + 0x24]
mov dword [esp + 0xc], eax
jmp 0x100681bd
mov edi, dword [ebp + 0xc]
cmp esi, 0xa
jne case.default.0x10063ae0
mov ecx, ebx
call fcn.10062fb8
mov ecx, eax
call fcn.1006349b
mov ecx, edi
mov dword [esp + 0x88], eax
call fcn.1006348b
lea edx, [esp + 0x88]
mov dword [esp + 0x8c], eax
lea ecx, [esp + 0x8c]
call fcn.10069cb2
push eax
lea ecx, [esp + 0x10]
call fcn.1006341e
jmp 0x10068726
mov edi, dword [ebp + 0xc]
cmp esi, 0xc9
jne case.0x10063ae0.100
push 0x2001c5
lea ecx, [esp + 0x10]
call fcn.100633fd
mov ecx, edi
call fcn.10062fbd
mov ecx, ebx
mov dword [esp + 0x14], eax
call fcn.10062fbd
mov ecx, dword [ebp + 0x14]
mov dword [esp + 0x18], eax
call fcn.10062f83
mov ecx, eax
call fcn.1006307f
mov dword [esp + 0x2c], edx
mov dword [esp + 0x28], eax
mov byte [esp + 0x34], 1
jmp case.0x10063ae0.93
mov edi, dword [ebp + 0xc]
movzx eax, byte [ebx + 3]
movzx ecx, byte [edi + 3]
or ecx, eax
shr ecx, 4
mov eax, dword [ecx*4 + 0x1009d670]
or eax, dword [esp + 0x24]
mov dword [esp + 0xc], eax
mov edi, dword [ebp + 0x14]
xor eax, eax
mov ecx, dword [ebp + 0x14]
or eax, dword [edi + 8]
mov ecx, dword [ecx + 0xc]
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x28], eax
mov al, dl
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x38], eax
mov byte [esp + 0x34], al
cmp esi, 0xc9
jne 0x10067804
mov eax, dword [ebx + 4]
mov dword [esp + 0x14], eax
mov eax, dword [edi + 4]
jmp 0x10069616
cmp esi, 0xca
jmp 0x10068720
mov eax, dword [ebp + 0x14]
cmp dword [eax], 0
je 0x10067829
push 7
pop edx
mov ecx, eax
call fcn.10063458
test al, al
je case.default.0x10063ae0
and esi, 0x3f
jmp case.0x10063ae0.103
mov edi, dword [ebp + 0xc]
mov ecx, 0xff000fff
xor edx, edx
mov eax, dword [edi]
and eax, ecx
cmp eax, 0x8000039
mov eax, dword [ebx]
cmove edx, dword [esp + 0x44]
and eax, ecx
xor ecx, ecx
cmp eax, 0x8000039
cmove ecx, dword [esp + 0x44]
or edx, ecx
or edx, dword [esp + 0x24]
mov dword [esp + 0xc], edx
jmp case.0x10063ae0.103
cmp byte [ebx + 3], 0
mov edi, dword [ebp + 0xc]
je 0x10067882
mov ecx, ebx
call fcn.10062fb8
mov ecx, eax
call fcn.1006349b
push eax
jmp 0x10067897
mov ecx, edi
call fcn.10062fb8
cmp eax, 0x20
jne case.0x10063ae0.103
push 0x40000000
lea ecx, [esp + 0x10]
call fcn.1006341e
jmp case.0x10063ae0.103
mov edi, dword [ebp + 0xc]
cmp esi, 9
jne case.0x10063ae0.106
mov ecx, ebx
call fcn.10062f83
mov ecx, eax
call fcn.10062fd7
test al, al
je case.0x10063ae0.106
mov ecx, edi
call fcn.10062fb8
mov ecx, ebx
mov esi, eax
call fcn.10062fb8
or esi, eax
mov ecx, esi
call fcn.1006349b
mov ecx, dword [esp + 0x40]
mov esi, eax
call fcn.100634c7
or esi, eax
lea ecx, [esp + 0xc]
push esi
call fcn.100633fd
mov ecx, edi
call fcn.10062fbd
jmp 0x1006960b
mov edi, dword [ebp + 0xc]
movzx eax, byte [ebx + 3]
movzx ecx, byte [edi + 3]
or ecx, eax
shr ecx, 4
mov eax, dword [ecx*4 + 0x1009d670]
or dword [esp + 0xc], eax
mov edi, dword [ebp + 0xc]
cmp esi, 9
jne 0x1006792a
mov eax, dword [edi + 4]
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 4]
jmp 0x10069616
cmp esi, 0x11
jne case.default.0x10063ae0
mov eax, dword [edi + 4]
jmp 0x1006872f
mov edi, dword [ebp + 0xc]
cmp esi, 0x11
jne case.default.0x10063ae0
mov ecx, edi
call fcn.10062fb8
mov ecx, eax
call fcn.1006349b
mov ecx, ebx
mov dword [esp + 0x90], eax
call fcn.1006348b
mov dword [esp + 0x94], eax
lea edx, [esp + 0x90]
lea ecx, [esp + 0x94]
call fcn.10069cb2
push eax
lea ecx, [esp + 0x10]
call fcn.1006341e
jmp 0x10067679
mov eax, dword [ebp + 0x18]
mov edi, dword [ebp + 0xc]
lea ecx, [eax + 0x10]
mov dword [esp + 0x3c], ecx
lea esi, [eax + 0x20]
mov ecx, edi
mov dword [esp + 0x24], esi
call fcn.10062fe6
test al, al
je case.default.0x10063ae0
mov ecx, ebx
call fcn.10062fe6
test al, al
je case.default.0x10063ae0
mov ecx, dword [ebp + 0x14]
call fcn.10062fe6
test al, al
je case.default.0x10063ae0
mov ecx, dword [ebp + 0x18]
call fcn.10062fe6
test al, al
je case.default.0x10063ae0
mov ecx, dword [esp + 0x3c]
call fcn.10062fe6
test al, al
je case.default.0x10063ae0
mov ecx, esi
call fcn.10062f99
test al, al
je case.default.0x10063ae0
mov ecx, ebx
call fcn.10062fbd
mov ecx, dword [ebp + 0x14]
mov ebx, eax
call fcn.10062fbd
mov ecx, dword [ebp + 0x18]
mov esi, eax
call fcn.10062fbd
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x50], eax
call fcn.10062fbd
mov edx, eax
test bl, 3
jne 0x10067a5d
lea ecx, [ebx + 1]
cmp esi, ecx
jne 0x10067a5d
lea ecx, [ebx + 2]
cmp dword [esp + 0x50], ecx
jne 0x10067a5d
lea eax, [ebx + 3]
cmp edx, eax
jne 0x10067a5d
mov ecx, edi
call fcn.10062fbd
mov edx, ebx
mov ecx, eax
call fcn.10063484
mov ebx, dword [esp + 0x24]
jmp 0x1006872f
push 0x3c
jmp 0x100645d2
mov edi, dword [ebp + 0xc]
mov ecx, 0xff000fff
xor edx, edx
mov eax, dword [edi]
and eax, ecx
cmp eax, 0x8000039
mov eax, dword [ebx]
cmove edx, dword [esp + 0x44]
and eax, ecx
xor ecx, ecx
cmp eax, 0x8000039
cmove ecx, dword [esp + 0x44]
or edx, ecx
or edx, dword [esp + 0x24]
mov dword [esp + 0xc], edx
jmp case.0x10063ae0.111
mov edi, dword [ebp + 0xc]
movzx eax, byte [ebx + 3]
movzx ecx, byte [edi + 3]
or ecx, eax
shr ecx, 4
mov eax, dword [ecx*4 + 0x1009d670]
or eax, dword [esp + 0x24]
mov dword [esp + 0xc], eax
mov edx, dword [ebp + 0x14]
xor eax, eax
mov edi, dword [ebp + 0xc]
or eax, dword [edx + 8]
mov ecx, dword [edx + 0xc]
mov dword [esp + 0x28], eax
mov al, 1
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x38], eax
mov byte [esp + 0x34], al
cmp esi, 0xc9
je 0x1006791b
cmp esi, 0xd1
jne case.default.0x10063ae0
jmp 0x10067679
mov eax, dword [ebp + 0x18]
cmp dword [eax], 0
je case.0x10063ae0.115
push 2
pop edx
mov ecx, eax
call fcn.10062ff6
test al, al
je case.default.0x10063ae0
mov edi, dword [ebp + 0xc]
xor ecx, ecx
mov edx, dword [ebp + 0x14]
mov eax, dword [edi]
and eax, 0xff000fff
cmp eax, 0x8000039
cmove ecx, dword [esp + 0x44]
xor eax, eax
cmp byte [edx + 3], 8
cmove eax, dword [esp + 0x44]
or ecx, eax
or dword [esp + 0xc], ecx
jmp 0x10067b79
mov edi, dword [ebp + 0xc]
xor ecx, ecx
mov eax, dword [edi]
and eax, 0xff000fff
cmp eax, 0x289
mov eax, 0x1000
cmove ecx, eax
or dword [esp + 0x24], ecx
mov edi, dword [ebp + 0xc]
movzx eax, byte [ebx + 3]
movzx ecx, byte [edi + 3]
or ecx, eax
shr ecx, 4
mov eax, dword [ecx*4 + 0x1009d670]
or eax, dword [esp + 0x24]
mov dword [esp + 0xc], eax
mov edx, dword [ebp + 0x14]
mov edi, dword [ebp + 0xc]
cmp esi, 0x49
je 0x10067c81
cmp esi, 0x89
jne case.default.0x10063ae0
mov eax, dword [ebx + 4]
mov ebx, edx
shl eax, 7
add eax, dword [edi + 4]
jmp 0x1006872f
mov edi, dword [ebp + 0xc]
cmp esi, 0x49
jne case.default.0x10063ae0
mov ecx, edi
call fcn.10062fbd
test al, 1
jne 0x10067c2a
mov ecx, edi
call fcn.10062fbd
mov ecx, ebx
lea esi, [eax + 1]
call fcn.10062fbd
cmp esi, eax
jne 0x10067c2a
mov ecx, dword [ebp + 0x14]
call fcn.10062fb8
mov ecx, eax
call fcn.1006349b
push eax
lea ecx, [esp + 0x10]
call fcn.1006341e
mov ecx, dword [ebp + 0x14]
call fcn.10062fbd
mov ecx, edi
mov esi, eax
call fcn.10062fbd
mov edx, esi
mov ecx, eax
call fcn.10063484
mov ebx, dword [ebp + 0x18]
mov ecx, ebx
mov dword [esp + 0x14], eax
call fcn.10062f8c
mov ecx, ebx
test al, al
jne 0x10069611
call fcn.10062f99
test al, al
je case.default.0x10063ae0
jmp 0x10068733
push 0x1d
jmp 0x100645d2
mov edi, dword [ebp + 0xc]
movzx eax, byte [ebx + 3]
movzx ecx, byte [edi + 3]
or ecx, eax
shr ecx, 4
mov eax, dword [ecx*4 + 0x1009d670]
or eax, dword [esp + 0x24]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x18]
and dword [esp + 0x2c], 0
mov edi, dword [ebp + 0xc]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
and ecx, 7
shl eax, 4
shl ecx, 9
add ecx, esi
mov dword [esp + 0x28], eax
mov al, dl
mov dword [esp + 0x38], eax
mov byte [esp + 0x34], al
cmp ecx, 0x249
jne 0x10067c99
mov eax, dword [ebx + 4]
shl eax, 7
add eax, dword [edi + 4]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 4]
jmp 0x10069616
cmp ecx, 0x289
jne case.default.0x10063ae0
mov ecx, ebx
call fcn.10062fbd
mov ecx, edi
mov esi, eax
call fcn.10062fbd
mov edx, esi
mov ecx, eax
call fcn.10063484
mov ebx, dword [ebp + 0x14]
jmp 0x1006872f
mov edi, dword [ebp + 0xc]
xor ecx, ecx
mov eax, dword [edi]
and eax, 0xff000fff
cmp eax, 0x289
mov eax, 0x1000
cmove ecx, eax
or ecx, dword [esp + 0x24]
mov dword [esp + 0xc], ecx
jmp case.0x10063ae0.122
mov edi, dword [ebp + 0xc]
xor ecx, ecx
mov eax, dword [edi]
and eax, 0xff000fff
cmp eax, 0x289
mov eax, 0x1000
cmove ecx, eax
or dword [esp + 0x24], ecx
mov edi, dword [ebp + 0xc]
movzx eax, byte [ebx + 3]
movzx ecx, byte [edi + 3]
or ecx, eax
shr ecx, 4
mov eax, dword [ecx*4 + 0x1009d670]
or eax, dword [esp + 0x24]
mov dword [esp + 0xc], eax
mov ecx, dword [ebp + 0x18]
mov edi, dword [ebp + 0xc]
mov eax, dword [ecx]
mov ecx, dword [ecx + 0xc]
and eax, 7
shl eax, 9
add eax, esi
mov dword [esp + 0x2c], ecx
mov esi, dword [ebp + 0x18]
mov dword [esp + 0x50], eax
xor eax, eax
or eax, dword [esi + 8]
mov dword [esp + 0x28], eax
mov al, dl
mov dword [esp + 0x38], eax
mov byte [esp + 0x34], al
mov eax, dword [esp + 0x50]
cmp eax, 0x649
je 0x10067c81
cmp eax, 0x689
jmp 0x10067c9f
mov ecx, dword [ebp + 0xc]
call fcn.10063265
mov ecx, dword [ebp + 0x14]
mov bl, al
call fcn.10063265
movzx ecx, al
movzx eax, bl
or ecx, eax
push ecx
lea ecx, [esp + 0x10]
call fcn.10069dc1
mov ebx, dword [ebp + 0x10]
mov edi, dword [ebp + 0xc]
cmp esi, 0x49
je 0x100695f1
cmp esi, 0x51
jne case.default.0x10063ae0
mov ecx, dword [ebp + 0x14]
call fcn.10062fbd
mov ecx, edi
mov esi, eax
call fcn.10062fbd
mov edx, esi
mov ecx, eax
call fcn.10063484
jmp 0x1006872f
mov edi, dword [ebp + 0xc]
cmp esi, 0x11
jne case.0x10063ae0.128
mov ecx, eax
call fcn.100634c7
push eax
lea ecx, [esp + 0x10]
call fcn.100633fd
mov ecx, edi
call fcn.10062fb8
mov ecx, eax
call fcn.1006349b
mov ecx, ebx
mov dword [esp + 0x98], eax
call fcn.1006348b
mov dword [esp + 0x9c], eax
lea edx, [esp + 0x98]
lea ecx, [esp + 0x9c]
jmp 0x10067978
mov edi, dword [ebp + 0xc]
cmp esi, 0x51
jne case.default.0x10063ae0
mov ecx, edi
call fcn.10062fb8
mov ecx, dword [ebp + 0x14]
mov esi, eax
call fcn.10062fb8
or esi, eax
mov ecx, esi
call fcn.1006349b
mov ecx, ebx
mov dword [esp + 0xa0], eax
call fcn.1006348b
lea edx, [esp + 0xa0]
mov dword [esp + 0xa4], eax
lea ecx, [esp + 0xa4]
call fcn.10069cb2
push eax
lea ecx, [esp + 0x10]
call fcn.1006341e
jmp 0x10067dab
mov ecx, dword [ebp + 0x18]
call fcn.10062f86
mov ecx, dword [ebp + 0x18]
shl eax, 9
add eax, esi
mov dword [esp + 0x50], eax
call fcn.10062f83
mov ecx, eax
call fcn.1006307f
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x28], eax
mov al, 1
mov dword [esp + 0x38], eax
mov byte [esp + 0x34], al
mov eax, dword [esp + 0x50]
mov dword [esp + 0x2c], edx
cmp eax, 0x649
je 0x100695f1
cmp eax, 0x651
jmp 0x10067da5
mov edi, dword [ebp + 0xc]
cmp esi, 9
jne 0x10067f61
mov ecx, edi
call fcn.10062fd7
test al, al
je 0x10067f0d
mov ecx, dword [esp + 0x40]
call fcn.100634c7
push eax
lea ecx, [esp + 0x10]
call fcn.100633fd
mov ecx, edi
call fcn.10062fb8
push eax
lea ecx, [esp + 0x10]
call fcn.10069d2e
mov ecx, ebx
call fcn.10062fbd
mov ecx, edi
jmp 0x1006960d
mov ecx, ebx
call fcn.10062fd7
test al, al
je 0x10067f2e
mov ecx, ebx
call fcn.10062fb8
push eax
lea ecx, [esp + 0x10]
call fcn.10069d2e
jmp 0x100678ec
push 0x10000000
lea ecx, [esp + 0x10]
call fcn.10063429
test eax, eax
je 0x10067f94
push 0xff9fe000
lea ecx, [esp + 0x10]
call fcn.10063413
push 0x40017e
lea ecx, [esp + 0x10]
call fcn.1006341e
jmp 0x100678ec
cmp esi, 0x11
jne 0x10067f98
push 0x10000000
lea ecx, [esp + 0x10]
call fcn.10063429
test eax, eax
je 0x10067679
push 0xff9fe000
lea ecx, [esp + 0x10]
call fcn.10063413
push 0x40017e
jmp 0x1006797e
mov eax, dword [esp + 0x40]
mov ecx, eax
call fcn.100634c7
push eax
lea ecx, [esp + 0x10]
call fcn.100633fd
cmp esi, 0xa
jne case.default.0x10063ae0
push 0x10000000
lea ecx, [esp + 0x10]
call fcn.10063429
test eax, eax
je 0x10068726
push 0xff9fe000
lea ecx, [esp + 0x10]
call fcn.10063413
push 0x2001d6
jmp 0x1006774d
mov ecx, dword [ebp + 0xc]
call fcn.10062fb8
mov ecx, ebx
mov esi, eax
call fcn.10062fb8
or esi, eax
mov ecx, esi
call fcn.1006349b
push eax
lea ecx, [esp + 0x10]
call fcn.1006341e
mov esi, dword [esp + 0x3c]
mov edi, dword [ebp + 0xc]
cmp esi, 9
je 0x100678ec
cmp esi, 0x11
je 0x10067679
push 0x60000000
lea ecx, [esp + 0x10]
call fcn.10063413
mov ecx, dword [esp + 0x40]
call fcn.100634c7
push eax
lea ecx, [esp + 0x10]
call fcn.1006341e
jmp 0x1006871d
mov edi, dword [ebp + 0xc]
cmp esi, 0x49
jne 0x100680b4
mov ecx, dword [ebp + 0x14]
call fcn.10062fbd
mov ecx, edi
mov esi, eax
call fcn.10062fbd
mov edx, esi
mov ecx, eax
call fcn.10063484
mov ecx, ebx
mov dword [esp + 0x14], eax
call fcn.10062fbd
mov ecx, dword [esp + 0x20]
mov edx, 0x100
mov dword [esp + 0x18], eax
call fcn.10069cc2
test al, al
je case.0x10063ae0.93
lea ecx, [esp + 0xc]
call fcn.100633bc
mov ecx, ebx
call fcn.10062fbd
mov ecx, edi
mov esi, eax
call fcn.10062fbd
mov edx, esi
mov ecx, eax
call fcn.10063484
mov ecx, dword [ebp + 0x14]
jmp 0x1006960d
cmp esi, 0x51
je 0x10067dab
cmp esi, 0x89
jne case.default.0x10063ae0
lea ecx, [esp + 0xc]
call fcn.100633bc
jmp 0x10067ca5
mov ecx, dword [ebp + 0xc]
call fcn.10062fb8
mov ecx, ebx
mov esi, eax
call fcn.10062fb8
or esi, eax
mov ecx, esi
call fcn.1006349b
or dword [esp + 0xc], eax
mov esi, dword [esp + 0x3c]
mov edi, dword [ebp + 0xc]
cmp esi, 0x49
je 0x10068093
cmp esi, 0x89
je 0x10067ca5
push 0x60000000
lea ecx, [esp + 0x10]
call fcn.10063413
mov ecx, dword [esp + 0x40]
call fcn.100634c7
push eax
lea ecx, [esp + 0x10]
call fcn.1006341e
mov ecx, dword [ebp + 0x14]
call fcn.10062f83
mov ecx, eax
call fcn.1006307f
mov dword [esp + 0x28], eax
mov al, 1
mov dword [esp + 0x2c], edx
mov dword [esp + 0x38], eax
mov byte [esp + 0x34], al
cmp esi, 0xc9
jne 0x10067ae3
jmp 0x100678ec
mov edi, dword [ebp + 0xc]
cmp esi, 0x49
je 0x1006804b
cmp esi, 0x51
je 0x10067dab
cmp esi, 0x89
je 0x100680c9
mov ecx, eax
call fcn.100634c7
push eax
lea ecx, [esp + 0x10]
call fcn.100633fd
jmp 0x1006812e
mov edi, dword [ebp + 0xc]
cmp esi, 0x49
je 0x10068093
cmp esi, 0x89
je 0x10067ca5
mov ecx, eax
call fcn.100634c7
push eax
lea ecx, [esp + 0x10]
call fcn.100633fd
cmp esi, 9
je 0x10067eff
jmp 0x1006871d
mov ecx, dword [ebp + 0xc]
call fcn.10062fb8
mov ecx, ebx
mov esi, eax
call fcn.10062fb8
or esi, eax
shr esi, 4
mov eax, dword [esi*4 + 0x1009d670]
or dword [esp + 0xc], eax
mov esi, dword [esp + 0x3c]
mov edi, dword [ebp + 0xc]
cmp esi, 0x49
je 0x10067c81
cmp esi, 0x89
je 0x10067ca5
push 0x60000000
lea ecx, [esp + 0x10]
call fcn.10063413
mov ecx, dword [esp + 0x40]
call fcn.100634c7
push eax
lea ecx, [esp + 0x10]
call fcn.1006341e
cmp esi, 0x4a
jne case.default.0x10063ae0
mov ecx, ebx
call fcn.10062fbd
mov ecx, dword [ebp + 0x14]
mov esi, eax
call fcn.10062fbd
mov edx, esi
mov ecx, eax
call fcn.10063484
jmp 0x1006872d
mov eax, dword [ebx]
xor ecx, ecx
and al, 7
cmp al, 2
mov eax, 0x1000
cmove ecx, eax
or dword [esp + 0x24], ecx
mov edi, dword [ebp + 0xc]
movzx eax, byte [ebx + 3]
movzx ecx, byte [edi + 3]
or ecx, eax
shr ecx, 4
mov eax, dword [ecx*4 + 0x1009d670]
or eax, dword [esp + 0x24]
mov dword [esp + 0xc], eax
mov edi, dword [ebp + 0xc]
cmp esi, 0x49
je 0x10067c81
cmp esi, 0x89
je 0x10067ca5
push 0x60001000
lea ecx, [esp + 0x10]
call fcn.10063413
mov ecx, dword [esp + 0x40]
call fcn.100634c7
push eax
lea ecx, [esp + 0x10]
call fcn.1006341e
lea ecx, [esp + 0xc]
call fcn.10063354
mov ecx, dword [ebp + 0x14]
mov dword [esp + 0x14], eax
call fcn.10062f83
mov ecx, eax
call fcn.1006307f
mov dword [esp + 0x28], eax
mov al, 1
mov dword [esp + 0x2c], edx
mov dword [esp + 0x38], eax
mov byte [esp + 0x34], al
cmp esi, 0xc9
jne 0x10068305
mov ecx, edi
call fcn.10062fbd
mov ecx, dword [esp + 0x14]
mov edx, eax
jmp 0x10069606
cmp esi, 0xd1
jne case.default.0x10063ae0
mov ecx, edi
call fcn.10062fbd
mov ecx, dword [esp + 0x14]
mov edx, eax
jmp 0x10067dc0
mov edi, dword [ebp + 0xc]
mov ecx, 0xff000fff
xor edx, edx
mov eax, dword [edi]
and eax, ecx
cmp eax, 0x8000039
mov eax, dword [ebx]
cmove edx, dword [esp + 0x44]
and eax, ecx
xor ecx, ecx
cmp eax, 0x8000039
cmove ecx, dword [esp + 0x44]
or edx, ecx
or edx, dword [esp + 0x24]
mov dword [esp + 0xc], edx
mov edi, dword [ebp + 0xc]
cmp esi, 9
jne 0x1006836c
mov eax, dword [edi + 4]
shl eax, 7
add dword [esp + 0x14], eax
jmp 0x10067922
cmp esi, 0x11
jmp 0x1006830b
cmp esi, 0xd1
jne case.0x10063ae0.146
lea ecx, [esp + 0xc]
call fcn.100633c5
mov edi, dword [ebp + 0xc]
movzx eax, byte [ebx + 3]
movzx ecx, byte [edi + 3]
or ecx, eax
shr ecx, 4
mov eax, dword [ecx*4 + 0x1009d670]
or dword [esp + 0xc], eax
mov edx, dword [ebp + 0x14]
xor eax, eax
mov edi, dword [ebp + 0xc]
or eax, dword [edx + 8]
mov dword [esp + 0x28], eax
mov al, 1
jmp 0x100683e7
mov edi, dword [ebp + 0xc]
mov eax, dword [edi]
and eax, 0xff000fff
cmp eax, 0x8000039
je 0x100683d1
mov ecx, ebx
call fcn.10062fb8
cmp eax, 8
je 0x100683d1
xor eax, eax
jmp 0x100683d5
mov eax, dword [esp + 0x44]
or dword [esp + 0xc], eax
xor eax, eax
mov edx, dword [ebp + 0x14]
or eax, dword [edx + 8]
mov dword [esp + 0x28], eax
mov al, 4
mov ecx, dword [edx + 0xc]
mov byte [esp + 0x34], al
mov dword [esp + 0x38], eax
mov dword [esp + 0x2c], ecx
cmp esi, 0xc9
je 0x1006835d
cmp esi, 0xd1
jne case.default.0x10063ae0
mov eax, dword [edi + 4]
shl eax, 7
add dword [esp + 0x14], eax
jmp 0x10068733
mov ecx, dword [ebp + 0xc]
movzx esi, byte [ebx + 3]
call fcn.10062fb8
or eax, esi
shr eax, 4
mov eax, dword [eax*4 + 0x1009d670]
or dword [esp + 0xc], eax
mov ecx, dword [ebp + 0x18]
mov edi, dword [ebp + 0xc]
mov eax, dword [ecx]
and eax, 7
shl eax, 9
add eax, dword [esp + 0x3c]
cmp eax, 0x249
jne 0x10068479
mov eax, dword [ebx + 4]
shl eax, 7
add eax, dword [edi + 4]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 4]
mov dword [esp + 0x18], eax
mov eax, dword [ecx + 4]
shl eax, 4
and dword [esp + 0x2c], 0
jmp 0x1006779d
cmp eax, 0x449
jne 0x100684cc
lea ecx, [esp + 0xc]
call fcn.100633bc
mov ecx, ebx
call fcn.10062fbd
mov ecx, edi
mov esi, eax
call fcn.10062fbd
mov edx, esi
mov ecx, eax
call fcn.10063484
mov ebx, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x14]
mov dword [esp + 0x14], eax
call fcn.10062fbd
shl eax, 4
and dword [esp + 0x2c], 0
mov dword [esp + 0x28], eax
mov al, 1
mov dword [esp + 0x38], eax
mov byte [esp + 0x34], al
jmp 0x10068733
cmp eax, 0x289
jne case.default.0x10063ae0
mov ecx, ebx
call fcn.10062fbd
mov ecx, edi
mov esi, eax
call fcn.10062fbd
mov edx, esi
mov ecx, eax
call fcn.10063484
mov ebx, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x18]
jmp 0x100684a8
mov ecx, dword [ebp + 0x18]
mov edi, dword [ebp + 0xc]
lea eax, [ecx + 0x10]
mov dword [esp + 0x50], eax
mov eax, dword [eax]
and eax, 7
cmp al, 3
jne case.default.0x10063ae0
call fcn.10062f86
mov ecx, dword [ebp + 0x18]
shl eax, 9
add eax, esi
mov dword [esp + 0x58], eax
call fcn.10062fb8
mov ecx, edi
mov esi, eax
call fcn.10062fb8
mov edi, eax
mov ecx, ebx
or edi, esi
call fcn.10062fb8
mov esi, eax
or esi, edi
mov edi, dword [ebp + 0x14]
mov ecx, edi
call fcn.10062fb8
or eax, esi
mov ecx, eax
call fcn.1006349b
push eax
lea ecx, [esp + 0x10]
call fcn.1006341e
mov ecx, dword [esp + 0x50]
call fcn.10062f83
mov ecx, eax
call fcn.10069ca9
and al, 0xf
movzx eax, al
cdq
mov esi, eax
mov dword [esp + 0x2c], edx
mov al, 1
mov dword [esp + 0x28], esi
mov dword [esp + 0x38], eax
mov byte [esp + 0x34], al
mov eax, dword [esp + 0x58]
cmp eax, 0x249
jne 0x100685cf
mov ecx, ebx
call fcn.10062fbd
mov ecx, dword [ebp + 0xc]
mov esi, eax
call fcn.10062fbd
mov edx, esi
mov ecx, eax
call fcn.10063484
mov ecx, edi
mov dword [esp + 0x14], eax
call fcn.10062fbd
mov ecx, dword [ebp + 0x18]
mov dword [esp + 0x18], eax
call fcn.10062fbd
shl eax, 4
or dword [esp + 0x28], eax
jmp case.0x10063ae0.93
cmp eax, 0x449
jne 0x10068613
lea ecx, [esp + 0xc]
call fcn.100633bc
mov ecx, ebx
call fcn.10062fbd
mov ecx, dword [ebp + 0xc]
mov esi, eax
call fcn.10062fbd
mov edx, esi
mov ecx, eax
call fcn.10063484
mov ebx, dword [ebp + 0x18]
mov ecx, edi
mov dword [esp + 0x14], eax
call fcn.10062fbd
shl eax, 4
or dword [esp + 0x28], eax
jmp 0x10068733
cmp eax, 0x289
jne case.default.0x10063ae0
mov ecx, ebx
call fcn.10062fbd
mov ecx, dword [ebp + 0xc]
mov esi, eax
call fcn.10062fbd
mov edx, esi
mov ecx, eax
call fcn.10063484
mov ecx, dword [ebp + 0x18]
mov ebx, edi
jmp 0x100685fe
mov edi, dword [ebp + 0xc]
cmp esi, 0x49
je 0x10067c81
cmp esi, 0x11
je 0x10067679
cmp esi, 0xa
jne case.default.0x10063ae0
mov ecx, eax
call fcn.100634c7
push eax
lea ecx, [esp + 0x10]
call fcn.100633fd
jmp 0x10068726
mov edi, dword [ebp + 0xc]
movzx eax, byte [ebx + 3]
movzx ecx, byte [edi + 3]
or ecx, eax
shr ecx, 4
mov eax, dword [ecx*4 + 0x1009d670]
or eax, dword [esp + 0x24]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x18]
mov edi, dword [ebp + 0xc]
mov eax, dword [eax]
and eax, 7
shl eax, 9
add eax, esi
cmp eax, 0x249
jne 0x10068479
mov eax, dword [ebx + 4]
shl eax, 7
add eax, dword [edi + 4]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x20]
shr eax, 8
test dl, al
jne 0x100686e7
lea ecx, [esp + 0xc]
call fcn.100633bc
mov ecx, dword [ebp + 0x18]
call fcn.10062fbd
mov ecx, dword [ebp + 0x14]
mov dword [esp + 0x18], eax
call fcn.10062fbd
jmp 0x1006846c
mov ecx, dword [ebp + 0x14]
call fcn.10062fbd
mov ecx, dword [ebp + 0x18]
jmp 0x100686d9
mov edi, dword [ebp + 0xc]
cmp esi, edx
jne case.default.0x10063ae0
mov ecx, edi
call fcn.10062fbd
mov dword [esp + 0x14], eax
jmp case.0x10063ae0.93
mov edi, dword [ebp + 0xc]
cmp esi, 0x11
jmp 0x10067ae9
mov edi, dword [ebp + 0xc]
cmp esi, 0xa
jne case.default.0x10063ae0
mov ecx, ebx
call fcn.10062fbd
mov ebx, edi
mov dword [esp + 0x14], eax
mov ecx, ebx
call fcn.10062f86
mov ecx, ebx
call fcn.10062f83
mov ecx, eax
call fcn.10063040
mov ecx, ebx
movzx eax, byte [eax + 0x1009d268]
mov dword [esp + 0x44], eax
call fcn.10062f83
mov ecx, eax
call fcn.10063354
push eax
lea ecx, [esp + 0x20]
call fcn.1006354a
lea ecx, [esp + 0x1c]
call fcn.10063096
mov edi, dword [esp + 0x10]
mov ecx, edi
mov dword [esp + 0x58], eax
call fcn.10063378
test dword [esp + 0x44], eax
lea ecx, [esp + 0x1c]
setne al
movzx eax, al
push eax
call fcn.10069cf5
mov ecx, ebx
call fcn.10062f83
mov ecx, eax
call fcn.10063022
test al, al
je 0x100687bb
mov ecx, ebx
call fcn.10062f83
mov ecx, eax
call fcn.10062fbd
mov dword [esp + 0x18], eax
mov ecx, ebx
call fcn.10062f83
mov ecx, eax
call fcn.10063030
test al, al
je 0x100687e1
mov ecx, ebx
call fcn.10062f83
mov ecx, eax
call fcn.1006304b
mov dword [esp + 0x24], eax
jmp 0x100687e6
and dword [esp + 0x24], 0
mov ecx, ebx
call fcn.10062f83
mov ecx, eax
call fcn.10063365
lea ecx, [edi + 0x48]
movzx esi, al
call fcn.10062fbd
mov edx, dword [esp + 0x24]
mov ecx, edx
push dword [esp + 0x20]
shl esi, 4
and ecx, 0x10
or eax, esi
and edx, 8
mov esi, dword [esp + 0x18]
add eax, eax
or eax, ecx
and esi, 0xf98
shl eax, 0xb
lea ecx, [esp + 0x10]
or esi, eax
mov eax, dword [esp + 0x1c]
add esi, esi
and eax, 8
or esi, edx
add esi, esi
or esi, eax
shl esi, 2
call fcn.100633e7
mov ecx, dword [esp + 0x48]
or eax, esi
and dword [esp + 0x14], 7
mov dword [esp + 0x40], eax
call fcn.10063096
mov ecx, eax
call fcn.10063140
mov edx, 0x400000
mov ecx, eax
call fcn.1006337c
mov esi, dword [esp + 0x40]
mov edx, 0x40000
shl eax, 9
mov ecx, 0x800000
or esi, eax
mov dword [esp + 0x40], esi
call fcn.10063145
mov edx, 0x80000
mov ecx, eax
call fcn.10063145
mov ecx, dword [esp + 0x20]
mov edx, 0x8c0000
call fcn.10069cc2
test al, al
je 0x100688d9
mov edx, 0x80000
mov ecx, 0x40000
call fcn.10063145
mov ecx, dword [esp + 0x20]
mov edx, eax
call fcn.10069cc2
test al, al
jne 0x100696c6
mov ecx, dword [esp + 0x20]
mov edx, 0x800000
call fcn.1006314a
or esi, eax
mov dword [esp + 0x40], esi
mov ecx, dword [esp + 0x48]
call fcn.10063399
test al, al
je 0x10068913
test esi, 0x80df8110
jne 0x1006891f
mov edx, 0x400
mov ecx, 0x800
call fcn.10063145
mov ecx, dword [esp + 0x20]
mov edx, eax
call fcn.10069cc2
test al, al
jne 0x10068913
or esi, 0x10
mov dword [esp + 0x40], esi
test esi, 0x80df8110
je 0x10068a93
push 4
lea ecx, [esp + 0x10]
call fcn.1006343a
mov edx, dword [esp + 0x40]
mov esi, eax
mov ecx, edx
and esi, 0x800000
and ecx, 0x8000
shl ecx, 4
or ecx, edx
and edx, 0x100
and ecx, 0xffff78ef
shl ecx, 4
or ecx, edx
shl ecx, 4
or esi, ecx
lea ecx, [esp + 0xc]
push 5
call fcn.1006343a
and eax, 0x830000
or eax, esi
xor eax, 0x87cf062
mov dword [esp + 0x3c], eax
test eax, 0x10000000
je 0x10068a44
mov ecx, dword [esp + 0x48]
call fcn.100633a7
mov esi, eax
mov ecx, ebx
mov dword [esp + 0x50], esi
call fcn.10062f83
mov ecx, eax
call fcn.1006336f
mov edx, esi
mov ecx, eax
shl edx, cl
test esi, esi
je 0x10068a3d
mov esi, dword [esp + 0x3c]
mov ecx, edx
mov eax, esi
mov dword [esp + 0xa8], 4
and eax, 0x60000000
mov dword [esp + 0xb4], eax
call fcn.10069e13
lea edx, [esp + 0xa8]
mov dword [esp + 0xac], eax
lea ecx, [esp + 0xac]
call fcn.10069cb2
sub eax, 4
shl eax, 0x1d
mov dword [esp + 0xb0], eax
cmp eax, 0x40000000
ja 0x10068a3d
lea edx, [esp + 0xb0]
lea ecx, [esp + 0xb4]
call fcn.10069cb2
and esi, 0x9fffffff
lea ecx, [esp + 0xc]
push 0xffff1fff
or esi, eax
call fcn.10063413
mov ecx, dword [esp + 0x50]
call fcn.10069e13
shl eax, 0xd
lea ecx, [esp + 0xc]
push eax
call fcn.1006341e
jmp 0x10068a84
push 0x29
jmp 0x100693f8
push 0x19
lea ecx, [esp + 0x10]
call fcn.1006343a
mov esi, eax
lea ecx, [esp + 0xc]
push 0xd
and esi, 4
call fcn.1006343a
mov ecx, dword [esp + 0x3c]
and eax, 0x18
shr ecx, 0x1d
add eax, esi
and ecx, 3
add ecx, eax
push dword [ecx*4 + 0x1009d138]
lea ecx, [esp + 0x10]
call fcn.100633b1
mov esi, dword [esp + 0x3c]
push esi
lea ecx, [esp + 0x20]
call fcn.10069ce7
jmp 0x10068b3d
push 0xd
lea ecx, [esp + 0x10]
call fcn.1006343a
mov esi, eax
lea ecx, [esp + 0xc]
push 0xc
and esi, 0x300
call fcn.1006343a
mov ecx, dword [esp + 0x40]
and eax, 0x8000
shr ecx, 0xb
and ecx, 0x400
or eax, ecx
mov ecx, dword [esp + 0x20]
or eax, esi
mov esi, dword [esp + 0x40]
or esi, eax
call fcn.100634bb
push 0xffff1fff
lea ecx, [esp + 0x10]
or esi, eax
call fcn.10063413
test esi, 0x8000807e
je 0x10068b19
push 0x18
lea ecx, [esp + 0x10]
call fcn.10063432
mov ecx, esi
and ecx, 0xf
or eax, dword [ecx*4 + 0x1009d208]
movzx ecx, si
shl ecx, 8
xor ecx, eax
push ecx
lea ecx, [esp + 0x20]
call fcn.10069ce7
jmp 0x10068b4a
push 0xc5
lea ecx, [esp + 0x20]
call fcn.10069cda
mov eax, esi
lea ecx, [esp + 0x1c]
xor eax, 0xf900
shr eax, 8
xor eax, esi
push eax
call fcn.10069cda
push dword [esp + 0xc]
lea ecx, [esp + 0x20]
call fcn.10069cda
mov ecx, dword [esp + 0x48]
push 0x100000
call fcn.10063385
test al, al
jne 0x100691ff
mov eax, dword [esp + 0x44]
test al, 0x42
jne 0x100690f8
test al, 1
je 0x10068d03
and dword [esp + 0x18], 7
mov ecx, ebx
call fcn.10062f83
mov ecx, eax
call fcn.1006307b
push dword [esp + 0x18]
mov edx, dword [esp + 0x18]
xor ecx, ecx
mov dword [esp + 0x58], eax
call fcn.100634a6
pop ecx
mov ecx, dword [esp + 0x48]
mov esi, eax
call fcn.10063391
push 4
pop ebx
cmp dword [esp + 0x18], ebx
je 0x10068c1e
test al, al
jne 0x10068c1e
cmp dword [esp + 0x18], 5
mov ebx, dword [esp + 0x54]
je 0x10068bc8
test ebx, ebx
jne 0x10068bc8
push esi
jmp 0x10068c4d
push 0xe000
lea ecx, [esp + 0x10]
call fcn.10063429
mov ecx, eax
mov eax, ebx
shr ecx, 0xd
sar eax, cl
mov dword [esp + 0x50], ecx
mov ecx, eax
mov dword [esp + 0x3c], eax
call fcn.10069dcf
test al, al
je 0x10068c08
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x50]
shl eax, cl
cmp ebx, eax
jne 0x10068c08
lea eax, [esi + 0x40]
jmp 0x10068cb2
lea eax, [esi + 0x80]
push eax
lea ecx, [esp + 0x20]
call fcn.10069cda
push ebx
jmp 0x100690ea
and esi, 0xf8
or esi, ebx
cmp dword [esp + 0x18], 5
je 0x10068c5b
cmp dword [esp + 0x54], 0
jne 0x10068c5b
push esi
lea ecx, [esp + 0x20]
call fcn.10069cda
push dword [esp + 0x18]
mov edx, ebx
xor ecx, ecx
call fcn.100634a6
pop ecx
push eax
lea ecx, [esp + 0x20]
call fcn.10069cda
jmp 0x10066b01
push 0xe000
lea ecx, [esp + 0x10]
call fcn.10063429
mov ecx, eax
mov eax, dword [esp + 0x54]
shr ecx, 0xd
sar eax, cl
mov dword [esp + 0x50], ecx
mov ecx, eax
mov dword [esp + 0x3c], eax
call fcn.10069dcf
test al, al
je 0x10068cd2
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x50]
shl eax, cl
cmp dword [esp + 0x54], eax
jne 0x10068cd2
lea eax, [esi + 0x40]
push eax
lea ecx, [esp + 0x20]
call fcn.10069cda
push dword [esp + 0x18]
mov edx, ebx
xor ecx, ecx
call fcn.100634a6
pop ecx
push eax
lea ecx, [esp + 0x20]
call fcn.10069cda
mov ecx, dword [esp + 0x3c]
movzx eax, cl
lea ecx, [esp + 0x1c]
push eax
call fcn.10069cda
jmp 0x10066b01
lea eax, [esi + 0x80]
push eax
lea ecx, [esp + 0x20]
call fcn.10069cda
push dword [esp + 0x18]
mov edx, ebx
xor ecx, ecx
call fcn.100634a6
pop ecx
push eax
lea ecx, [esp + 0x20]
call fcn.10069cda
push dword [esp + 0x54]
jmp 0x100690ea
test al, 0x30
jne 0x10069042
mov ecx, ebx
call fcn.10062f83
mov ecx, eax
call fcn.10063331
mov esi, eax
mov ecx, ebx
mov dword [esp + 0x50], esi
call fcn.10062f83
mov ecx, eax
call fcn.1006307b
mov ecx, edi
mov dword [esp + 0x24], eax
call fcn.1006315d
test al, al
je 0x10068d57
cmp esi, 2
je 0x10065df6
mov edx, dword [esp + 0x14]
xor ecx, ecx
push 5
call fcn.100634a6
jmp 0x1006902e
mov ecx, ebx
call fcn.10062f83
mov ecx, eax
call fcn.10062fbd
mov esi, dword [esp + 0x24]
mov ecx, ebx
sar esi, 0x1f
mov dword [esp + 0x3c], eax
mov dword [esp + 0x64], esi
call fcn.10062f83
mov ecx, eax
call fcn.10062fbd
mov ecx, edi
mov dword [esp + 0x48], eax
call fcn.10063159
mov ecx, eax
call fcn.10063104
mov ecx, eax
mov dword [esp + 0x40], edx
mov eax, dword [esp + 0x50]
mov dword [esp + 0x44], ecx
test eax, eax
jne 0x10068e60
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
jne 0x10068e25
cmp dword [esp + 0x3c], esi
je 0x10069009
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x10068e69
mov ebx, dword [esp + 0x58]
mov al, byte [ebx]
cmp al, 0x67
je 0x10069009
cmp dword [esp + 0x54], 0x17e
jne 0x10068ffd
movzx eax, al
test al, 0x40
je 0x10069009
and eax, 0xf7
mov byte [ebx], al
cmp eax, 0x40
jne 0x10069009
mov ecx, dword [esp + 0x20]
mov edx, 0x40000000
call fcn.10069cc2
test al, al
jne 0x10069009
push ebx
lea ecx, [esp + 0x20]
call fcn.1006321e
jmp 0x10069009
mov ecx, ebx
call fcn.10062f83
mov ecx, eax
call fcn.10063354
cmp dword [esp + 0x54], 0x17e
mov ecx, eax
jne 0x10068e51
cmp dword [esp + 0x3c], esi
je 0x10068e4c
cmp dword [esp + 0x48], 0
jne 0x10068e51
xor eax, eax
inc eax
jmp 0x10068e53
xor al, al
cmp ecx, 5
jae 0x10068f3e
test al, al
jmp 0x10068e63
cmp eax, 2
jne 0x10068f3e
mov eax, dword [esp + 0x38]
lea ecx, [esp + 0x1c]
push dword [edi + 0x6c]
movzx esi, al
call fcn.100631f9
mov ecx, eax
mov eax, esi
cdq
add ecx, eax
push 0
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x48]
pop eax
adc eax, edx
and ecx, dword [esp + 0x40]
mov dword [esp + 0x38], eax
cmp ecx, 0xffffffff
je 0x10068f5b
mov ecx, dword [edi + 0x68]
call fcn.10063096
test eax, eax
jne 0x10068f5b
mov ecx, dword [edi + 0x68]
call fcn.10063099
mov esi, eax
mov edi, edx
add esi, dword [esp + 0x50]
mov ecx, ebx
adc edi, dword [esp + 0x38]
add esi, dword [esp + 0x44]
adc edi, dword [esp + 0x40]
add esi, 5
adc edi, 0
call fcn.10062f83
mov ecx, eax
call fcn.10063064
sub eax, esi
mov dword [esp + 0x50], eax
sbb edx, edi
push edx
push eax
call fcn.10069c86
pop ecx
pop ecx
test al, al
je 0x10068f20
mov edx, dword [esp + 0x14]
xor ecx, ecx
push 5
call fcn.100634a6
pop ecx
push eax
lea ecx, [esp + 0x20]
call fcn.10069cda
push dword [esp + 0x50]
lea ecx, [esp + 0x20]
call fcn.10069ce7
jmp 0x10063c77
mov ecx, ebx
call fcn.10062f83
mov ecx, eax
call fcn.1006333a
mov edi, dword [esp + 0x10]
test al, al
jne 0x10065df6
mov esi, dword [esp + 0x64]
cmp dword [esp + 0x3c], esi
je 0x10069009
mov eax, dword [esp + 0x48]
test eax, eax
je 0x10068dc9
push 0x2e
jmp 0x100693f8
mov ecx, dword [edi + 0x2c]
lea eax, [esp + 0x4c]
push 4
push eax
call fcn.1006a983
test eax, eax
jne 0x100639a9
mov edx, dword [esp + 0x14]
xor ecx, ecx
push 5
call fcn.100634a6
pop ecx
push eax
lea ecx, [esp + 0x20]
call fcn.10069cda
mov ecx, dword [edi + 0x68]
call fcn.10063096
mov ecx, dword [esp + 0x4c]
mov dword [ecx + 0x10], eax
mov ecx, edi
call fcn.1006318c
mov ecx, dword [esp + 0x4c]
push 4
push 0
mov dword [ecx + 0x18], eax
and dword [ecx + 0x1c], 0
mov ecx, dword [esp + 0x54]
lea ecx, [ecx + 8]
call fcn.100630a5
push esi
push dword [edi + 0x74]
lea ecx, [esp + 0x24]
call fcn.100631f9
mov ecx, dword [esp + 0x50]
push eax
lea ecx, [ecx + 8]
call fcn.100630ca
mov ecx, ebx
call fcn.10062f83
mov ecx, eax
call fcn.10063064
mov ecx, dword [esp + 0x4c]
mov dword [ecx + 0x20], eax
mov dword [ecx + 0x24], edx
push 0
lea ecx, [esp + 0x20]
call fcn.10069dde
jmp 0x10066b01
push 0x67
push ebx
lea ecx, [esp + 0x24]
call fcn.10069de9
mov edx, dword [esp + 0x14]
xor ecx, ecx
push 4
pop ebx
push ebx
call fcn.100634a6
pop ecx
push eax
lea ecx, [esp + 0x20]
call fcn.10069cda
push 5
mov edx, ebx
xor ecx, ecx
call fcn.100634a6
pop ecx
push eax
lea ecx, [esp + 0x20]
call fcn.10069cda
push dword [esp + 0x24]
jmp 0x100690ea
mov edx, dword [esp + 0x14]
xor ecx, ecx
push 5
call fcn.100634a6
pop ecx
push eax
lea ecx, [esp + 0x20]
call fcn.10069cda
mov ecx, edi
call fcn.1006315d
test al, al
jne 0x10069397
mov ecx, ebx
call fcn.10062f83
mov ecx, eax
call fcn.1006307b
test byte [esp + 0x44], 0x10
mov esi, eax
je 0x100690e9
mov ecx, ebx
call fcn.10062f83
mov ecx, eax
call fcn.10062fbd
mov ecx, dword [edi + 0x2c]
push eax
call fcn.1006310b
mov ebx, eax
mov dword [esp + 0x54], ebx
test ebx, ebx
je 0x100693f6
mov eax, dword [esp + 0x38]
push 0xfffffffffffffffc
movzx eax, al
pop ecx
sub ecx, eax
lea eax, [edi + 0x68]
push dword [eax]
add esi, ecx
mov dword [esp + 0x4c], eax
mov ecx, ebx
mov dword [esp + 0x40], esi
call fcn.100630ec
test al, al
je 0x100653cb
push dword [edi + 0x6c]
lea ecx, [esp + 0x20]
call fcn.100631f9
mov ecx, ebx
sub esi, eax
call fcn.100630f9
add eax, esi
push eax
jmp 0x100690ea
push esi
lea ecx, [esp + 0x20]
call fcn.10069ce7
jmp 0x10066b01
test al, 0x40
jne 0x10069110
mov esi, dword [esp + 0x24]
cmp esi, 4
jne 0x1006920f
push 0x2c
jmp 0x100693f8
mov ecx, ebx
call fcn.10062f83
mov ecx, eax
call fcn.1006307b
movsx edx, ax
mov eax, dword [esp + 0x44]
mov ecx, eax
and ecx, 3
mov dword [esp + 0x3c], edx
mov dword [esp + 0x64], ecx
je 0x100691d4
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x24]
and ecx, 7
and esi, 7
mov dword [esp + 0x18], ecx
cmp dword [esp + 0x64], 3
jne 0x10069178
mov ecx, ebx
call fcn.10062f83
mov ecx, eax
call fcn.1006335d
test eax, eax
jne 0x10065df6
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x3c]
mov al, byte [esi + eax*8 + 0x1009d6b0]
jmp 0x10069188
test al, 2
je 0x10069182
mov ecx, esi
mov dword [esp + 0x18], ecx
mov al, byte [ecx + 0x1009d1b8]
movzx ecx, al
cmp ecx, 0xff
je 0x10065df6
mov eax, dword [esp + 0x14]
lea esi, [ecx + eax*8]
test edx, edx
jne 0x100691ab
cmp esi, 6
jne 0x10068bc2
mov ecx, edx
call fcn.10069dcf
lea ecx, [esp + 0x1c]
test al, al
je 0x100691cc
lea eax, [esi + 0x40]
push eax
call fcn.10069cda
push dword [esp + 0x3c]
jmp 0x10068c4d
lea eax, [esi + 0x80]
jmp 0x100691e7
test al, 0x30
jne 0x10065df6
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x1c]
or eax, 6
push eax
call fcn.10069cda
push dword [esp + 0x3c]
lea ecx, [esp + 0x20]
call fcn.10069e03
jmp 0x10066b01
mov eax, dword [esp + 0x44]
test al, 2
je 0x10063cd1
mov esi, dword [esp + 0x24]
and esi, 7
test al, 1
je 0x100692f9
and dword [esp + 0x18], 7
mov ecx, ebx
call fcn.10062f83
mov ecx, eax
call fcn.1006307b
mov edx, dword [esp + 0x14]
xor ecx, ecx
push 4
mov dword [esp + 0x40], eax
call fcn.100634a6
pop ecx
push dword [esp + 0x18]
mov ecx, ebx
mov dword [esp + 0x4c], eax
call fcn.10062f83
mov ecx, eax
call fcn.1006335d
mov edx, esi
mov ecx, eax
call fcn.100634a6
mov esi, dword [esp + 0x40]
mov ebx, eax
mov dword [esp + 0x5c], ebx
pop ecx
test esi, esi
jne 0x10069288
cmp dword [esp + 0x18], 5
je 0x10069288
mov eax, dword [esp + 0x48]
lea ecx, [esp + 0x1c]
push eax
call fcn.10069cda
push ebx
jmp 0x10068c4d
push 0xe000
lea ecx, [esp + 0x10]
call fcn.10063429
mov ebx, eax
shr ebx, 0xd
mov ecx, ebx
sar esi, cl
mov ecx, esi
call fcn.10069dcf
test al, al
je 0x100692db
mov ecx, ebx
mov eax, esi
mov ebx, dword [esp + 0x3c]
shl eax, cl
cmp ebx, eax
jne 0x100692df
mov eax, dword [esp + 0x48]
lea ecx, [esp + 0x1c]
add eax, 0x40
push eax
call fcn.10069cda
push dword [esp + 0x58]
lea ecx, [esp + 0x20]
call fcn.10069cda
jmp 0x10068bc2
mov ebx, dword [esp + 0x3c]
mov eax, dword [esp + 0x48]
lea ecx, [esp + 0x1c]
sub eax, 0xffffff80
push eax
call fcn.10069cda
push dword [esp + 0x58]
jmp 0x10068c0f
test al, 0x30
jne 0x1006934c
mov edx, dword [esp + 0x14]
xor ecx, ecx
push 4
call fcn.100634a6
pop ecx
push eax
lea ecx, [esp + 0x20]
call fcn.10069cda
push 5
mov ecx, ebx
call fcn.10062f83
mov ecx, eax
call fcn.1006335d
mov edx, esi
mov ecx, eax
call fcn.100634a6
pop ecx
push eax
lea ecx, [esp + 0x20]
call fcn.10069cda
mov ecx, ebx
call fcn.10062f83
mov ecx, eax
call fcn.1006307b
jmp 0x100690e6
mov ecx, edi
call fcn.1006315d
test al, al
je 0x10065df6
mov edx, dword [esp + 0x14]
xor ecx, ecx
push 4
call fcn.100634a6
pop ecx
push eax
lea ecx, [esp + 0x20]
call fcn.10069cda
push 5
mov ecx, ebx
call fcn.10062f83
mov ecx, eax
call fcn.1006335d
mov edx, esi
mov ecx, eax
call fcn.100634a6
pop ecx
push eax
lea ecx, [esp + 0x20]
call fcn.10069cda
mov ecx, dword [edi + 0x2c]
push 1
call fcn.10063100
mov ecx, dword [edi + 0x2c]
push eax
add ecx, 0x88
call fcn.10069c43
test eax, eax
jne 0x100695d8
mov ecx, ebx
call fcn.10062f83
mov ecx, eax
call fcn.1006307b
test byte [esp + 0x44], 0x10
mov dword [esp + 0x58], eax
je 0x10069532
mov ecx, ebx
call fcn.10062f83
mov ecx, eax
call fcn.10062fbd
mov ecx, dword [edi + 0x2c]
push eax
call fcn.1006310b
mov esi, eax
mov dword [esp + 0x54], esi
test esi, esi
jne 0x100693fe
push 0xc
pop ecx
jmp 0x100695db
mov ecx, dword [edi + 0x2c]
lea eax, [esp + 0x4c]
push 3
push eax
call fcn.1006a983
test eax, eax
jne 0x100639a9
lea eax, [edi + 0x68]
mov ecx, dword [eax]
mov dword [esp + 0x48], eax
call fcn.10063096
mov ecx, dword [esp + 0x4c]
mov dword [ecx + 0x10], eax
mov ecx, edi
call fcn.1006318c
mov ecx, dword [esp + 0x4c]
push 4
pop ebx
push ebx
mov dword [ecx + 0x18], eax
and dword [ecx + 0x1c], 0
mov ecx, dword [esp + 0x50]
push 1
lea ecx, [ecx + 8]
call fcn.100630a5
mov eax, dword [esp + 0x38]
lea ecx, [esp + 0x1c]
movzx eax, al
push eax
push dword [edi + 0x74]
mov dword [esp + 0x6c], eax
call fcn.100631f9
mov ecx, dword [esp + 0x50]
push eax
lea ecx, [ecx + 8]
call fcn.100630ca
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x58]
cdq
mov dword [ecx + 0x20], eax
mov dword [ecx + 0x24], edx
mov ecx, esi
call fcn.100630e4
test al, al
je 0x100694bc
mov ecx, dword [esp + 0x54]
mov esi, dword [esp + 0x4c]
call fcn.100630f9
add dword [esi + 0x20], eax
mov ecx, dword [esp + 0x54]
adc dword [esi + 0x24], edx
call fcn.100630e0
mov ecx, eax
call fcn.10063096
mov ecx, dword [esp + 0x4c]
mov dword [ecx + 0x14], eax
jmp 0x10068fed
push 0xfffffffffffffffc
pop eax
sub eax, dword [esp + 0x64]
mov dword [esp + 0x3c], eax
push dword [edi + 0x6c]
lea ecx, [esp + 0x20]
call fcn.100631f9
push ebx
push 0
lea ecx, [esp + 0xd8]
mov esi, eax
call fcn.100630a5
mov ecx, dword [esp + 0x48]
lea eax, [esp + 0xd0]
push eax
push dword [esp + 0x40]
mov ecx, dword [ecx]
push esi
call fcn.10063096
mov ecx, dword [edi + 0x2c]
push eax
push dword [esp + 0x64]
call fcn.1006a5a6
mov esi, eax
test esi, esi
je 0x100695d8
mov ecx, dword [esp + 0x4c]
test ecx, ecx
je 0x10069523
call fcn.10063096
mov dword [esi + 8], eax
push ebx
lea ecx, [esp + 0x20]
call fcn.10063202
jmp 0x10066b01
mov ecx, dword [edi + 0x2c]
lea eax, [esp + 0x4c]
push 3
push eax
call fcn.1006a983
test eax, eax
jne 0x100639a9
mov ecx, dword [edi + 0x68]
call fcn.10063096
mov ecx, dword [esp + 0x4c]
mov dword [ecx + 0x10], eax
mov ecx, dword [edi + 0x68]
call fcn.10063096
mov ecx, dword [esp + 0x4c]
push 4
push 1
mov dword [ecx + 0x14], eax
mov ecx, dword [esp + 0x54]
lea ecx, [ecx + 8]
call fcn.100630a5
mov ecx, dword [esp + 0x38]
movzx eax, cl
lea ecx, [esp + 0x1c]
push eax
push dword [edi + 0x74]
call fcn.100631f9
mov ecx, dword [esp + 0x50]
push eax
lea ecx, [ecx + 8]
call fcn.100630ca
mov ecx, edi
call fcn.1006318c
mov ecx, dword [esp + 0x4c]
xor ebx, ebx
mov dword [ecx + 0x18], eax
mov dword [ecx + 0x1c], ebx
mov ecx, dword [esp + 0x4c]
lea ecx, [ecx + 8]
call fcn.100630a0
mov ecx, dword [esp + 0x4c]
mov esi, eax
mov eax, dword [esp + 0x58]
cdq
push ebx
add eax, dword [ecx + 0x18]
adc edx, dword [ecx + 0x1c]
add eax, esi
mov dword [ecx + 0x20], eax
adc edx, ebx
mov dword [ecx + 0x24], edx
jmp 0x10068fef
xor ecx, ecx
inc ecx
call fcn.10062f83
jmp 0x100639a9
mov edi, dword [ebp + 0xc]
cmp esi, 0x49
jne case.default.0x10063ae0
mov ecx, dword [ebp + 0x14]
call fcn.10062fbd
mov ecx, edi
mov esi, eax
call fcn.10062fbd
mov edx, esi
mov ecx, eax
call fcn.10063484
mov ecx, ebx
mov dword [esp + 0x14], eax
call fcn.10062fbd
mov dword [esp + 0x18], eax
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
and eax, 0xf98
push 7
mov esi, dword [edi + 0x4c]
shl esi, 0xc
or esi, eax
mov eax, dword [esp + 0x1c]
and eax, 0x18
shl esi, 2
or esi, eax
mov eax, ecx
and eax, 0x1000
shl esi, 2
or eax, dword [esp + 0x10]
shr eax, 8
and eax, 0x60001f
pop ebx
and dword [esp + 0x14], ebx
or esi, eax
test ecx, 0x8c0000
je 0x100696d9
mov eax, ecx
and eax, 0x800000
or esi, eax
test ecx, 0xc0000
je 0x100696d9
mov eax, esi
and eax, 0x600000
cmp eax, 0x400000
je 0x10069692
mov ecx, dword [esp + 0x48]
call fcn.1006339f
test al, al
jne 0x100696c6
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x20]
mov edx, dword [eax + 4]
mov eax, ecx
shr eax, 0x12
test al, 1
je 0x100696be
shr edx, 2
test dl, 1
je 0x100696c6
and esi, 0xff9fffff
and ecx, 0x600000
or esi, ecx
jmp 0x100696d3
shr edx, 3
test dl, 1
jne 0x100696cd
push 0x2a
jmp 0x10067558
and esi, 0xff9fffff
or esi, 0x100000
mov eax, dword [esp + 0x48]
mov ecx, 0xd78150
test byte [eax + 3], 1
je 0x100696f9
test ecx, esi
jne 0x10069701
test dword [esp + 0x20], 0xc00
jne 0x100696f9
or esi, 0x10
test ecx, esi
je 0x10069794
mov eax, dword [esp + 0xc]
mov edx, esi
and edx, 0x8000
mov ecx, eax
and eax, dword [esp + 0x44]
shl edx, 4
or edx, esi
shr ecx, 1
and edx, 0xffff78ef
and ecx, 0x8300000
shl edx, 4
and esi, 0x100
or edx, esi
or ecx, eax
shl edx, 4
shr ecx, 4
or edx, ecx
lea ecx, [esp + 0x1c]
xor edx, 0x87cf062
push edx
call fcn.10069ce7
mov ecx, dword [esp + 0x1c]
mov al, byte [esp + 0xc]
mov byte [ecx], al
mov cl, byte [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
inc eax
shl cl, 3
and edx, ebx
sub cl, 0x40
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], edx
add cl, dl
mov byte [eax], cl
inc dword [esp + 0x1c]
push dword [esp + 0x34]
lea ecx, [esp + 0x20]
push dword [esp + 0x30]
push dword [esp + 0x30]
call fcn.10063564
jmp 0x10063c90
mov eax, dword [esp + 0xc]
mov edx, eax
shr edx, 1
mov ecx, eax
and ecx, dword [esp + 0x44]
and edx, 0x300000
or edx, ecx
mov ecx, esi
and ecx, 0x200000
shr edx, 1
or edx, ecx
mov ecx, dword [esp + 0x20]
and ecx, 0xfffffc00
shr edx, 0xb
shl ecx, 0x15
or edx, ecx
or esi, edx
test esi, 0x8000803e
je 0x10069812
mov ecx, esi
shl eax, 0x18
and ecx, 0xf
or eax, dword [ecx*4 + 0x1009d208]
movzx ecx, si
shl ecx, 8
xor eax, ecx
lea ecx, [esp + 0x1c]
push eax
call fcn.10069ce7
mov cl, byte [esp + 0x14]
mov eax, dword [esp + 0x18]
shl cl, 3
and eax, ebx
sub cl, 0x40
mov dword [esp + 0x18], eax
add cl, al
mov eax, dword [esp + 0x1c]
jmp 0x10069774
push 0xc5
lea ecx, [esp + 0x20]
call fcn.10069cda
mov eax, esi
lea ecx, [esp + 0x1c]
xor eax, 0xf900
shr eax, 8
xor eax, esi
push eax
call fcn.10069cda
push dword [esp + 0xc]
lea ecx, [esp + 0x20]
call fcn.10069cda
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
and eax, ebx
push eax
push 3
pop ecx
mov dword [esp + 0x1c], eax
call fcn.100634a6
pop ecx
push eax
lea ecx, [esp + 0x20]
call fcn.10069cda
jmp 0x1006977a
mov edi, eax
jmp 0x10063cd1