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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x70
push ebx
push esi
mov esi, dword [ebp + 8]
mov eax, 0x1e
push edi
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x10], 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 0x100f1564
cmp ecx, 0xffff
cmova ecx, dword [ebp - 0x10]
mov word [esi + 0xbc], cx
mov dword [esi + 0x280], 0
mov dword [esi + 0x288], 0
test bx, bx
je 0x100f159f
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 0x100f15a8
imul ecx, edx, 0x16
add ecx, 0x12c
mov dword [esi + 0x284], ecx
mov eax, dword [esi]
imul eax, dword [eax + 0x10], 0x64
cmp ecx, eax
jbe 0x100f15c0
mov dword [esi + 0x284], eax
mov ecx, eax
movzx eax, word [esi + 0xde]
mov edi, 0x100eef20
movzx ebx, word [esi + 0xdc]
mov edx, 0x100f4980
mov dword [esi + 0x28c], ecx
cmp bx, ax
mov ecx, 0x100eef00
mov dword [ebp - 0xc], eax
cmove edi, ecx
mov dword [ebp - 0x14], 0x100eedf0
mov ecx, 0x100f4950
mov dword [esi + 0x104], 0
cmove edx, ecx
mov eax, 0x100ed650
mov ecx, 0x100eee20
cmove ecx, dword [ebp - 0x14]
cmp bx, word [ebp - 0xc]
mov dword [ebp - 0x14], 0x100ed640
cmove eax, dword [ebp - 0x14]
mov dword [esi + 0x268], eax
mov dword [esi + 0x26c], edi
mov dword [esi + 0x270], edx
mov dword [esi + 0x274], ecx
mov eax, dword [esi + 0x168]
push esi
mov dword [esi + 0x164], eax
call fcn.100ed420
movzx eax, byte [esi + 0x13c]
add esp, 4
cmp eax, 7
ja case.default.0x100f165b
jmp dword [eax*4 + 0x100f3c70]
mov dword [esi + 0x250], fcn.100eefb0
jmp case.default.0x100f165b
mov dword [esi + 0x250], 0x100ef0f0
jmp case.default.0x100f165b
mov dword [esi + 0x250], 0x100ef180
jmp case.default.0x100f165b
mov dword [esi + 0x250], 0x100eef70
jmp case.default.0x100f165b
mov dword [esi + 0x250], 0x100ef130
jmp case.default.0x100f165b
mov dword [esi + 0x250], 0x100ef0b0
jmp case.default.0x100f165b
mov dword [esi + 0x250], 0x100eefe0
jmp case.default.0x100f165b
mov dword [esi + 0x250], fcn.100ef040
lea edx, [esi + 0xc]
mov word [esi + 0x27c], 0
mov dword [ebp - 8], edx
nop
mov eax, dword [esi + 0x16c]
mov edi, dword [esi + 0x170]
add eax, edi
mov dword [ebp - 0x14], eax
mov bl, byte [eax]
movzx eax, bl
mov byte [esi + 0x178], bl
mov dword [ebp - 0xc], eax
movsx ecx, byte [eax + 0x10158f40]
mov dword [esi + 0x17c], ecx
test ecx, ecx
jns 0x100f1729
lea eax, [edi + 1]
cmp eax, dword [esi + 0x174]
jge 0x100f3c5c
mov eax, dword [ebp - 0x14]
lea edx, [esi + 0xc]
movzx eax, byte [eax + 1]
imul eax, ecx
mov ecx, 2
sub ecx, eax
mov dword [esi + 0x17c], ecx
lea eax, [ecx + edi]
cmp eax, dword [esi + 0x174]
jg 0x100f3c5c
mov eax, dword [ebp - 0xc]
mov ecx, dword [esi + 0x10]
mov bh, byte [eax + 0x10158e40]
movzx eax, bh
shr eax, 4
sub ecx, eax
mov dword [esi + 0x1c], ecx
jns 0x100f1796
cmp byte [esi + 0x249], 0
jne 0x100f3bd9
xor edx, edx
test bh, 0xf0
jbe 0x100f178d
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 + 0x10158e40]
shr al, 4
movzx eax, al
cmp dx, ax
jb 0x100f1765
mov dword [esi + 0x1c], 0
xor ecx, ecx
cmp bl, 0x91
jne 0x100f17b0
mov eax, dword [esi]
mov eax, dword [eax + 0x2e0]
test eax, eax
je 0x100f17ab
mov edx, dword [eax]
jmp 0x100f17bd
mov edx, dword [esi + 0x20]
jmp 0x100f17c2
movzx eax, bl
movzx edx, byte [eax + 0x10158e40]
and edx, 0xf
add edx, ecx
mov dword [esi + 0x20], edx
cmp edx, dword [esi + 0x14]
jg 0x100f3c49
mov edx, dword [esi + 0x18]
movzx eax, bl
mov byte [esi + 0x180], 1
mov dword [esi + 0xc], 0
lea edi, [edx + ecx*4]
cmp eax, 0x92
ja case.default.0x100f17ed
jmp dword [eax*4 + 0x100f3c90]
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 0x100f182d
mov word [esi + 0x12a], cx
mov word [esi + 0x12c], ax
mov word [esi + 0x126], cx
mov word [esi + 0x128], ax
test bl, 2
jne 0x100f1954
mov word [esi + 0x12e], cx
push esi
mov word [esi + 0x130], ax
call fcn.100ed420
jmp 0x100f3ae8
movzx eax, word [edi]
lea ebx, [esi + 0x12a]
push ebx
push eax
movzx eax, word [edi + 4]
push eax
push esi
call fcn.100eec00
add esp, 0x10
test al, al
jne case.0x100f17ed.33
mov eax, dword [ebx]
push esi
mov dword [esi + 0x126], eax
call fcn.100ed420
jmp 0x100f3ae8
lea eax, [esi + 0x12e]
push eax
movzx eax, word [edi]
push eax
movzx eax, word [edi + 4]
push eax
push esi
call fcn.100eec00
add esp, 0x10
test al, al
jne case.0x100f17ed.33
push esi
call fcn.100ed420
jmp 0x100f3ae8
movsx ecx, word [edi]
movsx eax, word [edi + 4]
test ecx, ecx
jne 0x100f18be
test eax, eax
je 0x100f18f6
mov dword [ebp - 0x40], eax
lea eax, [ebp - 0x44]
push eax
mov dword [ebp - 0x44], ecx
call fcn.100df2f0
mov eax, dword [ebp - 0x44]
add esp, 4
cdq
and edx, 3
add eax, edx
sar eax, 2
mov word [esi + 0x12a], ax
mov eax, dword [ebp - 0x40]
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.100ed420
jmp 0x100f3ae8
movsx ecx, word [edi]
movsx eax, word [edi + 4]
test ecx, ecx
jne 0x100f191c
test eax, eax
je 0x100f1954
mov dword [ebp - 0x48], eax
lea eax, [ebp - 0x4c]
push eax
mov dword [ebp - 0x4c], ecx
call fcn.100df2f0
mov eax, dword [ebp - 0x4c]
add esp, 4
cdq
and edx, 3
add eax, edx
sar eax, 2
mov word [esi + 0x12e], ax
mov eax, dword [ebp - 0x48]
cdq
and edx, 3
add eax, edx
sar eax, 2
mov word [esi + 0x130], ax
push esi
call fcn.100ed420
jmp 0x100f3ae8
movsx eax, word [esi + 0x12a]
mov dword [edi], eax
movsx eax, word [esi + 0x12c]
mov dword [edi + 4], eax
jmp case.0x100f17ed.33
movsx eax, word [esi + 0x12e]
mov dword [edi], eax
movsx eax, word [esi + 0x130]
mov dword [edi + 4], eax
jmp case.0x100f17ed.33
mov eax, dword [esi + 0x12a]
push esi
mov dword [esi + 0x12e], eax
call fcn.100ed420
jmp 0x100f3ae8
push edi
push esi
call fcn.100ede70
add esp, 8
jmp case.0x100f17ed.33
mov ax, word [edi]
mov word [esi + 0x120], ax
jmp case.0x100f17ed.33
mov ax, word [edi]
mov word [esi + 0x122], ax
jmp case.0x100f17ed.33
mov ax, word [edi]
mov word [esi + 0x124], ax
jmp case.0x100f17ed.33
mov eax, dword [edi]
sub eax, 0
je 0x100f1a21
sub eax, 1
je 0x100f1a07
cmp byte [esi + 0x249], 0
je case.0x100f17ed.33
mov dword [esi + 0xc], 0x86
jmp case.0x100f17ed.33
movups xmm0, xmmword [esi + 0x90]
mov eax, dword [esi + 0xb0]
movups xmmword [esi + 0x24], xmm0
movups xmm0, xmmword [esi + 0xa0]
jmp 0x100f1a39
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.0x100f17ed.33
mov eax, dword [edi]
sub eax, 0
je 0x100f1a8e
sub eax, 1
je 0x100f1a74
cmp byte [esi + 0x249], 0
je case.0x100f17ed.33
mov dword [esi + 0xc], 0x86
jmp case.0x100f17ed.33
movups xmm0, xmmword [esi + 0x90]
mov eax, dword [esi + 0xb0]
movups xmmword [esi + 0x48], xmm0
movups xmm0, xmmword [esi + 0xa0]
jmp 0x100f1aa6
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.0x100f17ed.33
mov eax, dword [edi]
sub eax, 0
je 0x100f1afb
sub eax, 1
je 0x100f1ae1
cmp byte [esi + 0x249], 0
je case.0x100f17ed.33
mov dword [esi + 0xc], 0x86
jmp case.0x100f17ed.33
movups xmm0, xmmword [esi + 0x90]
mov eax, dword [esi + 0xb0]
movups xmmword [esi + 0x6c], xmm0
movups xmm0, xmmword [esi + 0xa0]
jmp 0x100f1b13
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.0x100f17ed.33
mov eax, dword [edi]
sub eax, 0
je 0x100f1b6b
sub eax, 1
je 0x100f1b51
cmp byte [esi + 0x249], 0
je case.0x100f17ed.33
mov dword [esi + 0xc], 0x86
jmp case.0x100f17ed.33
movups xmm0, xmmword [esi + 0x90]
mov eax, dword [esi + 0xb0]
movups xmmword [esi + 0x24], xmm0
movups xmm0, xmmword [esi + 0xa0]
jmp 0x100f1b83
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.0x100f17ed.33
mov eax, dword [edi]
test eax, eax
jns 0x100f1be8
mov dword [esi + 0xc], 0x84
jmp case.0x100f17ed.33
cmp eax, 0xffff
cmovg eax, dword [ebp - 0x10]
mov dword [esi + 0x134], eax
jmp case.0x100f17ed.33
mov dword [esi + 0x13c], 1
mov dword [esi + 0x250], 0x100ef0f0
jmp case.0x100f17ed.33
mov dword [esi + 0x13c], 0
mov dword [esi + 0x250], 0x100ef130
jmp case.0x100f17ed.33
mov eax, dword [edi]
mov dword [esi + 0x138], eax
jmp case.0x100f17ed.33
mov edi, 1
push esi
call fcn.100ef3b0
add esp, 4
cmp al, 1
je case.0x100f17ed.33
movzx eax, byte [esi + 0x178]
sub eax, 0x58
je 0x100f1c65
sub eax, 1
jne 0x100f1c66
dec edi
jmp 0x100f1c66
inc edi
test edi, edi
jne 0x100f1c40
jmp case.0x100f17ed.33
mov edx, dword [edi]
test edx, edx
jne 0x100f1c7d
test ecx, ecx
je 0x100f1bdc
add edx, dword [esi + 0x170]
mov dword [esi + 0x170], edx
js 0x100f1bdc
mov ecx, dword [esi + 0x1bc]
test ecx, ecx
jle 0x100f1cae
mov eax, dword [esi + 0x1c4]
add ecx, ecx
mov eax, dword [eax + ecx*8 - 4]
cmp edx, dword [eax + 8]
jg 0x100f1bdc
mov byte [esi + 0x180], 0
cmp dword [edi], 0
jge case.0x100f17ed.33
inc dword [esi + 0x288]
mov eax, dword [esi + 0x288]
cmp eax, dword [esi + 0x28c]
jbe case.0x100f17ed.33
mov dword [esi + 0xc], 0x8b
jmp case.0x100f17ed.33
mov eax, dword [edi]
mov dword [esi + 0x144], eax
jmp case.0x100f17ed.33
mov eax, dword [edi]
mov dword [esi + 0x148], eax
jmp case.0x100f17ed.33
mov eax, dword [esi + 0x108]
mov dword [ebp - 0xc], eax
mov eax, dword [edi]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0xc]
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 [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov dword [esi + 0x14c], eax
jmp case.0x100f17ed.33
mov eax, dword [edi]
mov dword [edi + 4], eax
jmp case.0x100f17ed.33
mov dword [esi + 0x20], 0
jmp case.0x100f17ed.33
mov ecx, dword [edi]
mov eax, dword [edi + 4]
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp case.0x100f17ed.33
mov eax, dword [esi + 0x10]
mov dword [edi], eax
jmp case.0x100f17ed.33
mov eax, dword [edi]
test eax, eax
jle 0x100f1d80
cmp eax, ecx
jg 0x100f1d80
sub ecx, eax
mov eax, dword [edx + ecx*4]
mov dword [edi], eax
jmp case.0x100f17ed.33
cmp byte [esi + 0x249], 0
je 0x100f1d90
mov dword [esi + 0xc], 0x86
xor eax, eax
mov dword [edi], eax
jmp case.0x100f17ed.33
mov eax, dword [edi]
test eax, eax
jle 0x100f19ee
cmp eax, ecx
jg 0x100f19ee
sub ecx, eax
lea eax, [eax*4 - 4]
mov edi, dword [edx + ecx*4]
lea ecx, [edx + ecx*4]
push eax
lea eax, [ecx + 4]
push eax
push ecx
call sub.VCRUNTIME140.dll_memmove
mov ecx, dword [esi + 0x1c]
add esp, 0xc
mov eax, dword [esi + 0x18]
mov dword [eax + ecx*4 - 4], edi
jmp case.0x100f17ed.33
movzx eax, word [edi]
movzx ebx, word [edi + 4]
mov dword [ebp - 0x14], eax
cmp ax, word [esi + 0x50]
jae 0x100f19ee
cmp bx, word [esi + 0x2c]
jae 0x100f19ee
movzx ecx, ax
mov eax, dword [esi + 0x58]
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 + 0x254]
push esi
call eax
cdq
sub eax, edx
mov edi, eax
lea eax, [esi + 0x48]
sar edi, 1
push edi
push dword [ebp - 0x14]
push eax
mov eax, dword [esi + 0x260]
push esi
call eax
neg edi
lea eax, [esi + 0x24]
push edi
push ebx
push eax
mov eax, dword [esi + 0x260]
push esi
call eax
add esp, 0x2c
jmp case.0x100f17ed.33
movzx eax, word [edi]
cmp ax, word [esi + 0x2c]
jb 0x100f1e6e
cmp byte [esi + 0x249], 0
je case.0x100f17ed.33
mov dword [esi + 0xc], 0x86
jmp case.0x100f17ed.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.0x100f17ed.33
mov eax, dword [esi + 0x1b4]
mov edx, dword [edi + 4]
inc eax
mov dword [ebp - 0x14], eax
cmp edx, eax
jae 0x100f19fb
mov ebx, dword [esi + 0x1a4]
test ebx, ebx
je 0x100f1eca
lea eax, [edx + edx*2]
lea ecx, [ebx + eax*8]
jmp 0x100f1ecc
xor ecx, ecx
mov eax, dword [esi + 0x19c]
cmp dword [ebp - 0x14], eax
jne 0x100f1edc
cmp dword [ecx + 0xc], edx
je 0x100f1f04
mov ecx, ebx
test ecx, ecx
je 0x100f19fb
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
cmp ecx, eax
jae 0x100f1efe
cmp dword [ecx + 0xc], edx
je 0x100f1efc
add ecx, 0x18
cmp ecx, eax
jb 0x100f1ef0
cmp ecx, eax
je 0x100f19fb
cmp byte [ecx + 0x10], 0
je 0x100f19fb
mov edx, dword [esi + 0x1bc]
cmp edx, dword [esi + 0x1c0]
jl 0x100f1f28
mov dword [esi + 0xc], 0x82
jmp case.0x100f17ed.33
cmp dword [edi], 0
jle case.0x100f17ed.33
mov eax, dword [esi + 0x168]
shl edx, 4
add edx, dword [esi + 0x1c4]
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 + 0x1bc]
push dword [ecx + 4]
push dword [ecx]
push esi
call fcn.100edad0
mov byte [esi + 0x180], 0
add esp, 0xc
mov eax, dword [edi]
add dword [esi + 0x280], eax
mov eax, dword [esi + 0x280]
cmp eax, dword [esi + 0x284]
jbe case.0x100f17ed.33
mov dword [esi + 0xc], 0x8b
jmp case.0x100f17ed.33
mov ebx, dword [esi + 0x1b4]
mov edx, dword [edi]
inc ebx
cmp edx, ebx
jae 0x100f19fb
mov edi, dword [esi + 0x1a4]
test edi, edi
je 0x100f19fb
lea eax, [edx + edx*2]
lea ecx, [edi + eax*8]
mov eax, dword [esi + 0x19c]
cmp ebx, eax
jne 0x100f1fc9
cmp dword [ecx + 0xc], edx
je 0x100f1fe9
mov ecx, edi
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
cmp ecx, eax
jae 0x100f1fe3
cmp dword [ecx + 0xc], edx
je 0x100f1fe1
add ecx, 0x18
cmp ecx, eax
jb 0x100f1fd5
cmp ecx, eax
je 0x100f19fb
cmp byte [ecx + 0x10], 0
je 0x100f19fb
mov edx, dword [esi + 0x1bc]
cmp edx, dword [esi + 0x1c0]
jl 0x100f200d
mov dword [esi + 0xc], 0x82
jmp case.0x100f17ed.33
mov eax, dword [esi + 0x168]
shl edx, 4
add edx, dword [esi + 0x1c4]
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 + 0x1bc]
push dword [ecx + 4]
push dword [ecx]
push esi
call fcn.100edad0
add esp, 0xc
mov byte [esi + 0x180], 0
jmp case.0x100f17ed.33
cmp dword [esi + 0x164], 3
jne 0x100f2067
mov dword [esi + 0xc], 0x9c
jmp case.0x100f17ed.33
mov ebx, dword [esi + 0x1a4]
test ebx, ebx
je 0x100f207f
mov eax, dword [esi + 0x19c]
lea eax, [eax + eax*2]
lea eax, [ebx + eax*8]
jmp 0x100f2081
xor eax, eax
mov ecx, dword [edi]
cmp ebx, eax
jae 0x100f2095
cmp dword [ebx + 0xc], ecx
je 0x100f2093
add ebx, 0x18
cmp ebx, eax
jb 0x100f2087
cmp ebx, eax
jne 0x100f20ac
mov eax, dword [esi + 0x19c]
cmp eax, dword [esi + 0x1a0]
jae 0x100f20b4
inc eax
mov dword [esi + 0x19c], eax
cmp ecx, 0xffff
jbe 0x100f20c0
mov dword [esi + 0xc], 0x8c
jmp case.0x100f17ed.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 + 0x1b4]
jbe 0x100f20f3
mov dword [esi + 0x1b4], edx
push esi
call fcn.100ef3b0
add esp, 4
test al, al
jne case.0x100f17ed.33
movzx eax, byte [esi + 0x178]
sub eax, 0x2c
je 0x100f213a
sub eax, 1
je 0x100f212c
sub eax, 0x5c
je 0x100f213a
push esi
call fcn.100ef3b0
add esp, 4
test al, al
je 0x100f2104
jmp case.0x100f17ed.33
mov eax, dword [esi + 0x170]
mov dword [ebx + 8], eax
jmp case.0x100f17ed.33
mov dword [esi + 0xc], 0x89
jmp case.0x100f17ed.33
mov ecx, dword [esi + 0x1bc]
test ecx, ecx
jg 0x100f215c
mov dword [esi + 0xc], 0x88
jmp case.0x100f17ed.33
dec ecx
mov dword [esi + 0x1bc], ecx
shl ecx, 4
add ecx, dword [esi + 0x1c4]
dec dword [ecx + 8]
mov byte [esi + 0x180], 0
cmp dword [ecx + 8], 0
jle 0x100f2193
inc dword [esi + 0x1bc]
mov eax, dword [ecx + 0xc]
mov eax, dword [eax + 4]
mov dword [esi + 0x170], eax
jmp case.0x100f17ed.33
push dword [ecx + 4]
push dword [ecx]
push esi
call fcn.100edad0
add esp, 0xc
jmp case.0x100f17ed.33
movzx edi, word [edi]
cmp di, word [esi + 0x2c]
jb 0x100f21c8
cmp byte [esi + 0x249], 0
je case.0x100f17ed.33
mov dword [esi + 0xc], 0x86
jmp case.0x100f17ed.33
test bl, 1
je 0x100f220d
mov eax, dword [esi + 0x34]
mov ecx, edi
push dword [eax + ecx*8 + 4]
push dword [eax + ecx*8]
mov eax, dword [esi + 0x254]
push esi
call eax
add esp, 0xc
mov ebx, eax
mov eax, dword [esi + 0x250]
push 3
push ebx
push esi
cmp eax, fcn.100ef040
jne 0x100f2204
call fcn.100ef040
add esp, 0xc
sub eax, ebx
jmp 0x100f220f
call eax
add esp, 0xc
sub eax, ebx
jmp 0x100f220f
xor eax, eax
push eax
push edi
lea eax, [esi + 0x24]
push eax
mov eax, dword [esi + 0x260]
push esi
call eax
add esp, 0x10
mov word [esi + 0x120], di
mov word [esi + 0x122], di
jmp case.0x100f17ed.33
push esi
call fcn.100ee0b0
jmp 0x100f3ae8
push esi
call fcn.100ee8b0
jmp 0x100f3ae8
push edi
push esi
call fcn.100ee720
add esp, 8
jmp case.0x100f17ed.33
cmp dword [edi], 2
jb 0x100f2277
cmp byte [esi + 0x249], 0
je case.0x100f17ed.33
mov dword [esi + 0xc], 0x86
jmp case.0x100f17ed.33
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x20]
push eax
push esi
call fcn.100ed560
add esp, 0x14
test al, al
jne case.0x100f17ed.33
movzx eax, word [esi + 0x160]
test ax, ax
jne 0x100f22aa
movzx ebx, word [esi + 0x74]
jmp 0x100f22cf
cmp eax, 1
jne 0x100f22cd
movzx eax, word [esi + 0x76]
test ax, ax
jle 0x100f22cd
movsx ecx, ax
mov eax, dword [esi + 0x88]
mov ax, word [eax + ecx*2 - 2]
inc ax
movzx ebx, ax
jmp 0x100f22cf
xor ebx, ebx
xor eax, eax
xor edi, edi
cmp ax, bx
jae case.0x100f17ed.33
xor edx, edx
nop
mov ecx, dword [esi + 0x7c]
cmp dword [ebp - 0x60], ecx
jne 0x100f22ee
cmp word [ebp - 4], di
je 0x100f234c
cmp word [esi + 0x12e], 0
je 0x100f2315
mov eax, dword [esi]
mov eax, dword [eax + 0x60]
cmp dword [eax + 0x40], 0x28
jne 0x100f230c
cmp byte [esi + 0x27b], 0
jne 0x100f2312
mov eax, dword [ebp - 0x20]
add dword [edx + ecx], eax
mov ecx, dword [esi + 0x7c]
cmp word [esi + 0x130], 0
je 0x100f234c
mov eax, dword [esi]
mov eax, dword [eax + 0x60]
cmp dword [eax + 0x40], 0x28
jne 0x100f2345
cmp byte [esi + 0x27b], 0
je 0x100f2345
cmp byte [esi + 0x27c], 0
je 0x100f2345
cmp byte [esi + 0x27d], 0
jne 0x100f234c
mov eax, dword [ebp - 0x24]
add dword [edx + ecx + 4], eax
inc edi
add edx, 8
cmp di, bx
jb 0x100f22e0
jmp case.0x100f17ed.33
push edi
push esi
call fcn.100ee9e0
add esp, 8
jmp case.0x100f17ed.33
push esi
call fcn.100edb50
jmp 0x100f3ae8
movzx ebx, word [edi]
mov ecx, ebx
cmp bx, word [esi + 0x50]
jae 0x100f19ee
movzx eax, word [esi + 0x120]
cmp ax, word [esi + 0x2c]
jae 0x100f19ee
cmp word [esi + 0x15e], 0
mov dword [ebp - 0xc], ecx
lea ecx, [esi + 0x48]
mov dword [ebp - 0x14], ecx
jne 0x100f23f4
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 esi, ebx
mov dword [eax + esi*8], ecx
mov ecx, ebx
mov esi, dword [ebp + 8]
mov dword [eax + ecx*8 + 4], edx
push dword [edi + 4]
mov eax, dword [esi + 0x264]
push ebx
push dword [ebp - 0x14]
push esi
call eax
mov eax, dword [esi + 0x54]
mov edx, ebx
add esp, 0x10
mov ecx, dword [eax + edx*8]
mov edx, dword [eax + edx*8 + 4]
mov eax, dword [esi + 0x58]
mov esi, ebx
mov dword [eax + esi*8], ecx
mov ecx, ebx
mov esi, dword [ebp + 8]
mov dword [eax + ecx*8 + 4], edx
movzx ecx, word [esi + 0x120]
mov eax, dword [esi + 0x34]
lea edx, [eax + ecx*8]
mov eax, dword [esi + 0x58]
mov ecx, dword [ebp - 0xc]
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 + 0x254]
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 + 0x260]
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.0x100f17ed.33
mov word [esi + 0x120], bx
jmp case.0x100f17ed.33
mov edi, dword [esi + 0x134]
cmp dword [esi + 0x10], edi
jl 0x100f2516
mov ax, word [esi + 0x120]
cmp ax, word [esi + 0x2c]
jae 0x100f2516
mov eax, ecx
test edi, edi
jle 0x100f2528
nop
lea eax, [ecx - 1]
mov dword [esi + 0x1c], eax
movzx edi, word [edx + eax*4]
cmp di, word [esi + 0x50]
jb 0x100f24af
cmp byte [esi + 0x249], 0
jne 0x100f19fb
jmp 0x100f24f3
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 + 0x254]
push esi
call eax
neg eax
push eax
push edi
lea eax, [esi + 0x48]
push eax
mov eax, dword [esi + 0x260]
push esi
call eax
mov eax, dword [esi + 0x1c]
add esp, 0x1c
mov edx, dword [esi + 0x18]
dec dword [esi + 0x134]
mov ecx, eax
cmp dword [esi + 0x134], 0
jg 0x100f2490
mov dword [esi + 0x134], 1
mov dword [esi + 0x20], eax
jmp case.0x100f17ed.33
cmp byte [esi + 0x249], 0
mov eax, ecx
je 0x100f2528
mov dword [esi + 0xc], 0x86
mov dword [esi + 0x134], 1
mov dword [esi + 0x20], eax
jmp case.0x100f17ed.33
mov dword [esi + 0x13c], 2
mov dword [esi + 0x250], 0x100ef0b0
jmp case.0x100f17ed.33
movzx ebx, word [edi]
mov ecx, dword [edi + 4]
movzx eax, bx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0xc], eax
cmp bx, word [esi + 0x2c]
jae 0x100f267f
cmp ecx, dword [esi + 0x184]
jae 0x100f267f
mov eax, dword [esi + 0x26c]
cmp eax, 0x100eef00
jne 0x100f2590
mov eax, dword [esi + 0x188]
mov edi, dword [eax + ecx*4]
jmp 0x100f2599
push ecx
push esi
call eax
add esp, 8
mov edi, eax
cmp word [esi + 0x15c], 0
mov eax, dword [ebp - 0xc]
movzx ecx, ax
jne 0x100f2600
movsx eax, word [esi + 0x12e]
push eax
push edi
call fcn.100f0ca0
mov ecx, dword [esi + 0x30]
mov ebx, dword [ebp - 0xc]
movzx edx, bx
mov dword [ecx + edx*8], eax
movsx eax, word [esi + 0x130]
push eax
push edi
call fcn.100f0ca0
mov ecx, dword [esi + 0x30]
add esp, 0x10
movzx edx, bx
mov dword [ecx + edx*8 + 4], eax
mov eax, dword [esi + 0x30]
mov ecx, dword [eax + edx*8]
mov edx, dword [eax + edx*8 + 4]
mov eax, dword [esi + 0x34]
movzx esi, bx
mov dword [eax + esi*8], ecx
mov esi, ebx
mov ebx, dword [ebp - 0x14]
movzx ecx, si
mov esi, dword [ebp + 8]
mov dword [eax + ecx*8 + 4], edx
mov eax, dword [esi + 0x34]
push dword [eax + ecx*8 + 4]
push dword [eax + ecx*8]
mov eax, dword [esi + 0x254]
push esi
call eax
add esp, 0xc
mov ecx, eax
test byte [esi + 0x178], 1
mov dword [ebp - 0xc], ecx
je 0x100f2658
mov eax, edi
sub eax, ecx
cdq
xor eax, edx
sub eax, edx
cmp eax, dword [esi + 0x144]
mov eax, dword [esi + 0x250]
cmovg edi, ecx
push 3
push edi
push esi
cmp eax, fcn.100ef040
jne 0x100f264e
call fcn.100ef040
jmp 0x100f2650
call eax
mov ecx, dword [ebp - 0xc]
mov edi, eax
add esp, 0xc
sub edi, ecx
lea eax, [esi + 0x24]
push edi
push ebx
push eax
mov eax, dword [esi + 0x260]
push esi
call eax
add esp, 0x10
mov word [esi + 0x120], bx
mov word [esi + 0x122], bx
jmp case.0x100f17ed.33
cmp byte [esi + 0x249], 0
je 0x100f268f
mov dword [esi + 0xc], 0x86
mov word [esi + 0x120], bx
mov word [esi + 0x122], bx
jmp case.0x100f17ed.33
mov eax, dword [esi + 0x16c]
mov ecx, dword [esi + 0x170]
movzx ecx, byte [ecx + eax + 1]
mov eax, dword [esi + 0x14]
sub eax, dword [esi + 0x10]
movzx edx, cx
inc eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x28], edx
cmp edx, eax
jb 0x100f26d3
mov dword [esi + 0xc], 0x82
jmp case.0x100f17ed.33
mov ebx, 1
mov eax, ebx
cmp ax, cx
ja 0x100f2704
nop
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, word [ebp - 0x14]
jbe 0x100f26e0
mov edx, dword [ebp - 0x28]
add dword [esi + 0x20], edx
jmp case.0x100f17ed.33
mov eax, dword [esi + 0x16c]
mov ecx, dword [esi + 0x170]
mov dl, byte [ecx + eax + 1]
mov eax, dword [esi + 0x14]
sub eax, dword [esi + 0x10]
movzx ebx, dl
inc eax
mov dword [ebp - 0x28], ebx
cmp ebx, eax
jb 0x100f2739
mov dword [esi + 0xc], 0x82
jmp case.0x100f17ed.33
lea eax, [ecx + 2]
mov dword [esi + 0x170], eax
test dl, dl
je 0x100f278b
nop word [eax + 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 0x100f2750
mov ebx, dword [ebp - 0x28]
add dword [esi + 0x20], ebx
mov byte [esi + 0x180], 0
jmp case.0x100f17ed.33
mov eax, dword [edi]
movzx ecx, word [esi + 0x1e4]
mov dword [ebp - 0x28], eax
cmp eax, ecx
jb 0x100f27c3
cmp byte [esi + 0x249], 0
je case.0x100f17ed.33
mov dword [esi + 0xc], 0x86
jmp case.0x100f17ed.33
cmp dword [esi + 0x164], 3
jne 0x100f282d
mov eax, dword [esi + 0x1e8]
lea ebx, [esi + 0x1f0]
cmp eax, dword [ebx]
je 0x100f282d
movzx eax, word [esi + 0x1ec]
push ecx
push ebx
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0xc]
push 4
push eax
push dword [esi + 8]
call fcn.100f4900
mov ecx, dword [ebp - 0xc]
add esp, 0x14
mov dword [esi + 0xc], eax
mov word [esi + 0x1ec], cx
test eax, eax
jne case.0x100f17ed.33
movzx eax, cx
shl eax, 2
push eax
push dword [esi + 0x1e8]
push dword [ebx]
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [ebx]
add esp, 0xc
mov dword [esi + 0x1e8], eax
mov ecx, dword [esi + 0x1e8]
mov edx, dword [ebp - 0x28]
mov eax, dword [edi + 4]
mov dword [ecx + edx*4], eax
jmp case.0x100f17ed.33
movzx eax, word [esi + 0x1e4]
mov ecx, dword [edi]
cmp ecx, eax
jb 0x100f286e
cmp byte [esi + 0x249], 0
je 0x100f2863
mov dword [esi + 0xc], 0x86
jmp case.0x100f17ed.33
mov dword [edi], 0
jmp case.0x100f17ed.33
mov eax, dword [esi + 0x1e8]
mov eax, dword [eax + ecx*4]
mov dword [edi], eax
jmp case.0x100f17ed.33
mov ebx, dword [edi]
cmp ebx, dword [esi + 0x184]
jb 0x100f28a1
cmp byte [esi + 0x249], 0
je case.0x100f17ed.33
mov dword [esi + 0xc], 0x86
jmp case.0x100f17ed.33
mov eax, dword [esi + 0x270]
mov edi, dword [edi + 4]
cmp eax, 0x100f4950
jne 0x100f28d2
push esi
call fcn.100eed40
add esp, 4
cmp dword [esi + 0xc], 0
jne case.0x100f17ed.33
mov eax, dword [esi + 0x188]
mov dword [eax + ebx*4], edi
jmp case.0x100f17ed.33
push edi
push ebx
push esi
call eax
add esp, 0xc
jmp case.0x100f17ed.33
mov ecx, dword [edi]
cmp ecx, dword [esi + 0x184]
jb 0x100f2902
cmp byte [esi + 0x249], 0
je 0x100f2863
mov dword [esi + 0xc], 0x86
jmp case.0x100f17ed.33
mov eax, dword [esi + 0x26c]
cmp eax, 0x100eef00
jne 0x100f291f
mov eax, dword [esi + 0x188]
mov eax, dword [eax + ecx*4]
mov dword [edi], eax
jmp case.0x100f17ed.33
push ecx
push esi
call eax
add esp, 8
mov dword [edi], eax
jmp case.0x100f17ed.33
movzx eax, word [esi + 0x74]
mov ecx, dword [edi]
cmp ecx, eax
jb 0x100f2950
cmp byte [esi + 0x249], 0
je 0x100f2947
mov dword [esi + 0xc], 0x86
xor eax, eax
mov dword [edi], eax
jmp case.0x100f17ed.33
test bl, 1
je 0x100f2972
mov eax, dword [esi + 0x78]
push dword [eax + ecx*8 + 4]
push dword [eax + ecx*8]
mov eax, dword [esi + 0x258]
push esi
call eax
add esp, 0xc
mov dword [edi], eax
jmp case.0x100f17ed.33
mov eax, dword [esi + 0x7c]
push dword [eax + ecx*8 + 4]
push dword [eax + ecx*8]
mov eax, dword [esi + 0x254]
push esi
call eax
add esp, 0xc
mov dword [edi], eax
jmp case.0x100f17ed.33
movzx eax, word [edi]
mov dword [ebp - 0x28], eax
cmp ax, word [esi + 0x74]
jb 0x100f29b4
cmp byte [esi + 0x249], 0
je case.0x100f17ed.33
mov dword [esi + 0xc], 0x86
jmp case.0x100f17ed.33
movzx ebx, ax
mov eax, dword [esi + 0x7c]
shl ebx, 3
push dword [ebx + eax + 4]
push dword [ebx + eax]
mov eax, dword [esi + 0x254]
push esi
call eax
mov ecx, dword [edi + 4]
sub ecx, eax
lea eax, [esi + 0x6c]
push ecx
push dword [ebp - 0x28]
push eax
mov eax, dword [esi + 0x260]
push esi
call eax
add esp, 0x1c
cmp word [esi + 0x160], 0
jne case.0x100f17ed.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.0x100f17ed.33
movzx eax, word [edi]
movzx edx, word [edi + 4]
cmp ax, word [esi + 0x2c]
jae 0x100f1d80
cmp dx, word [esi + 0x50]
jae 0x100f1d80
test bl, 1
je 0x100f2a5d
mov eax, dword [esi + 0x58]
mov ecx, edx
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 + 0x254]
push esi
call eax
add esp, 0xc
mov dword [edi], eax
jmp case.0x100f17ed.33
cmp word [esi + 0x15c], 0
je 0x100f2b69
cmp word [esi + 0x15e], 0
je 0x100f2b69
mov ecx, eax
mov eax, dword [esi + 0x38]
lea ebx, [eax + ecx*8]
mov eax, dword [esi + 0x5c]
mov ecx, edx
lea ecx, [eax + ecx*8]
mov eax, dword [esi + 0xe0]
mov dword [ebp - 0xc], ecx
cmp eax, dword [esi + 0xe4]
jne 0x100f2aeb
mov eax, dword [ebx + 4]
sub eax, dword [ecx + 4]
push eax
mov eax, dword [ebx]
sub eax, dword [ecx]
push eax
mov eax, dword [esi + 0x258]
push esi
call eax
mov dword [ebp - 0x28], eax
add esp, 0xc
mov eax, dword [esi + 0xe0]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 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 [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
mov dword [edi], eax
jmp case.0x100f17ed.33
mov dword [ebp - 0x14], eax
mov eax, dword [ebx]
sub eax, dword [ecx]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 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 [ebp - 0x34], eax
mov eax, dword [esi + 0xe4]
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x14], eax
mov eax, dword [ebx + 4]
sub eax, dword [ecx + 4]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 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 [ebp - 0x30], eax
push dword [ebp - 0x30]
mov eax, dword [esi + 0x258]
push dword [ebp - 0x34]
push esi
call eax
add esp, 0xc
mov dword [edi], eax
jmp case.0x100f17ed.33
mov ecx, eax
mov eax, dword [esi + 0x30]
lea edx, [eax + ecx*8]
mov eax, dword [esi + 0x54]
movzx ecx, word [edi + 4]
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 + 0x258]
push esi
call eax
add esp, 0xc
mov dword [edi], eax
jmp case.0x100f17ed.33
mov eax, dword [esi + 0x268]
cmp eax, 0x100ed640
jne 0x100f2bb5
movzx eax, word [esi + 0x100]
mov dword [edi], eax
jmp case.0x100f17ed.33
push esi
call eax
add esp, 4
mov dword [edi], eax
jmp case.0x100f17ed.33
mov eax, dword [esi]
mov eax, dword [eax + 0x60]
cmp dword [eax + 0x40], 0x23
jne 0x100f2bf5
mov eax, dword [esi + 0x268]
cmp eax, 0x100ed640
jne 0x100f2be8
movzx eax, word [esi + 0x100]
mov dword [edi], eax
jmp case.0x100f17ed.33
push esi
call eax
add esp, 4
mov dword [edi], eax
jmp case.0x100f17ed.33
mov eax, dword [esi + 0xd8]
mov dword [edi], eax
jmp case.0x100f17ed.33
mov byte [esi + 0x140], 1
jmp case.0x100f17ed.33
mov byte [esi + 0x140], 0
jmp case.0x100f17ed.33
mov dword [esi + 0xc], 0x87
jmp case.0x100f17ed.33
mov eax, dword [edi]
xor ecx, ecx
cmp eax, dword [edi + 4]
setl cl
mov dword [edi], ecx
jmp case.0x100f17ed.33
mov eax, dword [edi]
xor ecx, ecx
cmp eax, dword [edi + 4]
setle cl
mov dword [edi], ecx
jmp case.0x100f17ed.33
mov eax, dword [edi]
xor ecx, ecx
cmp eax, dword [edi + 4]
setg cl
mov dword [edi], ecx
jmp case.0x100f17ed.33
mov eax, dword [edi]
xor ecx, ecx
cmp eax, dword [edi + 4]
setge cl
mov dword [edi], ecx
jmp case.0x100f17ed.33
mov eax, dword [edi]
xor ecx, ecx
cmp eax, dword [edi + 4]
sete cl
mov dword [edi], ecx
jmp case.0x100f17ed.33
mov eax, dword [edi]
xor ecx, ecx
cmp eax, dword [edi + 4]
setne cl
mov dword [edi], ecx
jmp case.0x100f17ed.33
mov ecx, dword [esi + 0x250]
mov eax, dword [edi]
cmp ecx, 0x100ef0b0
jne 0x100f2ceb
mov edx, dword [esi + 0x118]
test eax, eax
js 0x100f2cc8
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.0x100f17ed.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.0x100f17ed.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.0x100f17ed.33
mov ecx, dword [esi + 0x250]
mov eax, dword [edi]
cmp ecx, 0x100ef0b0
jne 0x100f2d62
mov ecx, dword [esi + 0x118]
test eax, eax
js 0x100f2d44
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.0x100f17ed.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.0x100f17ed.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.0x100f17ed.33
cmp dword [edi], 0
jne case.0x100f17ed.33
mov edi, 1
xor bl, bl
nop
push esi
call fcn.100ef3b0
add esp, 4
cmp al, 1
je case.0x100f17ed.33
movzx eax, byte [esi + 0x178]
sub eax, 0x1b
je 0x100f2dbf
sub eax, 0x3d
je 0x100f2dbc
sub eax, 1
jne 0x100f2dc5
sub edi, 1
jmp 0x100f2dc2
inc edi
jmp 0x100f2dc5
cmp edi, 1
sete bl
test bl, bl
je 0x100f2d90
jmp case.0x100f17ed.33
cmp dword [edi], 0
je 0x100f1d90
cmp dword [edi + 4], 0
je 0x100f1d90
mov eax, 1
mov dword [edi], eax
jmp case.0x100f17ed.33
cmp dword [edi], 0
jne 0x100f2e01
cmp dword [edi + 4], 0
jne 0x100f2e01
xor eax, eax
mov dword [edi], eax
jmp case.0x100f17ed.33
mov eax, 1
mov dword [edi], eax
jmp case.0x100f17ed.33
xor eax, eax
cmp dword [edi], eax
sete al
mov dword [edi], eax
jmp case.0x100f17ed.33
mov eax, dword [esi + 0x268]
cmp eax, 0x100ed640
jne 0x100f2e31
movzx eax, word [esi + 0x100]
jmp 0x100f2e3a
push esi
call eax
mov ecx, dword [esi + 0x1c]
add esp, 4
mov edx, dword [edi]
mov ebx, 1
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x28], edx
cmp edx, ebx
jb 0x100f2f55
nop
mov ecx, dword [esi + 0x1c]
cmp ecx, 2
jl 0x100f2f3c
mov eax, dword [esi + 0x18]
add ecx, 0xfffffffe
mov dword [esi + 0x1c], ecx
movzx edi, word [eax + ecx*4 + 4]
mov edx, dword [eax + ecx*4]
cmp di, word [esi + 0x2c]
jae 0x100f2f1a
movzx eax, byte [esi + 0x178]
mov ecx, edx
shr ecx, 4
and ecx, 0xf
sub eax, 0x71
je 0x100f2e95
sub eax, 1
jne 0x100f2e98
add ecx, 0x20
jmp 0x100f2e98
add ecx, 0x10
movzx eax, word [esi + 0x150]
add eax, ecx
cmp dword [ebp - 0xc], eax
jne 0x100f2f15
and edx, 0xf
sub edx, 8
js 0x100f2eaf
inc edx
movzx eax, word [esi + 0x152]
mov ecx, 6
sub ecx, eax
mov eax, dword [esi]
shl edx, cl
mov eax, dword [eax + 0x60]
cmp dword [eax + 0x40], 0x28
jne 0x100f2f03
cmp byte [esi + 0x27b], 0
je 0x100f2f03
cmp byte [esi + 0x27c], 0
je 0x100f2ee5
cmp byte [esi + 0x27d], 0
jne 0x100f2f15
cmp byte [esi + 0x248], 0
je 0x100f2ef8
cmp word [esi + 0x130], 0
jne 0x100f2f03
mov eax, dword [esi + 0x3c]
mov ecx, edi
test byte [ecx + eax], 0x10
je 0x100f2f15
push edx
push edi
lea eax, [esi + 0x24]
push eax
mov eax, dword [esi + 0x260]
push esi
call eax
add esp, 0x10
mov ecx, dword [esi + 0x1c]
jmp 0x100f2f2a
cmp byte [esi + 0x249], 0
je 0x100f2f2a
mov dword [esi + 0xc], 0x86
inc ebx
cmp ebx, dword [ebp - 0x28]
jbe 0x100f2e50
mov dword [esi + 0x20], ecx
jmp case.0x100f17ed.33
cmp byte [esi + 0x249], 0
je 0x100f2f4c
mov dword [esi + 0xc], 0x81
mov dword [esi + 0x1c], 0
xor ecx, ecx
mov dword [esi + 0x20], ecx
jmp case.0x100f17ed.33
mov ax, word [edi]
mov word [esi + 0x150], ax
jmp case.0x100f17ed.33
mov eax, dword [edi]
cmp eax, 6
jbe 0x100f2f7f
mov dword [esi + 0xc], 0x84
jmp case.0x100f17ed.33
mov word [esi + 0x152], ax
jmp case.0x100f17ed.33
mov eax, dword [edi + 4]
add dword [edi], eax
jmp case.0x100f17ed.33
mov eax, dword [edi + 4]
sub dword [edi], eax
jmp case.0x100f17ed.33
mov eax, dword [edi + 4]
test eax, eax
jne 0x100f2fb2
mov dword [esi + 0xc], 0x85
jmp case.0x100f17ed.33
push eax
push 0x40
push dword [edi]
call fcn.100dc900
add esp, 0xc
mov dword [edi], eax
jmp case.0x100f17ed.33
push 0x40
push dword [edi + 4]
push dword [edi]
call fcn.100dc820
add esp, 0xc
mov dword [edi], eax
jmp case.0x100f17ed.33
mov eax, dword [edi]
test eax, eax
jns case.0x100f17ed.33
neg eax
mov dword [edi], eax
jmp case.0x100f17ed.33
mov eax, dword [edi]
neg eax
mov dword [edi], eax
jmp case.0x100f17ed.33
and dword [edi], 0xffffffc0
jmp case.0x100f17ed.33
mov eax, dword [edi]
add eax, 0x3f
and eax, 0xffffffc0
mov dword [edi], eax
jmp case.0x100f17ed.33
mov ecx, dword [edi]
and eax, 3
mov edx, dword [esi + 0x250]
push eax
push ecx
push esi
cmp edx, fcn.100ef040
jne 0x100f3036
call fcn.100ef040
add esp, 0xc
mov dword [edi], eax
jmp case.0x100f17ed.33
call edx
add esp, 0xc
mov dword [edi], eax
jmp case.0x100f17ed.33
mov ecx, dword [edi]
and eax, 3
mov eax, dword [esi + eax*4 + 0x10c]
test ecx, ecx
js 0x100f3062
add eax, ecx
xor ecx, ecx
test eax, eax
cmovns ecx, eax
mov dword [edi], ecx
jmp case.0x100f17ed.33
sub ecx, eax
xor eax, eax
test ecx, ecx
cmovg ecx, eax
mov dword [edi], ecx
jmp case.0x100f17ed.33
mov ebx, dword [edi]
cmp ebx, dword [esi + 0x184]
jb 0x100f3095
cmp byte [esi + 0x249], 0
je case.0x100f17ed.33
mov dword [esi + 0xc], 0x86
jmp case.0x100f17ed.33
mov eax, dword [esi + 0x108]
mov dword [ebp - 0x14], eax
mov eax, dword [edi + 4]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 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 [ebp - 0x38], eax
mov ecx, dword [esi + 0x188]
mov eax, dword [ebp - 0x38]
mov dword [ecx + ebx*4], eax
jmp case.0x100f17ed.33
push edi
push esi
call fcn.100ed980
add esp, 8
jmp case.0x100f17ed.33
mov eax, dword [esi + 0x268]
cmp eax, 0x100ed640
jne 0x100f3100
movzx edx, word [esi + 0x100]
mov dword [ebp - 0x14], edx
jmp 0x100f310b
push esi
call eax
add esp, 4
mov dword [ebp - 0x14], eax
mov edx, eax
mov eax, dword [edi]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0xc], 1
cmp eax, 1
jb 0x100f31f7
mov ecx, dword [esi + 0x1c]
cmp ecx, 2
jl 0x100f31e0
mov eax, dword [esi + 0x18]
add ecx, 0xfffffffe
mov dword [esi + 0x1c], ecx
mov ebx, dword [eax + ecx*4 + 4]
mov edi, dword [eax + ecx*4]
cmp ebx, dword [esi + 0x184]
jb 0x100f3156
cmp byte [esi + 0x249], 0
jne 0x100f19fb
jmp 0x100f31cc
movzx eax, byte [esi + 0x178]
mov ecx, edi
shr ecx, 4
and ecx, 0xf
sub eax, 0x74
je 0x100f3174
sub eax, 1
jne 0x100f3177
add ecx, 0x20
jmp 0x100f3177
add ecx, 0x10
movzx eax, word [esi + 0x150]
add eax, ecx
cmp edx, eax
jne 0x100f31cc
and edi, 0xf
sub edi, 8
js 0x100f318d
inc edi
movzx eax, word [esi + 0x152]
mov ecx, 6
sub ecx, eax
mov eax, dword [esi + 0x274]
shl edi, cl
cmp eax, 0x100eedf0
jne 0x100f31c4
push esi
call fcn.100eed40
add esp, 4
cmp dword [esi + 0xc], 0
jne 0x100f31cc
mov eax, dword [esi + 0x188]
add dword [eax + ebx*4], edi
jmp 0x100f31cc
push edi
push ebx
push esi
call eax
add esp, 0xc
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x28]
ja 0x100f31f7
mov edx, dword [ebp - 0x14]
jmp 0x100f3120
cmp byte [esi + 0x249], 0
je 0x100f31f0
mov dword [esi + 0xc], 0x81
mov dword [esi + 0x1c], 0
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x20], eax
jmp case.0x100f17ed.33
push dword [edi]
push 0x4000
push esi
call fcn.100ef1c0
add esp, 0xc
mov dword [esi + 0x13c], 6
mov dword [esi + 0x250], 0x100eefe0
jmp case.0x100f17ed.33
push dword [edi]
push 0x2d41
push esi
call fcn.100ef1c0
add esp, 0xc
mov dword [esi + 0x13c], 7
mov dword [esi + 0x250], fcn.100ef040
jmp case.0x100f17ed.33
cmp dword [edi + 4], 0
je case.0x100f17ed.33
jmp case.0x100f17ed.28
cmp dword [edi + 4], 0
jne case.0x100f17ed.33
jmp case.0x100f17ed.28
mov dword [esi + 0x13c], 5
mov dword [esi + 0x250], fcn.100eefb0
jmp case.0x100f17ed.33
mov dword [esi + 0x13c], 4
mov dword [esi + 0x250], 0x100ef180
jmp case.0x100f17ed.33
mov dword [esi + 0x13c], 3
mov dword [esi + 0x250], 0x100eef70
jmp case.0x100f17ed.33
mov eax, dword [esi]
mov eax, dword [eax + 0x60]
cmp dword [eax + 0x40], 0x28
jne 0x100f32e9
cmp byte [esi + 0x27b], 0
je 0x100f32e9
cmp byte [esi + 0x27c], 0
je 0x100f32e9
cmp byte [esi + 0x27d], 0
mov eax, ecx
jne 0x100f2528
mov edi, dword [esi + 0x134]
mov eax, ecx
cmp dword [esi + 0x10], edi
jge 0x100f331c
cmp byte [esi + 0x249], 0
je 0x100f2528
mov dword [esi + 0xc], 0x81
mov dword [esi + 0x134], 1
mov dword [esi + 0x20], eax
jmp case.0x100f17ed.33
test edi, edi
jle 0x100f2528
lea eax, [ecx - 1]
mov dword [esi + 0x1c], eax
movzx ecx, word [edx + eax*4]
cmp cx, word [esi + 0x98]
jb 0x100f3346
cmp byte [esi + 0x249], 0
jne 0x100f19fb
jmp 0x100f3356
mov eax, dword [esi + 0xa8]
xor byte [eax + ecx], 1
mov eax, dword [esi + 0x1c]
mov edx, dword [esi + 0x18]
dec dword [esi + 0x134]
mov ecx, eax
cmp dword [esi + 0x134], 0
jg 0x100f3324
mov dword [esi + 0x134], 1
mov dword [esi + 0x20], eax
jmp case.0x100f17ed.33
mov eax, dword [esi]
mov eax, dword [eax + 0x60]
cmp dword [eax + 0x40], 0x28
jne 0x100f33a3
cmp byte [esi + 0x27b], 0
je 0x100f33a3
cmp byte [esi + 0x27c], 0
je 0x100f33a3
cmp byte [esi + 0x27d], 0
jne case.0x100f17ed.33
movzx ebx, word [edi + 4]
movzx ecx, word [esi + 0x98]
movzx eax, word [edi]
cmp bx, cx
jae 0x100f19ee
cmp ax, cx
jae 0x100f19ee
mov edx, eax
cmp ax, bx
ja case.0x100f17ed.33
nop
mov eax, dword [esi + 0xa8]
movzx ecx, dx
inc edx
or byte [ecx + eax], 1
cmp dx, bx
jbe 0x100f33d0
jmp case.0x100f17ed.33
mov eax, dword [esi]
mov eax, dword [eax + 0x60]
cmp dword [eax + 0x40], 0x28
jne 0x100f3412
cmp byte [esi + 0x27b], 0
je 0x100f3412
cmp byte [esi + 0x27c], 0
je 0x100f3412
cmp byte [esi + 0x27d], 0
jne case.0x100f17ed.33
movzx ebx, word [edi + 4]
movzx ecx, word [esi + 0x98]
movzx eax, word [edi]
cmp bx, cx
jae 0x100f19ee
cmp ax, cx
jae 0x100f19ee
mov edx, eax
cmp ax, bx
ja case.0x100f17ed.33
nop dword [eax]
mov eax, dword [esi + 0xa8]
movzx ecx, dx
inc edx
and byte [ecx + eax], 0xfe
cmp dx, bx
jbe 0x100f3440
jmp case.0x100f17ed.33
mov eax, dword [edi]
movzx ecx, al
cmp ecx, 0xff
jne 0x100f3471
mov byte [esi + 0x155], 1
jmp case.0x100f17ed.33
test al, al
je 0x100f350d
test eax, 0x100
je 0x100f3492
movzx eax, word [esi + 0x100]
cmp eax, ecx
ja 0x100f3492
mov byte [esi + 0x155], 1
test dword [edi], 0x200
je 0x100f34aa
cmp byte [esi + 0x11d], 0
je 0x100f34aa
mov byte [esi + 0x155], 1
test dword [edi], 0x400
je 0x100f34c2
cmp byte [esi + 0x11e], 0
je 0x100f34c2
mov byte [esi + 0x155], 1
test dword [edi], 0x800
je 0x100f34dc
movzx eax, word [esi + 0x100]
cmp eax, ecx
jbe 0x100f34dc
mov byte [esi + 0x155], 0
test dword [edi], 0x1000
je 0x100f34f4
cmp byte [esi + 0x11d], 0
je 0x100f34f4
mov byte [esi + 0x155], 0
test dword [edi], 0x2000
je case.0x100f17ed.33
cmp byte [esi + 0x11e], 0
je case.0x100f17ed.33
mov byte [esi + 0x155], 0
jmp case.0x100f17ed.33
movzx ecx, word [edi]
movzx eax, word [edi + 4]
cmp cx, word [esi + 0x50]
jae 0x100f19ee
cmp ax, word [esi + 0x74]
jae 0x100f19ee
mov edx, ecx
mov ecx, dword [esi + 0x54]
shl edx, 3
add ecx, edx
mov dword [ebp - 0xc], edx
mov edx, eax
mov eax, dword [esi + 0x78]
shl edx, 3
add eax, edx
mov dword [ebp - 0x3c], edx
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
mov edi, ecx
mov dword [ebp - 0x14], ecx
sub edx, dword [eax]
mov eax, dword [eax + 4]
sub edi, eax
mov dword [ebp - 0x28], eax
test edx, edx
jne 0x100f3571
test edi, edi
jne 0x100f3571
mov edx, 0x4000
xor bl, bl
lea eax, [esi + 0x126]
test bl, 1
push eax
mov eax, edx
mov cl, bl
cmove eax, edi
push eax
mov eax, dword [ebp - 0x28]
sub eax, dword [ebp - 0x14]
test cl, 1
cmove eax, edx
push eax
call fcn.100eee60
mov ecx, dword [esi + 0x58]
add esp, 0xc
add ecx, dword [ebp - 0xc]
mov eax, dword [esi + 0x7c]
add eax, dword [ebp - 0x3c]
mov edi, dword [ecx]
sub edi, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [ecx + 4]
mov ecx, eax
sub ecx, edx
mov dword [ebp - 0x3c], eax
test edi, edi
jne 0x100f35c4
test ecx, ecx
jne 0x100f35c4
mov edi, 0x4000
xor bl, bl
lea eax, [esi + 0x12a]
and bl, 1
push eax
mov eax, edi
cmove eax, ecx
sub edx, dword [ebp - 0x3c]
test bl, bl
push eax
cmove edx, edi
push edx
call fcn.100eee60
push esi
call fcn.100ed420
add esp, 0x10
jmp case.0x100f17ed.33
mov ebx, dword [edi]
xor ecx, ecx
mov edx, dword [esi]
test bl, 1
je 0x100f3601
mov eax, dword [edx + 0x60]
mov ecx, dword [eax + 0x40]
mov eax, edx
test bl, 2
je 0x100f3617
cmp byte [esi + 0x11d], 0
je 0x100f3617
or ecx, 0x100
test bl, 4
je 0x100f362b
cmp byte [esi + 0x11e], 0
je 0x100f362b
or ecx, 0x200
test bl, 8
je 0x100f3641
cmp dword [eax + 0x2e0], 0
mov edx, eax
je 0x100f3641
or ecx, 0x400
test bl, 0x20
je 0x100f3655
cmp byte [esi + 0x278], 0
je 0x100f3655
or ecx, 0x1000
mov eax, dword [edx + 0x60]
cmp dword [eax + 0x40], 0x28
jne 0x100f36d9
cmp byte [esi + 0x279], 0
je 0x100f36d9
mov edx, ecx
or edx, 0x2000
test bl, 0x40
cmove edx, ecx
mov ecx, edx
mov dword [ebp - 0xc], ecx
test ebx, 0x100
je 0x100f369f
cmp byte [esi + 0x27a], 0
mov dword [ebp - 0xc], ecx
je 0x100f369f
or ecx, 0x8000
mov dword [ebp - 0xc], ecx
or ecx, 0x20000
test ebx, 0x400
cmove ecx, dword [ebp - 0xc]
mov edx, ecx
or edx, 0x40000
test ebx, 0x800
cmove edx, ecx
mov ecx, edx
test ebx, 0x1000
je 0x100f36d9
cmp byte [esi + 0x27e], 0
je 0x100f36d9
or ecx, 0x80000
mov dword [edi], ecx
jmp case.0x100f17ed.33
cmp dword [esi + 0x164], 3
jne 0x100f36f5
mov dword [esi + 0xc], 0x9c
jmp case.0x100f17ed.33
mov ebx, dword [esi + 0x1b0]
test ebx, ebx
je 0x100f3721
mov eax, dword [esi + 0x1a8]
lea eax, [eax + eax*2]
lea eax, [ebx + eax*8]
cmp ebx, eax
jae 0x100f371f
mov ecx, dword [edi]
cmp dword [ebx + 0xc], ecx
je 0x100f371d
add ebx, 0x18
cmp ebx, eax
jb 0x100f3711
cmp ebx, eax
jne 0x100f373a
mov eax, dword [esi + 0x1a8]
cmp eax, dword [esi + 0x1ac]
jae 0x100f37c4
inc eax
mov dword [esi + 0x1a8], eax
mov eax, dword [edi]
cmp eax, 0xff
ja 0x100f37c4
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 + 0x1b8]
jbe 0x100f3776
movzx eax, al
mov dword [esi + 0x1b8], eax
push esi
call fcn.100ef3b0
add esp, 4
test al, al
jne case.0x100f17ed.33
nop word [eax + eax]
movzx eax, byte [esi + 0x178]
sub eax, 0x2c
je 0x100f213a
sub eax, 1
je 0x100f212c
sub eax, 0x5c
je 0x100f213a
push esi
call fcn.100ef3b0
add esp, 4
test al, al
je 0x100f3790
jmp case.0x100f17ed.33
mov dword [esi + 0xc], 0x8d
jmp case.0x100f17ed.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.0x100f17ed.33
mov eax, dword [edi + 4]
cmp eax, dword [edi]
jle case.0x100f17ed.33
mov dword [edi], eax
jmp case.0x100f17ed.33
mov eax, dword [edi + 4]
cmp eax, dword [edi]
jge case.0x100f17ed.33
mov dword [edi], eax
jmp case.0x100f17ed.33
mov eax, dword [edi]
test eax, eax
js case.0x100f17ed.33
movzx eax, ax
mov dword [esi + 0x158], eax
jmp case.0x100f17ed.33
mov ebx, dword [edi + 4]
mov edx, dword [edi]
lea eax, [ebx - 1]
cmp eax, 2
ja 0x100f19ee
lea ecx, [ebx - 1]
mov eax, 1
shl eax, cl
test edx, edx
je 0x100f385d
cmp edx, eax
je 0x100f385d
cmp byte [esi + 0x249], 0
je case.0x100f17ed.33
mov dword [esi + 0xc], 0x86
jmp case.0x100f17ed.33
mov ecx, dword [esi + 0x164]
cmp ecx, 2
jne 0x100f387d
not al
and al, byte [esi + 0x154]
or al, dl
mov byte [esi + 0x154], al
jmp case.0x100f17ed.33
cmp ecx, 3
jne 0x100f38a6
cmp ebx, ecx
jne 0x100f38a6
mov eax, dword [esi]
mov eax, dword [eax + 0x60]
cmp dword [eax + 0x40], 0x28
jne case.0x100f17ed.33
cmp edx, 4
setne al
mov byte [esi + 0x27b], al
jmp case.0x100f17ed.33
cmp byte [esi + 0x249], 0
jne 0x100f19fb
jmp case.0x100f17ed.33
mov eax, dword [esi]
mov ecx, dword [eax + 0x2e0]
test ecx, ecx
je case.0x100f17ed.40
mov eax, dword [esi + 0x14]
sub eax, dword [esi + 0x10]
mov edx, dword [ecx]
inc eax
mov ecx, dword [ecx + 8]
mov dword [ebp - 0x14], ecx
cmp edx, eax
jb 0x100f38e7
mov dword [esi + 0xc], 0x82
jmp case.0x100f17ed.33
test ecx, ecx
je 0x100f39a9
xor ebx, ebx
test edx, edx
je case.0x100f17ed.33
cmp edx, 0x10
jb 0x100f3977
lea eax, [edx - 1]
lea eax, [ecx + eax*4]
cmp edi, eax
ja 0x100f3916
lea eax, [edx - 1]
lea eax, [edi + eax*4]
cmp eax, ecx
jae 0x100f3977
mov esi, dword [ebp - 0x14]
mov eax, edx
and eax, 0xfffffff0
add ecx, 0x30
mov dword [ebp - 0x28], eax
sub esi, edi
mov eax, 2
mov dword [ebp - 0x3c], esi
movd xmm1, eax
lea eax, [edi + 0x10]
movups xmm0, xmmword [ecx - 0x30]
add ebx, 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 ebx, dword [ebp - 0x28]
jb 0x100f3935
mov esi, dword [ebp + 8]
cmp ebx, edx
jae case.0x100f17ed.33
mov esi, dword [ebp - 0x14]
lea ecx, [edi + ebx*4]
sub esi, edi
sub edx, ebx
nop dword [eax]
mov eax, dword [ecx + esi]
lea ecx, [ecx + 4]
sar eax, 2
mov dword [ecx - 4], eax
sub edx, 1
jne 0x100f3990
mov esi, dword [ebp + 8]
jmp case.0x100f17ed.33
test edx, edx
je case.0x100f17ed.33
mov ecx, edx
xor eax, eax
rep stosd dword es:[edi], eax
jmp case.0x100f17ed.33
mov eax, dword [esi]
cmp dword [eax + 0x2e0], 0
je case.0x100f17ed.40
mov dword [edi], 0x11
jmp case.0x100f17ed.33
cmp bl, 0xe0
jb 0x100f39ea
push edi
push esi
call fcn.100ee4f0
add esp, 8
jmp case.0x100f17ed.33
cmp bl, 0xc0
jb 0x100f39fe
push edi
push esi
call fcn.100ee290
add esp, 8
jmp case.0x100f17ed.33
cmp bl, 0xb8
jb 0x100f3a84
movzx eax, bl
mov ecx, 0xb7
sub ax, cx
movzx ecx, ax
mov eax, dword [esi + 0x14]
mov ebx, ecx
sub eax, dword [esi + 0x10]
inc eax
cmp ebx, eax
jb 0x100f3a2e
mov dword [esi + 0xc], 0x82
jmp case.0x100f17ed.33
inc dword [esi + 0x170]
xor eax, eax
cmp ax, cx
jae 0x100f3a78
nop dword [eax + 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 0x100f3a40
mov byte [esi + 0x180], 0
jmp case.0x100f17ed.33
cmp bl, 0xb0
jb case.0x100f17ed.40
movzx eax, bl
mov ecx, 0xaf
sub ax, cx
mov ecx, dword [esi + 0x14]
sub ecx, dword [esi + 0x10]
movzx edx, ax
inc ecx
movzx eax, dx
mov dword [ebp - 0x3c], edx
cmp eax, ecx
jb 0x100f3ab1
mov dword [esi + 0xc], 0x82
jmp case.0x100f17ed.33
mov ebx, 1
mov eax, ebx
cmp ax, dx
ja case.0x100f17ed.33
nop dword [eax]
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, word [ebp - 0x3c]
jbe 0x100f3ac0
jmp case.0x100f17ed.33
push esi
call fcn.100eec90
add esp, 4
mov eax, dword [esi + 0xc]
test eax, eax
je 0x100f3b8d
cmp eax, 0x80
jne 0x100f3c62
mov ecx, dword [esi + 0x1b0]
test ecx, ecx
je 0x100f3b19
mov eax, dword [esi + 0x1a8]
lea eax, [eax + eax*2]
lea edx, [ecx + eax*8]
jmp 0x100f3b20
xor edx, edx
nop dword [eax + eax]
cmp ecx, edx
jae 0x100f3bfe
cmp byte [ecx + 0x10], 0
je 0x100f3b39
mov al, byte [esi + 0x178]
cmp al, byte [ecx + 0xc]
je 0x100f3b3e
add ecx, 0x18
jmp 0x100f3b20
mov edx, dword [esi + 0x1bc]
cmp edx, dword [esi + 0x1c0]
jge 0x100f3beb
mov eax, dword [esi + 0x168]
shl edx, 4
add edx, dword [esi + 0x1c4]
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.100edad0
add esp, 0xc
cmp al, 1
je 0x100f3c62
jmp 0x100f3bba
cmp byte [esi + 0x180], 0
mov eax, dword [esi + 0x20]
mov dword [esi + 0x10], eax
je 0x100f3ba8
mov eax, dword [esi + 0x17c]
add dword [esi + 0x170], eax
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
cmp eax, 0xf4240
ja 0x100f3c36
mov eax, dword [esi + 0x170]
cmp eax, dword [esi + 0x174]
jge 0x100f3c11
cmp byte [esi + 0x200], 0
jne 0x100f3c2d
lea edx, [esi + 0xc]
jmp 0x100f16d0
mov eax, dword [ebp - 8]
pop edi
pop esi
pop ebx
mov dword [eax], 0x81
mov eax, dword [eax]
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 8]
pop edi
mov dword [esi + 0xc], 0x86
pop esi
mov eax, dword [eax]
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 8]
pop edi
mov dword [esi + 0xc], 0x80
pop esi
mov eax, dword [eax]
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0x1bc], 0
jle 0x100f3c2d
mov eax, dword [ebp - 8]
pop edi
mov dword [esi + 0xc], 0x83
pop esi
mov eax, dword [eax]
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 8]
pop edi
mov dword [esi + 0xc], 0x8b
pop esi
mov eax, dword [eax]
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 8]
pop edi
mov dword [esi + 0xc], 0x82
pop esi
mov eax, dword [eax]
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [edx], 0x83
mov eax, dword [ebp - 8]
mov eax, dword [eax]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret