Function at 0x1007015f
Capabilities:
Encode data using base64
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x64
push ebx
push ebp
push esi
mov esi, dword [esp + 0x74]
mov eax, 0x1e
push edi
mov dword [esp + 0x18], 0
mov ebp, 0xffff
movzx ebx, word [esi + 0x98]
mov edx, dword [esi + 0x184]
mov edi, ebx
lea ecx, [edx + edi]
add ecx, ecx
cmp ecx, eax
cmovb ecx, eax
movzx eax, word [esi + 0xbc]
cmp eax, ecx
jbe 0x1006fffd
cmp ecx, ebp
cmova ecx, ebp
mov word [esi + 0xbc], cx
mov dword [esi + 0x288], 0
mov dword [esi + 0x290], 0
test bx, bx
je 0x10070038
lea ecx, [edi + edi*4]
mov eax, 0xcccccccd
add ecx, ecx
mov edi, 0x32
cmp ecx, edi
cmovb ecx, edi
mul edx
shr edx, 3
cmp edx, edi
cmovb edx, edi
add ecx, edx
jmp 0x10070041
imul ecx, edx, 0x16
add ecx, 0x12c
mov dword [esi + 0x28c], ecx
mov eax, dword [esi]
imul eax, dword [eax + 0x10], 0x64
cmp ecx, eax
jbe 0x10070059
mov dword [esi + 0x28c], eax
mov ecx, eax
movzx ebp, word [esi + 0xde]
mov eax, 0x1006d9b0
movzx ebx, word [esi + 0xdc]
mov edi, 0x1006d9d0
cmp bx, bp
mov dword [esi + 0x294], ecx
mov edx, 0x10073470
mov dword [esp + 0x14], 0x1006c0c0
cmove edi, eax
mov dword [esi + 0x104], 0
mov eax, 0x10073440
mov ecx, 0x1006d8c0
cmove edx, eax
mov eax, 0x1006d890
cmove ecx, eax
mov eax, 0x1006c0d0
cmove eax, dword [esp + 0x14]
mov dword [esi + 0x270], eax
mov dword [esi + 0x274], edi
mov dword [esi + 0x278], edx
mov dword [esi + 0x27c], ecx
mov eax, dword [esi + 0x188]
mov dword [esi + 0x194], eax
mov eax, dword [esi + 0x1ec]
mov dword [esi + 0x1f8], eax
mov eax, dword [esi + 0x168]
push esi
mov dword [esi + 0x164], eax
call fcn.1006beb0
movzx eax, byte [esi + 0x13c]
add esp, 4
cmp eax, 7
ja case.default.0x10070104
jmp dword [eax*4 + 0x100726a0]
mov dword [esi + 0x258], fcn.1006da70
jmp case.default.0x10070104
mov dword [esi + 0x258], 0x1006dbb0
jmp case.default.0x10070104
mov dword [esi + 0x258], 0x1006dc30
jmp case.default.0x10070104
mov dword [esi + 0x258], 0x1006da30
jmp case.default.0x10070104
mov dword [esi + 0x258], 0x1006dbf0
jmp case.default.0x10070104
mov dword [esi + 0x258], 0x1006db70
jmp case.default.0x10070104
mov dword [esi + 0x258], 0x1006daa0
jmp case.default.0x10070104
mov dword [esi + 0x258], fcn.1006db00
mov word [esi + 0x284], 0
mov edi, dword [esi + 0x170]
lea edx, [esi + 0xc]
mov ebp, dword [esi + 0x16c]
mov bl, byte [ebp + edi]
movzx eax, bl
mov byte [esi + 0x178], bl
mov dword [esp + 0x14], eax
movsx ecx, byte [eax + 0x101097a0]
mov dword [esi + 0x17c], ecx
test ecx, ecx
jns 0x100701ce
lea eax, [edi + 1]
cmp eax, dword [esi + 0x174]
jge 0x10072674
movzx eax, byte [ebp + edi + 1]
lea ebp, [esi + 0xc]
imul eax, ecx
mov edx, ebp
mov ecx, 2
sub ecx, eax
mov dword [esi + 0x17c], ecx
jmp 0x100701d1
lea ebp, [esi + 0xc]
lea eax, [ecx + edi]
cmp eax, dword [esi + 0x174]
jg 0x10072674
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 0x10]
mov bh, byte [eax + 0x101096a0]
movzx eax, bh
shr eax, 4
sub ecx, eax
mov dword [esi + 0x1c], ecx
jns 0x10070241
cmp byte [esi + 0x251], 0
jne 0x10072635
xor edx, edx
test bh, 0xf0
jbe 0x10070238
nop
mov eax, dword [esi + 0x18]
movzx ecx, dx
inc edx
mov dword [eax + ecx*4], 0
mov bl, byte [esi + 0x178]
movzx eax, bl
mov al, byte [eax + 0x101096a0]
shr al, 4
movzx eax, al
cmp dx, ax
jb 0x10070210
mov dword [esi + 0x1c], 0
xor ecx, ecx
cmp bl, 0x91
jne 0x1007025b
mov eax, dword [esi]
mov eax, dword [eax + 0x2e0]
test eax, eax
je 0x10070256
mov eax, dword [eax]
jmp 0x10070268
mov eax, dword [esi + 0x20]
jmp 0x1007026d
movzx eax, bl
movzx eax, byte [eax + 0x101096a0]
and eax, 0xf
add eax, ecx
mov dword [esi + 0x20], eax
mov edx, dword [esi + 0x14]
cmp eax, edx
jg 0x1007266b
mov ebp, dword [esi + 0x18]
lea edi, [ecx*4]
movzx eax, bl
add edi, ebp
mov byte [esi + 0x180], 1
mov dword [esi + 0xc], 0
cmp eax, 0x92
ja case.default.0x100702a0
jmp dword [eax*4 + 0x100726c0]
mov al, bl
and al, 1
movzx eax, al
shl ax, 0xe
movzx ecx, ax
mov eax, ecx
xor eax, 0x4000
movzx eax, ax
cmp bl, 4
jae 0x100702e0
mov word [esi + 0x12a], cx
mov word [esi + 0x12c], ax
mov word [esi + 0x126], cx
mov word [esi + 0x128], ax
test bl, 2
jne 0x10070411
mov word [esi + 0x12e], cx
push esi
mov word [esi + 0x130], ax
call fcn.1006beb0
jmp 0x10072528
movzx eax, word [edi]
lea ebx, [esi + 0x12a]
push ebx
push eax
movzx eax, word [edi + 4]
push eax
push esi
call fcn.1006d6b0
add esp, 0x10
test al, al
jne case.0x100702a0.33
mov eax, dword [ebx]
push esi
mov dword [esi + 0x126], eax
call fcn.1006beb0
jmp 0x10072528
lea eax, [esi + 0x12e]
push eax
movzx eax, word [edi]
push eax
movzx eax, word [edi + 4]
push eax
push esi
call fcn.1006d6b0
add esp, 0x10
test al, al
jne case.0x100702a0.33
push esi
call fcn.1006beb0
jmp 0x10072528
movsx ecx, word [edi]
movsx eax, word [edi + 4]
test ecx, ecx
jne 0x10070371
test eax, eax
je 0x100703ae
mov dword [esp + 0x44], eax
lea eax, [esp + 0x40]
push eax
mov dword [esp + 0x44], ecx
call fcn.1005e080
mov eax, dword [esp + 0x44]
add esp, 4
cdq
and edx, 3
add eax, edx
sar eax, 2
mov word [esi + 0x12a], ax
mov eax, dword [esp + 0x44]
cdq
and edx, 3
add eax, edx
sar eax, 2
mov word [esi + 0x12c], ax
mov eax, dword [esi + 0x12a]
push esi
mov dword [esi + 0x126], eax
call fcn.1006beb0
jmp 0x10072528
movsx ecx, word [edi]
movsx eax, word [edi + 4]
test ecx, ecx
jne 0x100703d4
test eax, eax
je 0x10070411
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x48]
push eax
mov dword [esp + 0x4c], ecx
call fcn.1005e080
mov eax, dword [esp + 0x4c]
add esp, 4
cdq
and edx, 3
add eax, edx
sar eax, 2
mov word [esi + 0x12e], ax
mov eax, dword [esp + 0x4c]
cdq
and edx, 3
add eax, edx
sar eax, 2
mov word [esi + 0x130], ax
push esi
call fcn.1006beb0
jmp 0x10072528
movsx eax, word [esi + 0x12a]
mov dword [edi], eax
movsx eax, word [esi + 0x12c]
mov dword [edi + 4], eax
jmp case.0x100702a0.33
movsx eax, word [esi + 0x12e]
mov dword [edi], eax
movsx eax, word [esi + 0x130]
mov dword [edi + 4], eax
jmp case.0x100702a0.33
mov eax, dword [esi + 0x12a]
push esi
mov dword [esi + 0x12e], eax
call fcn.1006beb0
jmp 0x10072528
push edi
push esi
call fcn.1006c8f0
add esp, 8
jmp case.0x100702a0.33
mov ax, word [edi]
mov word [esi + 0x120], ax
jmp case.0x100702a0.33
mov ax, word [edi]
mov word [esi + 0x122], ax
jmp case.0x100702a0.33
mov ax, word [edi]
mov word [esi + 0x124], ax
jmp case.0x100702a0.33
mov eax, dword [edi]
sub eax, 0
je 0x100704de
sub eax, 1
je 0x100704c4
cmp byte [esi + 0x251], 0
je case.0x100702a0.33
mov dword [esi + 0xc], 0x86
jmp case.0x100702a0.33
movups xmm0, xmmword [esi + 0x90]
mov eax, dword [esi + 0xb0]
movups xmmword [esi + 0x24], xmm0
movups xmm0, xmmword [esi + 0xa0]
jmp 0x100704f6
movups xmm0, xmmword [esi + 0xb4]
mov eax, dword [esi + 0xd4]
movups xmmword [esi + 0x24], xmm0
movups xmm0, xmmword [esi + 0xc4]
movups xmmword [esi + 0x34], xmm0
mov dword [esi + 0x44], eax
mov ax, word [edi]
mov word [esi + 0x15c], ax
jmp case.0x100702a0.33
mov eax, dword [edi]
sub eax, 0
je 0x1007054b
sub eax, 1
je 0x10070531
cmp byte [esi + 0x251], 0
je case.0x100702a0.33
mov dword [esi + 0xc], 0x86
jmp case.0x100702a0.33
movups xmm0, xmmword [esi + 0x90]
mov eax, dword [esi + 0xb0]
movups xmmword [esi + 0x48], xmm0
movups xmm0, xmmword [esi + 0xa0]
jmp 0x10070563
movups xmm0, xmmword [esi + 0xb4]
mov eax, dword [esi + 0xd4]
movups xmmword [esi + 0x48], xmm0
movups xmm0, xmmword [esi + 0xc4]
movups xmmword [esi + 0x58], xmm0
mov dword [esi + 0x68], eax
mov ax, word [edi]
mov word [esi + 0x15e], ax
jmp case.0x100702a0.33
mov eax, dword [edi]
sub eax, 0
je 0x100705b8
sub eax, 1
je 0x1007059e
cmp byte [esi + 0x251], 0
je case.0x100702a0.33
mov dword [esi + 0xc], 0x86
jmp case.0x100702a0.33
movups xmm0, xmmword [esi + 0x90]
mov eax, dword [esi + 0xb0]
movups xmmword [esi + 0x6c], xmm0
movups xmm0, xmmword [esi + 0xa0]
jmp 0x100705d0
movups xmm0, xmmword [esi + 0xb4]
mov eax, dword [esi + 0xd4]
movups xmmword [esi + 0x6c], xmm0
movups xmm0, xmmword [esi + 0xc4]
movups xmmword [esi + 0x7c], xmm0
mov dword [esi + 0x8c], eax
mov ax, word [edi]
mov word [esi + 0x160], ax
jmp case.0x100702a0.33
mov eax, dword [edi]
sub eax, 0
je 0x10070628
sub eax, 1
je 0x1007060e
cmp byte [esi + 0x251], 0
je case.0x100702a0.33
mov dword [esi + 0xc], 0x86
jmp case.0x100702a0.33
movups xmm0, xmmword [esi + 0x90]
mov eax, dword [esi + 0xb0]
movups xmmword [esi + 0x24], xmm0
movups xmm0, xmmword [esi + 0xa0]
jmp 0x10070640
movups xmm0, xmmword [esi + 0xb4]
mov eax, dword [esi + 0xd4]
movups xmmword [esi + 0x24], xmm0
movups xmm0, xmmword [esi + 0xc4]
movups xmmword [esi + 0x34], xmm0
mov dword [esi + 0x44], eax
movups xmm0, xmmword [esi + 0x24]
movups xmmword [esi + 0x48], xmm0
movups xmm0, xmmword [esi + 0x34]
movups xmmword [esi + 0x58], xmm0
mov dword [esi + 0x68], eax
movups xmm0, xmmword [esi + 0x24]
movups xmmword [esi + 0x6c], xmm0
movups xmm0, xmmword [esi + 0x34]
movups xmmword [esi + 0x7c], xmm0
mov dword [esi + 0x8c], eax
movzx eax, word [edi]
mov word [esi + 0x15c], ax
movzx eax, word [edi]
mov word [esi + 0x15e], ax
movzx eax, word [edi]
mov word [esi + 0x160], ax
jmp case.0x100702a0.33
mov eax, dword [edi]
test eax, eax
jns 0x100706a5
mov dword [esi + 0xc], 0x84
jmp case.0x100702a0.33
cmp eax, 0xffff
mov ecx, 0xffff
cmovg eax, ecx
mov dword [esi + 0x134], eax
jmp case.0x100702a0.33
mov dword [esi + 0x13c], 1
mov dword [esi + 0x258], 0x1006dbb0
jmp case.0x100702a0.33
mov dword [esi + 0x13c], 0
mov dword [esi + 0x258], 0x1006dbf0
jmp case.0x100702a0.33
mov eax, dword [edi]
mov dword [esi + 0x138], eax
jmp case.0x100702a0.33
mov edi, 1
push esi
call fcn.1006de60
add esp, 4
cmp al, 1
je case.0x100702a0.33
movzx eax, byte [esi + 0x178]
sub eax, 0x58
je 0x10070726
sub eax, 1
jne 0x10070727
dec edi
jmp 0x10070727
inc edi
test edi, edi
jne 0x10070701
jmp case.0x100702a0.33
mov edx, dword [edi]
test edx, edx
jne 0x1007073e
test ecx, ecx
je 0x10070699
add edx, dword [esi + 0x170]
mov dword [esi + 0x170], edx
js 0x10070699
mov ecx, dword [esi + 0x1c0]
test ecx, ecx
jle 0x1007076f
mov eax, dword [esi + 0x1c8]
add ecx, ecx
mov eax, dword [eax + ecx*8 - 4]
cmp edx, dword [eax + 8]
jg 0x10070699
mov byte [esi + 0x180], 0
cmp dword [edi], 0
jge case.0x100702a0.33
inc dword [esi + 0x290]
mov eax, dword [esi + 0x290]
cmp eax, dword [esi + 0x294]
jbe case.0x100702a0.33
mov dword [esi + 0xc], 0x8b
jmp case.0x100702a0.33
mov eax, dword [edi]
mov dword [esi + 0x144], eax
jmp case.0x100702a0.33
mov eax, dword [edi]
mov dword [esi + 0x148], eax
jmp case.0x100702a0.33
mov eax, dword [esi + 0x108]
mov dword [esp + 0x1c], eax
mov eax, dword [edi]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
mov dword [esi + 0x14c], eax
jmp case.0x100702a0.33
mov eax, dword [edi]
mov dword [edi + 4], eax
jmp case.0x100702a0.33
mov dword [esi + 0x20], 0
jmp case.0x100702a0.33
mov ecx, dword [edi]
mov eax, dword [edi + 4]
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp case.0x100702a0.33
mov eax, dword [esi + 0x10]
mov dword [edi], eax
jmp case.0x100702a0.33
mov eax, dword [edi]
test eax, eax
jle 0x10070848
cmp eax, ecx
jg 0x10070848
sub ecx, eax
mov eax, dword [ebp + ecx*4]
mov dword [edi], eax
jmp case.0x100702a0.33
cmp byte [esi + 0x251], 0
je 0x10070858
mov dword [esi + 0xc], 0x86
xor eax, eax
mov dword [edi], eax
jmp case.0x100702a0.33
mov eax, dword [edi]
test eax, eax
jle 0x100704ab
cmp eax, ecx
jg 0x100704ab
sub ecx, eax
lea eax, [eax*4 - 4]
push eax
lea ecx, [ecx*4]
add ecx, ebp
mov edi, dword [ecx]
lea eax, [ecx + 4]
push eax
push ecx
call fcn.100d2160
mov ecx, dword [esi + 0x1c]
add esp, 0xc
mov eax, dword [esi + 0x18]
mov dword [eax + ecx*4 - 4], edi
jmp case.0x100702a0.33
movzx ebp, word [edi]
movzx ebx, word [edi + 4]
cmp bp, word [esi + 0x50]
jae 0x100704ab
cmp bx, word [esi + 0x2c]
jae 0x100704ab
mov eax, dword [esi + 0x58]
mov ecx, ebp
lea edx, [eax + ecx*8]
mov eax, dword [esi + 0x34]
mov ecx, ebx
lea ecx, [eax + ecx*8]
mov eax, dword [ecx + 4]
sub eax, dword [edx + 4]
push eax
mov eax, dword [ecx]
sub eax, dword [edx]
push eax
mov eax, dword [esi + 0x25c]
push esi
call eax
cdq
sub eax, edx
mov edi, eax
lea eax, [esi + 0x48]
sar edi, 1
push edi
push ebp
push eax
mov eax, dword [esi + 0x268]
push esi
call eax
neg edi
lea eax, [esi + 0x24]
push edi
push ebx
push eax
mov eax, dword [esi + 0x268]
push esi
call eax
add esp, 0x2c
jmp case.0x100702a0.33
movzx eax, word [edi]
cmp ax, word [esi + 0x2c]
jb 0x10070935
cmp byte [esi + 0x251], 0
je case.0x100702a0.33
mov dword [esi + 0xc], 0x86
jmp case.0x100702a0.33
cmp word [esi + 0x12e], 0
mov ecx, eax
mov edx, dword [esi + 0x3c]
sete bl
add edx, ecx
lea ebx, [ebx*8 + 0xf7]
mov al, bl
and al, 0xef
cmp word [esi + 0x130], 0
movzx ecx, al
movzx eax, bl
cmove ecx, eax
and byte [edx], cl
jmp case.0x100702a0.33
mov ebp, dword [esi + 0x1b8]
mov edx, dword [edi + 4]
inc ebp
cmp edx, ebp
jae 0x100704b8
mov ebx, dword [esi + 0x1a8]
test ebx, ebx
je 0x1007098e
lea eax, [edx + edx*2]
lea ecx, [ebx + eax*8]
jmp 0x10070990
xor ecx, ecx
mov eax, dword [esi + 0x1a0]
cmp ebp, eax
jne 0x1007099f
cmp dword [ecx + 0xc], edx
je 0x100709c7
mov ecx, ebx
test ecx, ecx
je 0x100704b8
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
cmp ecx, eax
jae 0x100709c1
cmp dword [ecx + 0xc], edx
je 0x100709bf
add ecx, 0x18
cmp ecx, eax
jb 0x100709b3
cmp ecx, eax
je 0x100704b8
cmp byte [ecx + 0x10], 0
je 0x100704b8
mov edx, dword [esi + 0x1c0]
cmp edx, dword [esi + 0x1c4]
jl 0x100709eb
mov dword [esi + 0xc], 0x82
jmp case.0x100702a0.33
cmp dword [edi], 0
jle case.0x100702a0.33
mov eax, dword [esi + 0x168]
shl edx, 4
add edx, dword [esi + 0x1c8]
mov dword [edx], eax
mov eax, dword [esi + 0x170]
inc eax
mov dword [edx + 4], eax
mov eax, dword [edi]
mov dword [edx + 8], eax
mov dword [edx + 0xc], ecx
inc dword [esi + 0x1c0]
push dword [ecx + 4]
push dword [ecx]
push esi
call fcn.1006c540
mov byte [esi + 0x180], 0
add esp, 0xc
mov eax, dword [edi]
add dword [esi + 0x288], eax
mov eax, dword [esi + 0x288]
cmp eax, dword [esi + 0x28c]
jbe case.0x100702a0.33
mov dword [esi + 0xc], 0x8b
jmp case.0x100702a0.33
mov ebx, dword [esi + 0x1b8]
mov edx, dword [edi]
inc ebx
cmp edx, ebx
jae 0x100704b8
mov edi, dword [esi + 0x1a8]
test edi, edi
je 0x100704b8
lea eax, [edx + edx*2]
lea ecx, [edi + eax*8]
mov eax, dword [esi + 0x1a0]
cmp ebx, eax
jne 0x10070a8c
cmp dword [ecx + 0xc], edx
je 0x10070aac
mov ecx, edi
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
cmp ecx, eax
jae 0x10070aa6
cmp dword [ecx + 0xc], edx
je 0x10070aa4
add ecx, 0x18
cmp ecx, eax
jb 0x10070a98
cmp ecx, eax
je 0x100704b8
cmp byte [ecx + 0x10], 0
je 0x100704b8
mov edx, dword [esi + 0x1c0]
cmp edx, dword [esi + 0x1c4]
jl 0x10070ad0
mov dword [esi + 0xc], 0x82
jmp case.0x100702a0.33
mov eax, dword [esi + 0x168]
shl edx, 4
add edx, dword [esi + 0x1c8]
mov dword [edx], eax
mov eax, dword [esi + 0x170]
inc eax
mov dword [edx + 8], 1
mov dword [edx + 4], eax
mov dword [edx + 0xc], ecx
inc dword [esi + 0x1c0]
push dword [ecx + 4]
push dword [ecx]
push esi
call fcn.1006c540
add esp, 0xc
mov byte [esi + 0x180], 0
jmp case.0x100702a0.33
cmp dword [esi + 0x164], 3
jne 0x10070b2a
mov dword [esi + 0xc], 0x9c
jmp case.0x100702a0.33
mov ebx, dword [esi + 0x1a8]
test ebx, ebx
je 0x10070b42
mov eax, dword [esi + 0x1a0]
lea eax, [eax + eax*2]
lea eax, [ebx + eax*8]
jmp 0x10070b44
xor eax, eax
mov ecx, dword [edi]
cmp ebx, eax
jae 0x10070b5e
nop word [eax + eax]
cmp dword [ebx + 0xc], ecx
je 0x10070b5c
add ebx, 0x18
cmp ebx, eax
jb 0x10070b50
cmp ebx, eax
jne 0x10070b75
mov eax, dword [esi + 0x1a0]
cmp eax, dword [esi + 0x1a4]
jae 0x10070b7d
inc eax
mov dword [esi + 0x1a0], eax
cmp ecx, 0xffff
jbe 0x10070b89
mov dword [esi + 0xc], 0x8c
jmp case.0x100702a0.33
mov eax, dword [esi + 0x168]
mov dword [ebx], eax
movzx edx, cx
mov dword [ebx + 0xc], edx
mov eax, dword [esi + 0x170]
inc eax
mov word [ebx + 0x10], 1
mov dword [ebx + 4], eax
mov dword [ebx + 0x14], 0
cmp ecx, dword [esi + 0x1b8]
jbe 0x10070bbc
mov dword [esi + 0x1b8], edx
push esi
call fcn.1006de60
add esp, 4
test al, al
jne case.0x100702a0.33
nop dword [eax]
movzx eax, byte [esi + 0x178]
sub eax, 0x2c
je 0x10070c06
sub eax, 1
je 0x10070bf8
sub eax, 0x5c
je 0x10070c06
push esi
call fcn.1006de60
add esp, 4
test al, al
je 0x10070bd0
jmp case.0x100702a0.33
mov eax, dword [esi + 0x170]
mov dword [ebx + 8], eax
jmp case.0x100702a0.33
mov dword [esi + 0xc], 0x89
jmp case.0x100702a0.33
mov ecx, dword [esi + 0x1c0]
test ecx, ecx
jg 0x10070c28
mov dword [esi + 0xc], 0x88
jmp case.0x100702a0.33
dec ecx
mov dword [esi + 0x1c0], ecx
shl ecx, 4
add ecx, dword [esi + 0x1c8]
dec dword [ecx + 8]
mov byte [esi + 0x180], 0
cmp dword [ecx + 8], 0
jle 0x10070c5f
inc dword [esi + 0x1c0]
mov eax, dword [ecx + 0xc]
mov eax, dword [eax + 4]
mov dword [esi + 0x170], eax
jmp case.0x100702a0.33
push dword [ecx + 4]
push dword [ecx]
push esi
call fcn.1006c540
add esp, 0xc
jmp case.0x100702a0.33
movzx edi, word [edi]
cmp di, word [esi + 0x2c]
jb 0x10070c94
cmp byte [esi + 0x251], 0
je case.0x100702a0.33
mov dword [esi + 0xc], 0x86
jmp case.0x100702a0.33
test bl, 1
je 0x10070cd9
mov eax, dword [esi + 0x34]
mov ecx, edi
push dword [eax + ecx*8 + 4]
push dword [eax + ecx*8]
mov eax, dword [esi + 0x25c]
push esi
call eax
add esp, 0xc
mov ebx, eax
mov eax, dword [esi + 0x258]
push 3
push ebx
push esi
cmp eax, fcn.1006db00
jne 0x10070cd0
call fcn.1006db00
add esp, 0xc
sub eax, ebx
jmp 0x10070cdb
call eax
add esp, 0xc
sub eax, ebx
jmp 0x10070cdb
xor eax, eax
push eax
push edi
lea eax, [esi + 0x24]
push eax
mov eax, dword [esi + 0x268]
push esi
call eax
add esp, 0x10
mov word [esi + 0x120], di
mov word [esi + 0x122], di
jmp case.0x100702a0.33
push esi
call fcn.1006cb40
jmp 0x10072528
push esi
call fcn.1006d350
jmp 0x10072528
push edi
push esi
call fcn.1006d1c0
add esp, 8
jmp case.0x100702a0.33
cmp dword [edi], 2
jb 0x10070d43
cmp byte [esi + 0x251], 0
je case.0x100702a0.33
mov dword [esi + 0xc], 0x86
jmp case.0x100702a0.33
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x30]
push eax
push esi
call fcn.1006bfe0
add esp, 0x14
test al, al
jne case.0x100702a0.33
movzx eax, word [esi + 0x160]
test ax, ax
jne 0x10070d7a
movzx ebx, word [esi + 0x74]
jmp 0x10070d9f
cmp eax, 1
jne 0x10070d9d
movzx eax, word [esi + 0x76]
test ax, ax
jle 0x10070d9d
movsx ecx, ax
mov eax, dword [esi + 0x88]
mov ax, word [eax + ecx*2 - 2]
inc ax
movzx ebx, ax
jmp 0x10070d9f
xor ebx, ebx
xor eax, eax
xor edi, edi
cmp ax, bx
jae case.0x100702a0.33
mov bp, word [esp + 0x10]
xor edx, edx
mov ecx, dword [esi + 0x7c]
cmp dword [esp + 0x60], ecx
jne 0x10070dc1
cmp bp, di
je 0x10070e21
cmp word [esi + 0x12e], 0
je 0x10070de9
mov eax, dword [esi]
mov eax, dword [eax + 0x60]
cmp dword [eax + 0x40], 0x28
jne 0x10070ddf
cmp byte [esi + 0x283], 0
jne 0x10070de6
mov eax, dword [esp + 0x24]
add dword [edx + ecx], eax
mov ecx, dword [esi + 0x7c]
cmp word [esi + 0x130], 0
je 0x10070e21
mov eax, dword [esi]
mov eax, dword [eax + 0x60]
cmp dword [eax + 0x40], 0x28
jne 0x10070e19
cmp byte [esi + 0x283], 0
je 0x10070e19
cmp byte [esi + 0x284], 0
je 0x10070e19
cmp byte [esi + 0x285], 0
jne 0x10070e21
mov eax, dword [esp + 0x28]
add dword [edx + ecx + 4], eax
inc edi
add edx, 8
cmp di, bx
jb 0x10070db3
jmp case.0x100702a0.33
push edi
push esi
call fcn.1006d480
add esp, 8
jmp case.0x100702a0.33
push esi
call fcn.1006c5b0
jmp 0x10072528
movzx ebx, word [edi]
mov ecx, ebx
cmp bx, word [esi + 0x50]
jae 0x100704ab
movzx eax, word [esi + 0x120]
cmp ax, word [esi + 0x2c]
jae 0x100704ab
cmp word [esi + 0x15e], 0
mov ebp, ecx
jne 0x10070eb3
mov edx, eax
mov eax, dword [esi + 0x30]
mov ecx, dword [eax + edx*8]
mov edx, dword [eax + edx*8 + 4]
mov eax, dword [esi + 0x54]
mov dword [eax + ebp*8], ecx
mov dword [eax + ebp*8 + 4], edx
lea eax, [esi + 0x48]
push dword [edi + 4]
push ebx
push eax
mov eax, dword [esi + 0x26c]
push esi
call eax
mov eax, dword [esi + 0x54]
add esp, 0x10
mov ecx, dword [eax + ebp*8]
mov edx, dword [eax + ebp*8 + 4]
mov eax, dword [esi + 0x58]
mov dword [eax + ebp*8], ecx
mov dword [eax + ebp*8 + 4], edx
movzx ecx, word [esi + 0x120]
mov eax, dword [esi + 0x34]
lea edx, [eax + ecx*8]
mov eax, dword [esi + 0x58]
lea ecx, [eax + ebp*8]
mov eax, dword [ecx + 4]
sub eax, dword [edx + 4]
push eax
mov eax, dword [ecx]
sub eax, dword [edx]
push eax
mov eax, dword [esi + 0x25c]
push esi
call eax
mov ecx, dword [edi + 4]
sub ecx, eax
lea eax, [esi + 0x48]
push ecx
push ebx
push eax
mov eax, dword [esi + 0x268]
push esi
call eax
mov ax, word [esi + 0x120]
add esp, 0x1c
test byte [esi + 0x178], 1
mov word [esi + 0x122], ax
mov word [esi + 0x124], bx
je case.0x100702a0.33
mov word [esi + 0x120], bx
jmp case.0x100702a0.33
mov ecx, dword [esi + 0x134]
cmp dword [esi + 0x10], ecx
jl 0x10070fb5
mov ax, word [esi + 0x120]
cmp ax, word [esi + 0x2c]
jae 0x10070fb5
test ecx, ecx
jle 0x10070fc5
dec dword [esi + 0x1c]
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x18]
movzx edi, word [eax + ecx*4]
cmp di, word [esi + 0x50]
jb 0x10070f66
cmp byte [esi + 0x251], 0
jne 0x100704b8
jmp 0x10070fa4
movzx ecx, word [esi + 0x120]
mov eax, dword [esi + 0x34]
lea edx, [eax + ecx*8]
mov eax, dword [esi + 0x58]
mov ecx, edi
lea ecx, [eax + ecx*8]
mov eax, dword [ecx + 4]
sub eax, dword [edx + 4]
push eax
mov eax, dword [ecx]
sub eax, dword [edx]
push eax
mov eax, dword [esi + 0x25c]
push esi
call eax
neg eax
push eax
push edi
lea eax, [esi + 0x48]
push eax
mov eax, dword [esi + 0x268]
push esi
call eax
add esp, 0x1c
dec dword [esi + 0x134]
cmp dword [esi + 0x134], 0
jg 0x10070f44
jmp 0x10070fc5
cmp byte [esi + 0x251], 0
je 0x10070fc5
mov dword [esi + 0xc], 0x86
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x134], 1
mov dword [esi + 0x20], eax
jmp case.0x100702a0.33
mov dword [esi + 0x13c], 2
mov dword [esi + 0x258], 0x1006db70
jmp case.0x100702a0.33
movzx ebp, word [edi]
mov ebx, ebp
mov ecx, dword [edi + 4]
cmp bp, word [esi + 0x2c]
jae 0x100710f7
cmp ecx, dword [esi + 0x184]
jae 0x100710f7
mov eax, dword [esi + 0x274]
cmp eax, 0x1006d9b0
jne 0x10071029
mov eax, dword [esi + 0x188]
mov edi, dword [eax + ecx*4]
jmp 0x10071032
push ecx
push esi
call eax
add esp, 8
mov edi, eax
cmp word [esi + 0x15c], 0
jne 0x1007107c
movsx eax, word [esi + 0x12e]
push eax
push edi
call fcn.1006f620
mov ecx, dword [esi + 0x30]
mov dword [ecx + ebx*8], eax
movsx eax, word [esi + 0x130]
push eax
push edi
call fcn.1006f620
mov ecx, dword [esi + 0x30]
add esp, 0x10
mov dword [ecx + ebx*8 + 4], eax
mov eax, dword [esi + 0x30]
mov ecx, dword [eax + ebx*8]
mov edx, dword [eax + ebx*8 + 4]
mov eax, dword [esi + 0x34]
mov dword [eax + ebx*8], ecx
mov dword [eax + ebx*8 + 4], edx
mov eax, dword [esi + 0x34]
push dword [eax + ebx*8 + 4]
push dword [eax + ebx*8]
mov eax, dword [esi + 0x25c]
push esi
call eax
add esp, 0xc
mov ebx, eax
test byte [esi + 0x178], 1
je 0x100710d0
mov eax, dword [esi + 0x258]
mov ecx, edi
mov edx, ebx
sub edx, edi
sub ecx, ebx
push 3
cmovns edx, ecx
cmp edx, dword [esi + 0x144]
cmovg edi, ebx
push edi
push esi
cmp eax, fcn.1006db00
jne 0x100710c9
call fcn.1006db00
jmp 0x100710cb
call eax
mov edi, eax
add esp, 0xc
sub edi, ebx
lea eax, [esi + 0x24]
push edi
push ebp
push eax
mov eax, dword [esi + 0x268]
push esi
call eax
add esp, 0x10
mov word [esi + 0x120], bp
mov word [esi + 0x122], bp
jmp case.0x100702a0.33
cmp byte [esi + 0x251], 0
je 0x10071107
mov dword [esi + 0xc], 0x86
mov word [esi + 0x120], bp
mov word [esi + 0x122], bp
jmp case.0x100702a0.33
mov eax, dword [esi + 0x16c]
mov ecx, dword [esi + 0x170]
sub edx, dword [esi + 0x10]
inc edx
movzx ebp, byte [ecx + eax + 1]
mov eax, ebp
mov dword [esp + 0x1c], eax
cmp eax, edx
jb 0x10071145
mov dword [esi + 0xc], 0x82
jmp case.0x100702a0.33
mov ebx, 1
mov ecx, ebx
cmp cx, bp
ja 0x10071175
mov ecx, dword [esi + 0x170]
mov eax, dword [esi + 0x16c]
movzx edx, bx
inc ebx
add ecx, edx
movzx eax, byte [ecx + eax + 1]
mov dword [edi + edx*4 - 4], eax
cmp bx, bp
jbe 0x10071151
mov eax, dword [esp + 0x1c]
add dword [esi + 0x20], eax
jmp case.0x100702a0.33
mov ecx, dword [esi + 0x170]
mov eax, dword [esi + 0x16c]
sub edx, dword [esi + 0x10]
inc edx
mov bl, byte [eax + ecx + 1]
movzx ebp, bl
mov dword [esp + 0x1c], ebp
cmp ebp, edx
jb 0x100711a8
mov dword [esi + 0xc], 0x82
jmp case.0x100702a0.33
lea eax, [ecx + 2]
mov dword [esi + 0x170], eax
test bl, bl
je 0x100711f9
mov ebx, ebp
mov ebp, 0x100
nop dword [eax]
add dword [esi + 0x170], 2
lea edi, [edi + 4]
mov edx, dword [esi + 0x170]
add edx, dword [esi + 0x16c]
movsx eax, bp
movzx ecx, byte [edx - 2]
movsx ecx, cx
imul ecx, eax
movzx eax, byte [edx - 1]
add cx, ax
movsx eax, cx
mov dword [edi - 4], eax
sub ebx, 1
jne 0x100711c0
mov ebp, dword [esp + 0x1c]
add dword [esi + 0x20], ebp
mov byte [esi + 0x180], 0
jmp case.0x100702a0.33
movzx ecx, word [esi + 0x1e8]
mov ebp, dword [edi]
cmp ebp, ecx
jb 0x1007122e
cmp byte [esi + 0x251], 0
je case.0x100702a0.33
mov dword [esi + 0xc], 0x86
jmp case.0x100702a0.33
cmp dword [esi + 0x164], 3
jne 0x1007129f
mov eax, dword [esi + 0x1ec]
cmp eax, dword [esi + 0x1f8]
jne 0x1007129f
movzx eax, word [esi + 0x1f0]
lea ebx, [esi + 0x1f4]
push ecx
push ebx
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x1c]
push 4
push eax
push dword [esi + 8]
call fcn.100733f0
mov ecx, dword [esp + 0x28]
add esp, 0x14
mov dword [esi + 0xc], eax
mov word [esi + 0x1f0], cx
test eax, eax
jne case.0x100702a0.33
movzx eax, cx
shl eax, 2
push eax
push dword [esi + 0x1ec]
push dword [ebx]
call fcn.100d2160
mov eax, dword [ebx]
add esp, 0xc
mov dword [esi + 0x1ec], eax
mov ecx, dword [esi + 0x1ec]
mov eax, dword [edi + 4]
mov dword [ecx + ebp*4], eax
jmp case.0x100702a0.33
movzx eax, word [esi + 0x1e8]
mov ecx, dword [edi]
cmp ecx, eax
jb 0x100712dd
cmp byte [esi + 0x251], 0
je 0x100712d2
mov dword [esi + 0xc], 0x86
jmp case.0x100702a0.33
mov dword [edi], 0
jmp case.0x100702a0.33
mov eax, dword [esi + 0x1ec]
mov eax, dword [eax + ecx*4]
mov dword [edi], eax
jmp case.0x100702a0.33
mov ebx, dword [edi]
cmp ebx, dword [esi + 0x184]
jb 0x10071310
cmp byte [esi + 0x251], 0
je case.0x100702a0.33
mov dword [esi + 0xc], 0x86
jmp case.0x100702a0.33
mov eax, dword [esi + 0x278]
mov edi, dword [edi + 4]
cmp eax, 0x10073440
jne 0x10071341
push esi
call fcn.1006d7e0
add esp, 4
cmp dword [esi + 0xc], 0
jne case.0x100702a0.33
mov eax, dword [esi + 0x188]
mov dword [eax + ebx*4], edi
jmp case.0x100702a0.33
push edi
push ebx
push esi
call eax
add esp, 0xc
jmp case.0x100702a0.33
mov ecx, dword [edi]
cmp ecx, dword [esi + 0x184]
jb 0x10071371
cmp byte [esi + 0x251], 0
je 0x100712d2
mov dword [esi + 0xc], 0x86
jmp case.0x100702a0.33
mov eax, dword [esi + 0x274]
cmp eax, 0x1006d9b0
jne 0x1007138e
mov eax, dword [esi + 0x188]
mov eax, dword [eax + ecx*4]
mov dword [edi], eax
jmp case.0x100702a0.33
push ecx
push esi
call eax
add esp, 8
mov dword [edi], eax
jmp case.0x100702a0.33
movzx eax, word [esi + 0x74]
mov ecx, dword [edi]
cmp ecx, eax
jb 0x100713bf
cmp byte [esi + 0x251], 0
je 0x100713b6
mov dword [esi + 0xc], 0x86
xor eax, eax
mov dword [edi], eax
jmp case.0x100702a0.33
test bl, 1
je 0x100713e1
mov eax, dword [esi + 0x78]
push dword [eax + ecx*8 + 4]
push dword [eax + ecx*8]
mov eax, dword [esi + 0x260]
push esi
call eax
add esp, 0xc
mov dword [edi], eax
jmp case.0x100702a0.33
mov eax, dword [esi + 0x7c]
push dword [eax + ecx*8 + 4]
push dword [eax + ecx*8]
mov eax, dword [esi + 0x25c]
push esi
call eax
add esp, 0xc
mov dword [edi], eax
jmp case.0x100702a0.33
movzx ebp, word [edi]
cmp bp, word [esi + 0x74]
jb 0x10071420
cmp byte [esi + 0x251], 0
je case.0x100702a0.33
mov dword [esi + 0xc], 0x86
jmp case.0x100702a0.33
mov eax, dword [esi + 0x7c]
mov ebx, ebp
shl ebx, 3
push dword [ebx + eax + 4]
push dword [ebx + eax]
mov eax, dword [esi + 0x25c]
push esi
call eax
mov ecx, dword [edi + 4]
sub ecx, eax
lea eax, [esi + 0x6c]
push ecx
push ebp
push eax
mov eax, dword [esi + 0x268]
push esi
call eax
add esp, 0x1c
cmp word [esi + 0x160], 0
jne case.0x100702a0.33
mov eax, dword [esi + 0x7c]
mov ecx, dword [ebx + eax]
mov edx, dword [ebx + eax + 4]
mov eax, dword [esi + 0x78]
mov dword [ebx + eax], ecx
mov dword [ebx + eax + 4], edx
jmp case.0x100702a0.33
movzx eax, word [edi]
movzx ebp, word [edi + 4]
cmp ax, word [esi + 0x2c]
jae 0x10070848
cmp bp, word [esi + 0x50]
jae 0x10070848
test bl, 1
je 0x100714c6
mov eax, dword [esi + 0x58]
mov ecx, ebp
lea edx, [eax + ecx*8]
mov eax, dword [esi + 0x34]
movzx ecx, word [edi]
lea ecx, [eax + ecx*8]
mov eax, dword [ecx + 4]
sub eax, dword [edx + 4]
push eax
mov eax, dword [ecx]
sub eax, dword [edx]
push eax
mov eax, dword [esi + 0x25c]
push esi
call eax
add esp, 0xc
mov dword [edi], eax
jmp case.0x100702a0.33
cmp word [esi + 0x15c], 0
je 0x100715e0
cmp word [esi + 0x15e], 0
je 0x100715e0
mov ecx, eax
mov eax, dword [esi + 0x38]
lea ebx, [eax + ecx*8]
mov eax, dword [esi + 0x5c]
mov ecx, ebp
lea ebp, [eax + ecx*8]
mov eax, dword [esi + 0xe0]
cmp eax, dword [esi + 0xe4]
jne 0x10071558
mov eax, dword [ebx + 4]
sub eax, dword [ebp + 4]
push eax
mov eax, dword [ebx]
sub eax, dword [ebp]
push eax
mov eax, dword [esi + 0x260]
push esi
call eax
mov dword [esp + 0x28], eax
add esp, 0xc
mov eax, dword [esi + 0xe0]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
mov dword [edi], eax
jmp case.0x100702a0.33
mov dword [esp + 0x14], eax
mov eax, dword [ebx]
sub eax, dword [ebp]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov dword [esp + 0x34], eax
mov eax, dword [esi + 0xe4]
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 4]
sub eax, dword [ebp + 4]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov dword [esp + 0x30], eax
push dword [esp + 0x30]
mov eax, dword [esi + 0x260]
push dword [esp + 0x38]
push esi
call eax
add esp, 0xc
mov dword [edi], eax
jmp case.0x100702a0.33
mov ecx, eax
mov eax, dword [esi + 0x30]
lea edx, [eax + ecx*8]
mov eax, dword [esi + 0x54]
mov ecx, ebp
lea ecx, [eax + ecx*8]
mov eax, dword [edx + 4]
sub eax, dword [ecx + 4]
push eax
mov eax, dword [edx]
sub eax, dword [ecx]
push eax
mov eax, dword [esi + 0x260]
push esi
call eax
add esp, 0xc
mov dword [edi], eax
jmp case.0x100702a0.33
mov eax, dword [esi + 0x270]
cmp eax, 0x1006c0c0
jne 0x1007162a
movzx eax, word [esi + 0x100]
mov dword [edi], eax
jmp case.0x100702a0.33
push esi
call eax
add esp, 4
mov dword [edi], eax
jmp case.0x100702a0.33
mov eax, dword [esi]
mov eax, dword [eax + 0x60]
cmp dword [eax + 0x40], 0x23
jne 0x1007166a
mov eax, dword [esi + 0x270]
cmp eax, 0x1006c0c0
jne 0x1007165d
movzx eax, word [esi + 0x100]
mov dword [edi], eax
jmp case.0x100702a0.33
push esi
call eax
add esp, 4
mov dword [edi], eax
jmp case.0x100702a0.33
mov eax, dword [esi + 0xd8]
mov dword [edi], eax
jmp case.0x100702a0.33
mov byte [esi + 0x140], 1
jmp case.0x100702a0.33
mov byte [esi + 0x140], 0
jmp case.0x100702a0.33
mov dword [esi + 0xc], 0x87
jmp case.0x100702a0.33
mov eax, dword [edi]
xor ecx, ecx
cmp eax, dword [edi + 4]
setl cl
mov dword [edi], ecx
jmp case.0x100702a0.33
mov eax, dword [edi]
xor ecx, ecx
cmp eax, dword [edi + 4]
setle cl
mov dword [edi], ecx
jmp case.0x100702a0.33
mov eax, dword [edi]
xor ecx, ecx
cmp eax, dword [edi + 4]
setg cl
mov dword [edi], ecx
jmp case.0x100702a0.33
mov eax, dword [edi]
xor ecx, ecx
cmp eax, dword [edi + 4]
setge cl
mov dword [edi], ecx
jmp case.0x100702a0.33
mov eax, dword [edi]
xor ecx, ecx
cmp eax, dword [edi + 4]
sete cl
mov dword [edi], ecx
jmp case.0x100702a0.33
mov eax, dword [edi]
xor ecx, ecx
cmp eax, dword [edi + 4]
setne cl
mov dword [edi], ecx
jmp case.0x100702a0.33
mov ecx, dword [esi + 0x258]
mov eax, dword [edi]
cmp ecx, 0x1006db70
jne 0x10071760
mov edx, dword [esi + 0x118]
test eax, eax
js 0x1007173d
add edx, 0x10
add eax, edx
mov edx, 0
and eax, 0xffffffe0
cmovge edx, eax
xor ecx, ecx
and dl, 0x7f
cmp dl, 0x40
sete cl
mov dword [edi], ecx
jmp case.0x100702a0.33
sub edx, eax
xor eax, eax
add edx, 0x10
and edx, 0xffffffe0
neg edx
test edx, edx
cmovg edx, eax
xor ecx, ecx
and dl, 0x7f
cmp dl, 0x40
sete cl
mov dword [edi], ecx
jmp case.0x100702a0.33
push 3
push eax
push esi
call ecx
mov edx, eax
xor ecx, ecx
and dl, 0x7f
add esp, 0xc
cmp dl, 0x40
sete cl
mov dword [edi], ecx
jmp case.0x100702a0.33
mov ecx, dword [esi + 0x258]
mov eax, dword [edi]
cmp ecx, 0x1006db70
jne 0x100717d7
mov ecx, dword [esi + 0x118]
test eax, eax
js 0x100717b9
add ecx, 0x10
add eax, ecx
mov ecx, 0
and eax, 0xffffffe0
cmovge ecx, eax
mov eax, 0
test cl, 0x7f
sete al
mov dword [edi], eax
jmp case.0x100702a0.33
sub ecx, eax
xor eax, eax
add ecx, 0x10
and ecx, 0xffffffe0
neg ecx
test ecx, ecx
cmovg ecx, eax
test cl, 0x7f
sete al
mov dword [edi], eax
jmp case.0x100702a0.33
push 3
push eax
push esi
call ecx
mov ecx, eax
add esp, 0xc
test cl, 0x7f
mov eax, 0
sete al
mov dword [edi], eax
jmp case.0x100702a0.33
cmp dword [edi], 0
jne case.0x100702a0.33
mov edi, 1
xor bl, bl
push esi
call fcn.1006de60
add esp, 4
cmp al, 1
je case.0x100702a0.33
movzx eax, byte [esi + 0x178]
sub eax, 0x1b
je 0x10071833
sub eax, 0x3d
je 0x10071830
sub eax, 1
jne 0x10071839
sub edi, 1
jmp 0x10071836
inc edi
jmp 0x10071839
cmp edi, 1
sete bl
test bl, bl
je 0x10071804
jmp case.0x100702a0.33
cmp dword [edi], 0
je 0x10070858
cmp dword [edi + 4], 0
je 0x10070858
mov eax, 1
mov dword [edi], eax
jmp case.0x100702a0.33
cmp dword [edi], 0
jne 0x10071875
cmp dword [edi + 4], 0
jne 0x10071875
xor eax, eax
mov dword [edi], eax
jmp case.0x100702a0.33
mov eax, 1
mov dword [edi], eax
jmp case.0x100702a0.33
xor eax, eax
cmp dword [edi], eax
sete al
mov dword [edi], eax
jmp case.0x100702a0.33
mov eax, dword [esi + 0x270]
cmp eax, 0x1006c0c0
jne 0x100718a9
movzx edx, word [esi + 0x100]
mov dword [esp + 0x14], edx
jmp 0x100718b5
push esi
call eax
add esp, 4
mov dword [esp + 0x14], eax
mov edx, eax
mov ecx, dword [edi]
mov ebp, 1
mov dword [esp + 0x1c], ecx
cmp ecx, ebp
jb 0x100719df
nop dword [eax + eax]
mov ecx, dword [esi + 0x1c]
cmp ecx, 2
jl 0x100719c8
mov eax, dword [esi + 0x18]
add ecx, 0xfffffffe
mov dword [esi + 0x1c], ecx
movzx ebx, word [eax + ecx*4 + 4]
mov edi, dword [eax + ecx*4]
cmp bx, word [esi + 0x2c]
jae 0x1007199e
movzx eax, byte [esi + 0x178]
mov ecx, edi
shr ecx, 4
and ecx, 0xf
sub eax, 0x71
je 0x10071915
sub eax, 1
jne 0x10071918
add ecx, 0x20
jmp 0x10071918
add ecx, 0x10
movzx eax, word [esi + 0x150]
add eax, ecx
cmp edx, eax
jne 0x100719ae
movzx eax, word [esi + 0x152]
and edi, 0xf
mov ecx, 6
sub ecx, eax
mov eax, dword [esi]
cmp edi, 8
sbb edx, edx
mov eax, dword [eax + 0x60]
add edx, 0xfffffff9
add edx, edi
shl edx, cl
cmp dword [eax + 0x40], 0x28
jne 0x1007198a
cmp byte [esi + 0x283], 0
je 0x1007198a
cmp byte [esi + 0x284], 0
je 0x1007196c
cmp byte [esi + 0x285], 0
jne 0x100719ae
cmp byte [esi + 0x250], 0
je 0x1007197f
cmp word [esi + 0x130], 0
jne 0x1007198a
mov eax, dword [esi + 0x3c]
mov ecx, ebx
test byte [ecx + eax], 0x10
je 0x100719ae
push edx
push ebx
lea eax, [esi + 0x24]
push eax
mov eax, dword [esi + 0x268]
push esi
call eax
add esp, 0x10
jmp 0x100719ae
cmp byte [esi + 0x251], 0
je 0x100719ae
mov dword [esi + 0xc], 0x86
mov edx, dword [esp + 0x14]
inc ebp
cmp ebp, dword [esp + 0x1c]
jbe 0x100718d0
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x20], eax
jmp case.0x100702a0.33
cmp byte [esi + 0x251], 0
je 0x100719d8
mov dword [esi + 0xc], 0x81
mov dword [esi + 0x1c], 0
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x20], eax
jmp case.0x100702a0.33
mov ax, word [edi]
mov word [esi + 0x150], ax
jmp case.0x100702a0.33
mov eax, dword [edi]
cmp eax, 6
jbe 0x10071a0c
mov dword [esi + 0xc], 0x84
jmp case.0x100702a0.33
mov word [esi + 0x152], ax
jmp case.0x100702a0.33
mov eax, dword [edi + 4]
add dword [edi], eax
jmp case.0x100702a0.33
mov eax, dword [edi + 4]
sub dword [edi], eax
jmp case.0x100702a0.33
mov eax, dword [edi + 4]
test eax, eax
jne 0x10071a3f
mov dword [esi + 0xc], 0x85
jmp case.0x100702a0.33
push eax
push 0x40
push dword [edi]
call fcn.1005b420
add esp, 0xc
mov dword [edi], eax
jmp case.0x100702a0.33
push 0x40
push dword [edi + 4]
push dword [edi]
call fcn.1005b340
add esp, 0xc
mov dword [edi], eax
jmp case.0x100702a0.33
mov eax, dword [edi]
test eax, eax
jns case.0x100702a0.33
neg eax
mov dword [edi], eax
jmp case.0x100702a0.33
mov eax, dword [edi]
neg eax
mov dword [edi], eax
jmp case.0x100702a0.33
and dword [edi], 0xffffffc0
jmp case.0x100702a0.33
mov eax, dword [edi]
add eax, 0x3f
and eax, 0xffffffc0
mov dword [edi], eax
jmp case.0x100702a0.33
mov ecx, dword [edi]
and eax, 3
mov edx, dword [esi + 0x258]
push eax
push ecx
push esi
cmp edx, fcn.1006db00
jne 0x10071ac3
call fcn.1006db00
add esp, 0xc
mov dword [edi], eax
jmp case.0x100702a0.33
call edx
add esp, 0xc
mov dword [edi], eax
jmp case.0x100702a0.33
mov ecx, dword [edi]
and eax, 3
mov eax, dword [esi + eax*4 + 0x10c]
test ecx, ecx
js 0x10071aef
add eax, ecx
xor ecx, ecx
test eax, eax
cmovns ecx, eax
mov dword [edi], ecx
jmp case.0x100702a0.33
sub ecx, eax
xor eax, eax
test ecx, ecx
cmovg ecx, eax
mov dword [edi], ecx
jmp case.0x100702a0.33
mov ebx, dword [edi]
cmp ebx, dword [esi + 0x184]
jb 0x10071b22
cmp byte [esi + 0x251], 0
je case.0x100702a0.33
mov dword [esi + 0xc], 0x86
jmp case.0x100702a0.33
mov eax, dword [esi + 0x108]
mov dword [esp + 0x14], eax
mov eax, dword [edi + 4]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov dword [esp + 0x38], eax
mov ecx, dword [esi + 0x188]
mov eax, dword [esp + 0x38]
mov dword [ecx + ebx*4], eax
jmp case.0x100702a0.33
push edi
push esi
call fcn.1006c3f0
add esp, 8
jmp case.0x100702a0.33
mov eax, dword [esi + 0x270]
cmp eax, 0x1006c0c0
jne 0x10071b90
movzx eax, word [esi + 0x100]
jmp 0x10071b96
push esi
call eax
add esp, 4
mov ecx, dword [edi]
mov ebp, 1
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], ecx
cmp ecx, ebp
jb 0x100719df
nop dword [eax]
mov ecx, dword [esi + 0x1c]
cmp ecx, 2
jl 0x100719c8
mov eax, dword [esi + 0x18]
add ecx, 0xfffffffe
mov dword [esi + 0x1c], ecx
mov ebx, dword [eax + ecx*4 + 4]
mov edx, dword [eax + ecx*4]
cmp ebx, dword [esi + 0x184]
jb 0x10071be6
cmp byte [esi + 0x251], 0
jne 0x100704b8
jmp 0x10071c62
movzx eax, byte [esi + 0x178]
mov ecx, edx
shr ecx, 4
and ecx, 0xf
sub eax, 0x74
je 0x10071c04
sub eax, 1
jne 0x10071c07
add ecx, 0x20
jmp 0x10071c07
add ecx, 0x10
movzx eax, word [esi + 0x150]
add eax, ecx
cmp dword [esp + 0x14], eax
jne 0x10071c62
movzx eax, word [esi + 0x152]
and edx, 0xf
mov ecx, 6
sub ecx, eax
mov eax, dword [esi + 0x27c]
cmp edx, 8
sbb edi, edi
add edi, 0xfffffff9
add edi, edx
shl edi, cl
cmp eax, 0x1006d890
jne 0x10071c5a
push esi
call fcn.1006d7e0
add esp, 4
cmp dword [esi + 0xc], 0
jne 0x10071c62
mov eax, dword [esi + 0x188]
add dword [eax + ebx*4], edi
jmp 0x10071c62
push edi
push ebx
push esi
call eax
add esp, 0xc
inc ebp
cmp ebp, dword [esp + 0x1c]
jbe 0x10071bb0
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x20], eax
jmp case.0x100702a0.33
push dword [edi]
push 0x4000
push esi
call fcn.1006dc70
add esp, 0xc
mov dword [esi + 0x13c], 6
mov dword [esi + 0x258], 0x1006daa0
jmp case.0x100702a0.33
push dword [edi]
push 0x2d41
push esi
call fcn.1006dc70
add esp, 0xc
mov dword [esi + 0x13c], 7
mov dword [esi + 0x258], fcn.1006db00
jmp case.0x100702a0.33
cmp dword [edi + 4], 0
je case.0x100702a0.33
jmp case.0x100702a0.28
cmp dword [edi + 4], 0
jne case.0x100702a0.33
jmp case.0x100702a0.28
mov dword [esi + 0x13c], 5
mov dword [esi + 0x258], fcn.1006da70
jmp case.0x100702a0.33
mov dword [esi + 0x13c], 4
mov dword [esi + 0x258], 0x1006dc30
jmp case.0x100702a0.33
mov dword [esi + 0x13c], 3
mov dword [esi + 0x258], 0x1006da30
jmp case.0x100702a0.33
mov eax, dword [esi]
mov eax, dword [eax + 0x60]
cmp dword [eax + 0x40], 0x28
jne 0x10071d5f
cmp byte [esi + 0x283], 0
je 0x10071d5f
cmp byte [esi + 0x284], 0
je 0x10071d5f
cmp byte [esi + 0x285], 0
mov eax, ecx
jne 0x10071dd6
mov edx, dword [esi + 0x134]
mov eax, ecx
cmp dword [esi + 0x10], edx
jge 0x10071d8e
cmp byte [esi + 0x251], 0
je 0x10071dd6
mov dword [esi + 0xc], 0x81
mov dword [esi + 0x134], 1
mov dword [esi + 0x20], eax
jmp case.0x100702a0.33
test edx, edx
jle 0x10071dd6
lea eax, [ecx - 1]
mov dword [esi + 0x1c], eax
movzx ecx, word [ebp + eax*4]
cmp cx, word [esi + 0x98]
jb 0x10071db5
cmp byte [esi + 0x251], 0
jne 0x100704b8
jmp 0x10071dc5
mov eax, dword [esi + 0xa8]
xor byte [eax + ecx], 1
mov eax, dword [esi + 0x1c]
mov ebp, dword [esi + 0x18]
dec dword [esi + 0x134]
mov ecx, eax
cmp dword [esi + 0x134], 0
jg 0x10071d92
mov dword [esi + 0x134], 1
mov dword [esi + 0x20], eax
jmp case.0x100702a0.33
mov eax, dword [esi]
mov eax, dword [eax + 0x60]
cmp dword [eax + 0x40], 0x28
jne 0x10071e12
cmp byte [esi + 0x283], 0
je 0x10071e12
cmp byte [esi + 0x284], 0
je 0x10071e12
cmp byte [esi + 0x285], 0
jne case.0x100702a0.33
movzx ebx, word [edi + 4]
movzx ecx, word [esi + 0x98]
movzx eax, word [edi]
cmp bx, cx
jae 0x100704ab
cmp ax, cx
jae 0x100704ab
mov edx, eax
cmp ax, bx
ja case.0x100702a0.33
nop dword [eax]
mov eax, dword [esi + 0xa8]
movzx ecx, dx
inc edx
or byte [ecx + eax], 1
cmp dx, bx
jbe 0x10071e40
jmp case.0x100702a0.33
mov eax, dword [esi]
mov eax, dword [eax + 0x60]
cmp dword [eax + 0x40], 0x28
jne 0x10071e82
cmp byte [esi + 0x283], 0
je 0x10071e82
cmp byte [esi + 0x284], 0
je 0x10071e82
cmp byte [esi + 0x285], 0
jne case.0x100702a0.33
movzx ebx, word [edi + 4]
movzx ecx, word [esi + 0x98]
movzx eax, word [edi]
cmp bx, cx
jae 0x100704ab
cmp ax, cx
jae 0x100704ab
mov edx, eax
cmp ax, bx
ja case.0x100702a0.33
nop dword [eax]
mov eax, dword [esi + 0xa8]
movzx ecx, dx
inc edx
and byte [ecx + eax], 0xfe
cmp dx, bx
jbe 0x10071eb0
jmp case.0x100702a0.33
mov eax, dword [edi]
movzx ecx, al
cmp ecx, 0xff
jne 0x10071ee1
mov byte [esi + 0x155], 1
jmp case.0x100702a0.33
test al, al
je 0x10071f7d
test eax, 0x100
je 0x10071f02
movzx eax, word [esi + 0x100]
cmp eax, ecx
ja 0x10071f02
mov byte [esi + 0x155], 1
test dword [edi], 0x200
je 0x10071f1a
cmp byte [esi + 0x11d], 0
je 0x10071f1a
mov byte [esi + 0x155], 1
test dword [edi], 0x400
je 0x10071f32
cmp byte [esi + 0x11e], 0
je 0x10071f32
mov byte [esi + 0x155], 1
test dword [edi], 0x800
je 0x10071f4c
movzx eax, word [esi + 0x100]
cmp eax, ecx
jbe 0x10071f4c
mov byte [esi + 0x155], 0
test dword [edi], 0x1000
je 0x10071f64
cmp byte [esi + 0x11d], 0
je 0x10071f64
mov byte [esi + 0x155], 0
test dword [edi], 0x2000
je case.0x100702a0.33
cmp byte [esi + 0x11e], 0
je case.0x100702a0.33
mov byte [esi + 0x155], 0
jmp case.0x100702a0.33
movzx ecx, word [edi]
movzx eax, word [edi + 4]
cmp cx, word [esi + 0x50]
jae 0x100704ab
cmp ax, word [esi + 0x74]
jae 0x100704ab
mov edx, ecx
mov ecx, dword [esi + 0x54]
shl edx, 3
add ecx, edx
mov dword [esp + 0x14], edx
mov edx, eax
mov eax, dword [esi + 0x78]
shl edx, 3
add eax, edx
mov dword [esp + 0x3c], edx
mov edx, dword [ecx]
sub edx, dword [eax]
mov ebp, dword [eax + 4]
mov eax, dword [ecx + 4]
mov edi, eax
sub edi, ebp
mov dword [esp + 0x1c], eax
test edx, edx
jne 0x10071fe1
test edi, edi
jne 0x10071fe1
mov edx, 0x4000
xor bl, bl
test bl, 1
lea eax, [esi + 0x126]
mov cl, bl
cmovne edi, edx
sub ebp, dword [esp + 0x1c]
push eax
test cl, 1
push edi
cmove ebp, edx
push ebp
call fcn.1006d900
mov ecx, dword [esi + 0x58]
add esp, 0xc
add ecx, dword [esp + 0x14]
mov eax, dword [esi + 0x7c]
add eax, dword [esp + 0x3c]
mov edi, dword [ecx]
mov ebp, dword [ecx + 4]
mov ecx, ebp
sub edi, dword [eax]
mov edx, dword [eax + 4]
sub ecx, edx
test edi, edi
jne 0x1007202f
test ecx, ecx
jne 0x1007202f
mov edi, 0x4000
xor bl, bl
and bl, 1
lea eax, [esi + 0x12a]
push eax
cmovne ecx, edi
sub edx, ebp
test bl, bl
push ecx
cmove edx, edi
push edx
call fcn.1006d900
push esi
call fcn.1006beb0
add esp, 0x10
jmp case.0x100702a0.33
mov edx, dword [edi]
xor ecx, ecx
mov ebx, dword [esi]
test dl, 1
je 0x10072069
mov eax, dword [ebx + 0x60]
mov ecx, dword [eax + 0x40]
mov eax, ebx
test dl, 2
je 0x1007207f
cmp byte [esi + 0x11d], 0
je 0x1007207f
or ecx, 0x100
test dl, 4
je 0x10072093
cmp byte [esi + 0x11e], 0
je 0x10072093
or ecx, 0x200
test dl, 8
je 0x100720a9
cmp dword [eax + 0x2e0], 0
mov ebx, eax
je 0x100720a9
or ecx, 0x400
test dl, 0x20
je 0x100720bd
cmp byte [esi + 0x280], 0
je 0x100720bd
or ecx, 0x1000
mov eax, dword [ebx + 0x60]
cmp dword [eax + 0x40], 0x28
jne 0x1007213c
cmp byte [esi + 0x281], 0
je 0x1007213c
mov ebp, dword [edi]
mov eax, edx
mov edx, ecx
or edx, 0x2000
test al, 0x40
cmove edx, ecx
mov ebx, edx
test ebp, 0x100
je 0x10072101
cmp byte [esi + 0x282], 0
je 0x10072101
or ebx, 0x8000
mov ecx, ebx
or ecx, 0x20000
test ebp, 0x400
cmove ecx, ebx
mov edx, ecx
or edx, 0x40000
test ebp, 0x800
cmove edx, ecx
mov ecx, edx
test ebp, 0x1000
je 0x1007213c
cmp byte [esi + 0x286], 0
je 0x1007213c
or ecx, 0x80000
mov dword [edi], ecx
jmp case.0x100702a0.33
cmp dword [esi + 0x164], 3
jne 0x10072158
mov dword [esi + 0xc], 0x9c
jmp case.0x100702a0.33
mov ebx, dword [esi + 0x1b4]
test ebx, ebx
je 0x10072184
mov eax, dword [esi + 0x1ac]
lea eax, [eax + eax*2]
lea eax, [ebx + eax*8]
cmp ebx, eax
jae 0x10072182
mov ecx, dword [edi]
cmp dword [ebx + 0xc], ecx
je 0x10072180
add ebx, 0x18
cmp ebx, eax
jb 0x10072174
cmp ebx, eax
jne 0x1007219d
mov eax, dword [esi + 0x1ac]
cmp eax, dword [esi + 0x1b0]
jae 0x10072224
inc eax
mov dword [esi + 0x1ac], eax
mov eax, dword [edi]
cmp eax, 0xff
ja 0x10072224
movzx eax, al
mov dword [ebx + 0xc], eax
mov eax, dword [esi + 0x170]
inc eax
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x168]
mov dword [ebx], eax
mov byte [ebx + 0x10], 1
mov eax, dword [edi]
cmp eax, dword [esi + 0x1bc]
jbe 0x100721d5
movzx eax, al
mov dword [esi + 0x1bc], eax
push esi
call fcn.1006de60
add esp, 4
test al, al
jne case.0x100702a0.33
nop word [eax + eax]
movzx eax, byte [esi + 0x178]
sub eax, 0x2c
je 0x10070c06
sub eax, 1
je 0x10070bf8
sub eax, 0x5c
je 0x10070c06
push esi
call fcn.1006de60
add esp, 4
test al, al
je 0x100721f0
jmp case.0x100702a0.33
mov dword [esi + 0xc], 0x8d
jmp case.0x100702a0.33
mov edx, dword [edi + 8]
mov ecx, dword [edi + 4]
mov eax, dword [edi]
mov dword [edi + 8], eax
mov dword [edi + 4], edx
mov dword [edi], ecx
jmp case.0x100702a0.33
mov eax, dword [edi + 4]
cmp eax, dword [edi]
jle case.0x100702a0.33
mov dword [edi], eax
jmp case.0x100702a0.33
mov eax, dword [edi + 4]
cmp eax, dword [edi]
jge case.0x100702a0.33
mov dword [edi], eax
jmp case.0x100702a0.33
mov eax, dword [edi]
test eax, eax
js case.0x100702a0.33
movzx eax, ax
mov dword [esi + 0x158], eax
jmp case.0x100702a0.33
mov ebx, dword [edi + 4]
mov edx, dword [edi]
lea eax, [ebx - 1]
cmp eax, 2
ja 0x100704ab
lea ecx, [ebx - 1]
mov eax, 1
shl eax, cl
test edx, edx
je 0x100722bd
cmp edx, eax
je 0x100722bd
cmp byte [esi + 0x251], 0
je case.0x100702a0.33
mov dword [esi + 0xc], 0x86
jmp case.0x100702a0.33
mov ecx, dword [esi + 0x164]
cmp ecx, 2
jne 0x100722dd
not al
and al, byte [esi + 0x154]
or al, dl
mov byte [esi + 0x154], al
jmp case.0x100702a0.33
cmp ecx, 3
jne 0x10072306
cmp ebx, ecx
jne 0x10072306
mov eax, dword [esi]
mov eax, dword [eax + 0x60]
cmp dword [eax + 0x40], 0x28
jne case.0x100702a0.33
cmp edx, 4
setne al
mov byte [esi + 0x283], al
jmp case.0x100702a0.33
cmp byte [esi + 0x251], 0
jne 0x100704b8
jmp case.0x100702a0.33
mov eax, dword [esi]
mov ebp, dword [eax + 0x2e0]
test ebp, ebp
je case.0x100702a0.40
sub edx, dword [esi + 0x10]
mov ebx, dword [ebp]
inc edx
mov ebp, dword [ebp + 8]
cmp ebx, edx
jb 0x10072342
mov dword [esi + 0xc], 0x82
jmp case.0x100702a0.33
test ebp, ebp
je 0x100723fd
xor edx, edx
test ebx, ebx
je case.0x100702a0.33
cmp ebx, 0x10
jb 0x100723d8
lea eax, [ebx*4 - 4]
add eax, ebp
lea ecx, [ebx - 1]
lea ecx, [edi + ecx*4]
cmp edi, eax
ja 0x10072374
cmp ecx, ebp
jae 0x100723d8
mov eax, ebx
lea ecx, [ebp + 0x30]
and eax, 0xfffffff0
mov esi, ebp
mov dword [esp + 0x1c], eax
sub esi, edi
mov eax, 2
mov dword [esp + 0x3c], esi
movd xmm1, eax
lea eax, [edi + 0x10]
movups xmm0, xmmword [ecx - 0x30]
add edx, 0x10
lea eax, [eax + 0x40]
lea ecx, [ecx + 0x40]
psrad xmm0, xmm1
movups xmmword [eax - 0x50], xmm0
movups xmm0, xmmword [esi + eax - 0x40]
psrad xmm0, xmm1
movups xmmword [eax - 0x40], xmm0
movups xmm0, xmmword [ecx - 0x50]
psrad xmm0, xmm1
movups xmmword [eax - 0x30], xmm0
movups xmm0, xmmword [ecx - 0x40]
psrad xmm0, xmm1
movups xmmword [eax - 0x20], xmm0
cmp edx, dword [esp + 0x1c]
jb 0x10072394
mov esi, dword [esp + 0x78]
cmp edx, ebx
jae case.0x100702a0.33
sub ebp, edi
lea ecx, [edi + edx*4]
sub ebx, edx
mov eax, dword [ecx + ebp]
lea ecx, [ecx + 4]
sar eax, 2
mov dword [ecx - 4], eax
sub ebx, 1
jne 0x100723e7
jmp case.0x100702a0.33
test ebx, ebx
je case.0x100702a0.33
mov ecx, ebx
xor eax, eax
rep stosd dword es:[edi], eax
jmp case.0x100702a0.33
mov eax, dword [esi]
cmp dword [eax + 0x2e0], 0
je case.0x100702a0.40
mov dword [edi], 0x11
jmp case.0x100702a0.33
cmp bl, 0xe0
jb 0x1007243e
push edi
push esi
call fcn.1006cfa0
add esp, 8
jmp case.0x100702a0.33
cmp bl, 0xc0
jb 0x10072452
push edi
push esi
call fcn.1006cd30
add esp, 8
jmp case.0x100702a0.33
cmp bl, 0xb8
jb 0x100724d1
sub edx, dword [esi + 0x10]
mov ecx, 0xb7
movzx eax, bl
inc edx
sub ax, cx
movzx eax, ax
mov ebx, eax
cmp ebx, edx
jb 0x1007247f
mov dword [esi + 0xc], 0x82
jmp case.0x100702a0.33
inc dword [esi + 0x170]
xor ecx, ecx
cmp cx, ax
jae 0x100724c8
nop dword [eax]
add dword [esi + 0x170], 2
lea edi, [edi + 4]
mov edx, dword [esi + 0x170]
mov eax, 0x100
add edx, dword [esi + 0x16c]
cwde
movzx ecx, byte [edx - 2]
movsx ecx, cx
imul ecx, eax
movzx eax, byte [edx - 1]
add cx, ax
movsx eax, cx
mov dword [edi - 4], eax
sub ebx, 1
jne 0x10072490
mov byte [esi + 0x180], 0
jmp case.0x100702a0.33
cmp bl, 0xb0
jb case.0x100702a0.40
sub edx, dword [esi + 0x10]
mov ecx, 0xaf
movzx eax, bl
inc edx
sub ax, cx
movzx ebp, ax
cmp ebp, edx
jb 0x100724f5
mov dword [esi + 0xc], 0x82
jmp case.0x100702a0.33
mov ebx, 1
mov eax, ebx
cmp ax, bp
ja case.0x100702a0.33
mov ecx, dword [esi + 0x170]
mov eax, dword [esi + 0x16c]
movzx edx, bx
inc ebx
add ecx, edx
movzx eax, byte [ecx + eax]
mov dword [edi + edx*4 - 4], eax
cmp bx, bp
jbe 0x10072501
jmp case.0x100702a0.33
push esi
call fcn.1006d740
add esp, 4
mov eax, dword [esi + 0xc]
test eax, eax
je 0x100725cd
cmp eax, 0x80
jne 0x1007267a
mov ecx, dword [esi + 0x1b4]
test ecx, ecx
je 0x10072559
mov eax, dword [esi + 0x1ac]
lea eax, [eax + eax*2]
lea edx, [ecx + eax*8]
jmp 0x10072560
xor edx, edx
nop dword [eax + eax]
cmp ecx, edx
jae 0x10072647
cmp byte [ecx + 0x10], 0
je 0x10072579
mov al, byte [esi + 0x178]
cmp al, byte [ecx + 0xc]
je 0x1007257e
add ecx, 0x18
jmp 0x10072560
mov edx, dword [esi + 0x1c0]
cmp edx, dword [esi + 0x1c4]
jge 0x1007263e
mov eax, dword [esi + 0x168]
shl edx, 4
add edx, dword [esi + 0x1c8]
mov dword [edx], eax
mov eax, dword [esi + 0x170]
inc eax
mov dword [edx + 8], 1
mov dword [edx + 4], eax
mov dword [edx + 0xc], ecx
push dword [ecx + 4]
push dword [ecx]
push esi
call fcn.1006c540
add esp, 0xc
cmp al, 1
je 0x1007267a
jmp 0x100725f8
cmp byte [esi + 0x180], 0
mov eax, dword [esi + 0x20]
mov dword [esi + 0x10], eax
je 0x100725e8
mov eax, dword [esi + 0x17c]
add dword [esi + 0x170], eax
mov eax, dword [esp + 0x18]
inc eax
mov dword [esp + 0x18], eax
cmp eax, 0xf4240
ja 0x10072662
mov eax, dword [esi + 0x170]
cmp eax, dword [esi + 0x174]
jge 0x10072650
cmp byte [esi + 0x208], 0
je 0x10070172
mov eax, dword [esi + 0x194]
mov dword [esi + 0x188], eax
mov eax, dword [esi + 0x1f8]
pop edi
mov dword [esi + 0x1ec], eax
xor eax, eax
pop esi
pop ebp
pop ebx
add esp, 0x64
ret
mov dword [ebp], 0x81
jmp 0x1007267a
mov dword [esi + 0xc], 0x86
jmp 0x1007267a
mov dword [esi + 0xc], 0x80
jmp 0x1007267a
cmp dword [esi + 0x1c0], 0
jle 0x10072613
mov dword [esi + 0xc], 0x83
jmp 0x1007267a
mov dword [esi + 0xc], 0x8b
jmp 0x1007267a
mov dword [esi + 0xc], 0x82
jmp 0x1007267a
mov dword [edx], 0x83
mov ecx, dword [esi + 0x194]
mov eax, dword [esi + 0xc]
mov dword [esi + 0x188], ecx
mov ecx, dword [esi + 0x1f8]
pop edi
mov dword [esi + 0x1ec], ecx
pop esi
pop ebp
pop ebx
add esp, 0x64
ret