Function at 0x100f9220
Capabilities:
Inspect section memory permissions

Disassembly:
sub esp, 0x94
mov eax, dword [0x101ed004]
xor eax, esp
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x98]
mov dword [esp], eax
mov eax, dword [ecx + 0x1b0]
push ebx
push ebp
push esi
mov esi, dword [ecx + 0x1a0]
push edi
mov dword [esp + 0x48], ecx
mov dword [esp + 0x1c], edx
mov edi, dword [eax + esi*4]
xor esi, esi
mov dword [esp + 0x14], edi
mov ecx, dword [edi + 0x18]
mov eax, dword [edi + 0xb0]
mov dword [esp + 0x28], eax
mov eax, 1
mov dword [esp + 0x24], ecx
shr ecx, 0x12
and ecx, 0x1f
shl eax, cl
mov ecx, esi
add eax, 2
mov dword [esp + 0x40], eax
xor eax, eax
mov dword [esp + 0x34], eax
movzx eax, byte [edi + 0xa]
cdq
mov dword [esp + 0x20], eax
mov dword [esp + 0x5c], edx
mov edx, dword [edi + 0x10]
mov eax, edx
mov ebx, dword [edi + 0x14]
add eax, ebx
mov ebp, dword [edi + 0x80]
adc ecx, ecx
add eax, esi
mov dword [esp + 0x30], eax
adc ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
add eax, ebp
mov dword [esp + 0x44], eax
mov eax, esi
adc eax, dword [edi + 0x84]
cmp eax, ecx
jl 0x100f9308
jg 0x100f92d7
mov eax, dword [esp + 0x44]
cmp eax, dword [esp + 0x30]
jbe 0x100f9308
mov ecx, edx
mov eax, esi
sub ecx, ebp
sbb eax, dword [edi + 0x84]
add ecx, ebx
adc eax, 0
add ecx, esi
adc eax, dword [esp + 0x20]
test eax, eax
jg 0x100f9308
jl 0x100f92fa
cmp ecx, dword [esp + 0x10]
jae 0x100f9308
xor ecx, ecx
sub ecx, ebp
add ecx, edx
add ecx, ebx
mov dword [esp + 0x10], ecx
jmp 0x100f930c
mov ecx, dword [esp + 0x10]
add edx, esi
adc esi, dword [esp + 0x20]
cmp esi, dword [edi + 0x84]
jg 0x100fa244
jl 0x100f9328
cmp edx, ebp
ja 0x100fa244
cmp ebx, ecx
jb 0x100fa244
cmp dword [edi + 0x90], 0
jne 0x100fa24e
mov ebx, dword [esp + 0x24]
mov eax, ebx
and eax, 8
je 0x100f936e
cmp dword [edi + 0x74], 0
jne 0x100f936e
mov edx, dword [esp + 0x40]
mov ebp, ebx
and ebp, 0x40000004
mov dword [esp + 0x44], ebp
lea edx, [edx*2 + 0x80]
mov dword [esp + 0x40], edx
mov edx, dword [edi + 0x74]
jmp 0x100f9385
mov edx, dword [edi + 0x74]
mov ebp, ebx
and ebp, 0x40000004
mov dword [esp + 0x44], ebp
test edx, edx
jne 0x100f95d0
test ebp, ebp
je 0x100f946a
mov ebp, dword [esp + 0x1c]
lea ebx, [ecx*4]
add ebx, ebp
mov dword [esp + 0x30], ebx
test eax, eax
je 0x100f93d6
mov dword [esp + 0x18], ecx
mov esi, ebp
cmp ebp, ebx
jae 0x100f93e7
nop dword [eax]
push 0
xor edx, edx
mov ecx, edi
call fcn.1010d850
mov dword [esi], eax
add esi, 4
cmp eax, 0x80000000
je 0x100f93cd
cmp esi, ebx
jb 0x100f93b0
jmp 0x100f93e7
mov eax, esi
sub eax, ebp
sar eax, 2
jmp 0x100f93e3
push ecx
mov edx, ebp
mov ecx, edi
call fcn.1010df20
add esp, 4
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x14]
add edi, 0x168
mov esi, dword [ecx + 0x8c]
test esi, esi
je 0x100f9419
mov ebx, dword [esp + 0x10]
nop
push ebx
mov edx, ebp
mov ecx, edi
call fcn.100fa2b0
add esp, 4
add edi, 0x60
sub esi, 1
jne 0x100f9400
mov ebx, dword [esp + 0x30]
mov ecx, ebp
cmp ebp, ebx
jae 0x100f9444
mov edi, dword [esp + 0x40]
mov esi, dword [ecx]
mov eax, esi
cdq
xor eax, edx
sub eax, edx
cmp eax, edi
jg 0x100f945d
mov eax, dword [esp + 0x28]
add ecx, 4
lea esi, [esi + eax*2]
add esi, eax
mov dword [esp + 0x28], esi
cmp ecx, ebx
jb 0x100f9423
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
cmp ebx, eax
je 0x100fa03c
jmp 0x100f9fd2
mov ebx, ecx
sub ebx, ebp
sar ebx, 2
mov dword [esp + 0x18], ebx
jmp 0x100f9448
mov esi, ebp
test edx, edx
jne 0x100f95d2
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x14]
lea edi, [ebx + ecx*8]
mov dword [esp + 0x30], edi
test eax, eax
je 0x100f94d1
mov dword [esp + 0x18], ecx
mov esi, ebx
cmp ebx, edi
jae 0x100f94e2
push 0
xor edx, edx
mov ecx, ebp
call fcn.1010d850
mov dword [esi], eax
cmp eax, 0x80000000
je 0x100f94c6
push 0
mov edx, 1
mov ecx, ebp
call fcn.1010d850
mov dword [esi + 4], eax
cmp eax, 0x80000000
je 0x100f94c6
add esi, 8
cmp esi, edi
jb 0x100f9491
jmp 0x100f94e2
mov eax, esi
sub eax, ebx
sar eax, 2
shr eax, 1
jmp 0x100f94de
push ecx
mov edx, ebx
mov ecx, ebp
call fcn.1010df20
add esp, 4
mov dword [esp + 0x18], eax
mov esi, dword [ebp + 0x8c]
lea ebx, [ebp + 0x168]
mov ebp, dword [esp + 0x1c]
test esi, esi
je 0x100f9519
mov edi, dword [esp + 0x10]
nop word [eax + eax]
push edi
mov edx, ebp
mov ecx, ebx
call fcn.100fa4f0
add esp, 4
add ebx, 0x60
sub esi, 1
jne 0x100f9500
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x10]
and eax, 7
test byte [esp + 0x24], 0x10
mov dword [esp + 0x34], eax
je 0x100f9596
mov edx, ebp
cmp ebp, edi
jae 0x100f9444
mov esi, dword [esp + 0x28]
nop dword [eax]
mov ecx, dword [edx]
mov eax, ecx
sar eax, 1
sub dword [edx + 4], eax
mov eax, dword [edx + 4]
add ecx, eax
add eax, ecx
mov dword [edx], ecx
add edx, 8
lea eax, [eax + ecx*2]
lea eax, [eax + esi*8]
add esi, eax
cmp edx, edi
jb 0x100f9540
mov dword [esp + 0x28], esi
cmp ebp, edi
jae 0x100f9444
mov ebx, dword [esp + 0x40]
mov ecx, ebp
mov eax, dword [ecx]
cdq
xor eax, edx
sub eax, edx
cmp eax, ebx
jg 0x100f95be
mov eax, dword [ecx + 4]
cdq
xor eax, edx
sub eax, edx
cmp eax, ebx
jg 0x100f95be
add ecx, 0x40
cmp ecx, edi
jb 0x100f9573
jmp 0x100f9444
mov ecx, ebp
cmp ebp, edi
jae 0x100f9444
mov esi, dword [esp + 0x28]
mov eax, dword [ecx]
lea eax, [eax + eax*2]
add eax, dword [ecx + 4]
add ecx, 8
add eax, esi
lea esi, [eax + esi*8]
cmp ecx, edi
jb 0x100f95a4
mov dword [esp + 0x28], esi
jmp 0x100f956d
mov ebx, ecx
sub ebx, ebp
sar ebx, 2
shr ebx, 1
mov dword [esp + 0x18], ebx
jmp 0x100f9448
mov esi, ebp
test esi, esi
setne cl
test bl, 8
setne al
test al, cl
je 0x100f97e6
mov eax, dword [esp + 0x10]
xor ebx, ebx
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x20], ebp
mov dword [esp + 0x18], ebx
test eax, eax
je 0x100f9450
xor ebp, ebp
lea eax, [esp + 0x58]
xor edx, edx
push eax
mov ecx, edi
call fcn.1010d850
mov edi, eax
cmp edi, 0x80000000
je 0x100f9fca
mov ebx, dword [esp + 0x14]
mov eax, dword [ebx + 0x8c]
lea esi, [ebx + 0x168]
test eax, eax
je 0x100f96db
mov ecx, dword [esi]
dec eax
mov dword [esp + 0x30], eax
cmp ecx, 8
jle 0x100f9666
mov eax, dword [esi + 0x10]
mov ebx, dword [esi + 0x14]
test cl, 1
je 0x100f9658
lea edx, [eax + eax]
mov dword [esi + 0x14], eax
sub edx, ebx
xor ebx, ebx
jmp 0x100f9670
lea edx, [eax + eax*2]
mov dword [esi + 0x14], eax
sub edx, ebx
sar edx, 1
xor ebx, ebx
jmp 0x100f9670
mov edx, dword [esi + ebp*4 + 0x10]
lea ebx, [ecx + ebp]
and ebx, 7
mov ebp, dword [esi + 8]
movsx eax, dx
cmp edx, eax
je 0x100f9695
mov ecx, edx
movzx eax, dx
imul eax, ebp
sar ecx, 9
and ecx, 0xffffff80
imul ecx, ebp
sar eax, 9
inc eax
add eax, ecx
sar eax, 1
jmp 0x100f96a2
mov eax, ebp
imul eax, edx
add eax, 0x200
sar eax, 0xa
lea ecx, [eax + edi]
test edx, edx
je 0x100f96be
test edi, edi
je 0x100f96be
mov eax, dword [esi + 4]
xor edx, edi
sar edx, 0x1f
xor eax, edx
sub eax, edx
add eax, ebp
mov dword [esi + 8], eax
mov eax, dword [esp + 0x30]
mov edi, ecx
mov ebp, dword [esp + 0x34]
mov dword [esi + ebx*4 + 0x10], ecx
add esi, 0x60
test eax, eax
jne 0x100f9635
mov ebx, dword [esp + 0x14]
inc ebp
and ebp, 7
test byte [esp + 0x24], 0x40
mov dword [esp + 0x34], ebp
je 0x100f9797
mov edx, dword [ebx + 0x130]
add edx, dword [ebx + 0x128]
mov esi, dword [ebx + 0x138]
mov ecx, esi
mov dword [ebx + 0x128], edx
movsx eax, si
sar edx, 0x10
cmp esi, eax
je 0x100f972b
sar ecx, 9
and ecx, 0xffffff80
movzx eax, si
imul ecx, edx
imul eax, edx
inc ecx
sar eax, 9
add ecx, eax
sar ecx, 1
jmp 0x100f9737
imul ecx, edx
add ecx, 0x200
sar ecx, 0xa
neg ecx
test dword [esp + 0x24], 0x20000000
je 0x100f9781
test edx, edx
jns 0x100f9781
test ecx, ecx
je 0x100f9781
cmp ecx, esi
jne 0x100f976b
test ecx, ecx
jns 0x100f976a
inc ecx
mov eax, ecx
sub eax, dword [esp + 0x58]
mov dword [ebx + 0x138], eax
mov eax, dword [esp + 0x58]
sub eax, ecx
add edi, eax
jmp 0x100f979b
dec ecx
mov eax, ecx
sub eax, dword [esp + 0x58]
mov dword [ebx + 0x138], eax
mov eax, dword [esp + 0x58]
sub eax, ecx
add edi, eax
jmp 0x100f979b
mov eax, dword [esp + 0x58]
neg eax
mov dword [ebx + 0x138], eax
mov eax, dword [esp + 0x58]
sub eax, ecx
add edi, eax
jmp 0x100f979b
add edi, dword [esp + 0x58]
mov eax, dword [esp + 0x28]
lea ecx, [edi + eax*2]
add ecx, eax
mov eax, edi
cdq
xor eax, edx
mov dword [esp + 0x28], ecx
sub eax, edx
cmp eax, dword [esp + 0x40]
jg 0x100f9fca
mov ebx, dword [esp + 0x20]
mov dword [ebx], edi
add ebx, 4
mov edi, dword [esp + 0x14]
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x18]
inc ebx
mov dword [esp + 0x18], ebx
cmp ebx, dword [esp + 0x10]
jb 0x100f9601
mov ebp, dword [esp + 0x1c]
jmp 0x100f944c
test edx, edx
je 0x100f9fbb
test esi, esi
jne 0x100f9fbb
mov eax, dword [esp + 0x10]
xor ebx, ebx
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x30], ebp
mov dword [esp + 0x18], ebx
test eax, eax
je 0x100f9450
lea eax, [esp + 0x58]
xor ebp, ebp
push eax
xor edx, edx
mov dword [esp + 0x3c], ebp
mov ecx, edi
mov dword [esp + 0x40], ebp
call fcn.1010d850
mov esi, eax
mov dword [esp + 0x20], esi
cmp esi, 0x80000000
je 0x100f9fce
lea eax, [esp + 0x5c]
mov ecx, edi
push eax
lea edx, [ebp + 1]
call fcn.1010d850
mov ebx, eax
mov dword [esp + 0x2c], ebx
cmp ebx, 0x80000000
je 0x100f9fce
mov eax, dword [esp + 0x24]
and eax, 0x20
mov dword [esp + 0x50], eax
je 0x100f9aaa
mov ebp, dword [esp + 0x58]
lea edx, [edi + 0x168]
add ebx, dword [esp + 0x5c]
add ebp, esi
mov eax, dword [edi + 0x8c]
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], ebx
test eax, eax
je 0x100f9a8f
dec eax
mov dword [esp + 0x38], eax
mov eax, dword [edx]
test eax, eax
jle 0x100f995c
cmp eax, 8
jle 0x100f98d0
mov ecx, dword [edx + 0x10]
mov ebx, dword [edx + 0x14]
mov edi, dword [edx + 0x30]
test al, 1
je 0x100f98bf
lea esi, [ecx + ecx]
add edi, edi
sub esi, ebx
sub edi, dword [edx + 0x34]
jmp 0x100f98dc
lea esi, [ecx + ecx*2]
lea edi, [edi + edi*2]
sub esi, ebx
sub edi, dword [edx + 0x34]
sar esi, 1
sar edi, 1
jmp 0x100f98dc
mov eax, dword [esp + 0x34]
mov esi, dword [edx + eax*4 + 0x10]
mov edi, dword [edx + eax*4 + 0x30]
mov ebx, dword [edx + 8]
movsx eax, si
cmp esi, eax
je 0x100f9901
mov ecx, esi
movzx eax, si
sar ecx, 9
and ecx, 0xffffff80
imul ecx, ebx
imul ebx, eax
sar ebx, 9
inc ebx
add ebx, ecx
sar ebx, 1
jmp 0x100f990d
imul ebx, esi
add ebx, 0x200
sar ebx, 0xa
mov esi, dword [edx + 0xc]
add ebp, ebx
movsx eax, di
cmp edi, eax
je 0x100f9941
mov ebx, dword [esp + 0x3c]
mov ecx, edi
sar ecx, 9
and ecx, 0xffffff80
movzx eax, di
imul ecx, esi
imul esi, eax
sar esi, 9
inc esi
add esi, ecx
sar esi, 1
add ebx, esi
mov dword [esp + 0x3c], ebx
jmp 0x100f9a78
mov ebx, dword [esp + 0x3c]
imul esi, edi
add esi, 0x200
sar esi, 0xa
add ebx, esi
mov dword [esp + 0x3c], ebx
jmp 0x100f9a78
cmp eax, 0xffffffff
jne 0x100f99dc
mov edi, dword [edx + 0x10]
mov esi, dword [edx + 8]
movsx eax, di
cmp edi, eax
je 0x100f9989
mov ecx, edi
movzx eax, di
sar ecx, 9
and ecx, 0xffffff80
imul ecx, esi
imul esi, eax
sar esi, 9
inc esi
add esi, ecx
sar esi, 1
jmp 0x100f9995
imul esi, edi
add esi, 0x200
sar esi, 0xa
add ebp, esi
mov esi, dword [edx + 0xc]
movsx eax, bp
cmp ebp, eax
je 0x100f99c5
mov ecx, ebp
movzx eax, bp
sar ecx, 9
and ecx, 0xffffff80
imul ecx, esi
imul esi, eax
sar esi, 9
inc esi
add esi, ecx
sar esi, 1
add ebx, esi
mov dword [esp + 0x3c], ebx
jmp 0x100f9a78
imul esi, ebp
add esi, 0x200
sar esi, 0xa
add ebx, esi
mov dword [esp + 0x3c], ebx
jmp 0x100f9a78
mov edi, dword [edx + 0x30]
mov esi, dword [edx + 0xc]
movsx eax, di
cmp edi, eax
je 0x100f9a04
mov ecx, edi
movzx eax, di
sar ecx, 9
and ecx, 0xffffff80
imul ecx, esi
imul esi, eax
sar esi, 9
inc esi
add esi, ecx
sar esi, 1
jmp 0x100f9a10
imul esi, edi
add esi, 0x200
sar esi, 0xa
add ebx, esi
cmp dword [edx], 0xfffffffd
mov esi, dword [edx + 8]
mov dword [esp + 0x3c], ebx
jne 0x100f9a48
mov edi, dword [edx + 0x10]
movsx eax, di
cmp edi, eax
je 0x100f9a43
mov ecx, edi
movzx eax, di
sar ecx, 9
and ecx, 0xffffff80
imul ecx, esi
imul esi, eax
sar esi, 9
inc esi
add esi, ecx
sar esi, 1
jmp 0x100f9a76
imul esi, edi
jmp 0x100f9a6d
movsx eax, bx
cmp ebx, eax
je 0x100f9a6a
mov ecx, ebx
movzx eax, bx
sar ecx, 9
and ecx, 0xffffff80
imul ecx, esi
imul esi, eax
sar esi, 9
inc esi
add esi, ecx
sar esi, 1
jmp 0x100f9a76
imul esi, ebx
add esi, 0x200
sar esi, 0xa
add ebp, esi
mov eax, dword [esp + 0x38]
add edx, 0x60
test eax, eax
jne 0x100f9892
mov edi, dword [esp + 0x14]
mov dword [esp + 0x38], ebp
test byte [esp + 0x24], 0x10
je 0x100f9aa6
mov eax, ebp
sar eax, 1
sub ebx, eax
add ebp, ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x38], ebp
mov ebx, dword [esp + 0x2c]
mov ecx, dword [edi + 0x8c]
lea eax, [edi + 0x168]
test ecx, ecx
je 0x100f9dd0
mov ebp, dword [esp + 0x20]
dec ecx
mov dword [esp + 0x54], ecx
mov ecx, dword [eax]
test ecx, ecx
jle 0x100f9bee
cmp ecx, 8
jle 0x100f9b11
mov edx, dword [eax + 0x10]
mov edi, dword [eax + 0x30]
test cl, 1
je 0x100f9aee
lea esi, [edx + edx]
add edi, edi
sub esi, dword [eax + 0x14]
sub edi, dword [eax + 0x34]
jmp 0x100f9afe
lea esi, [edx + edx*2]
sub esi, dword [eax + 0x14]
lea edi, [edi + edi*2]
sub edi, dword [eax + 0x34]
sar esi, 1
sar edi, 1
mov ecx, dword [eax + 0x30]
mov dword [eax + 0x14], edx
mov dword [eax + 0x34], ecx
mov dword [esp + 0x20], 0
jmp 0x100f9b26
mov edx, dword [esp + 0x34]
mov esi, dword [eax + edx*4 + 0x10]
mov edi, dword [eax + edx*4 + 0x30]
add edx, ecx
and edx, 7
mov dword [esp + 0x20], edx
movsx ecx, si
cmp esi, ecx
je 0x100f9b4a
mov edx, esi
movzx ecx, si
imul ecx, dword [eax + 8]
sar edx, 9
and edx, 0xffffff80
imul edx, dword [eax + 8]
sar ecx, 9
inc ecx
add ecx, edx
sar ecx, 1
jmp 0x100f9b59
mov ecx, dword [eax + 8]
imul ecx, esi
add ecx, 0x200
sar ecx, 0xa
mov edx, dword [eax + 0xc]
add ecx, ebp
mov dword [esp + 0x2c], ecx
movsx ecx, di
cmp edi, ecx
je 0x100f9b89
mov edx, edi
movzx ecx, di
imul ecx, dword [eax + 0xc]
sar edx, 9
and edx, 0xffffff80
imul edx, dword [eax + 0xc]
sar ecx, 9
inc edx
add ecx, edx
mov edx, dword [eax + 0xc]
sar ecx, 1
jmp 0x100f9b97
mov ecx, edi
imul ecx, edx
add ecx, 0x200
sar ecx, 0xa
add ecx, ebx
mov dword [esp + 0x4c], ecx
test esi, esi
je 0x100f9bb4
test ebp, ebp
je 0x100f9bb4
mov ecx, dword [eax + 4]
xor esi, ebp
sar esi, 0x1f
xor ecx, esi
sub ecx, esi
add dword [eax + 8], ecx
test edi, edi
je 0x100f9bcd
test ebx, ebx
je 0x100f9bcd
mov ecx, dword [eax + 4]
xor edi, ebx
sar edi, 0x1f
xor ecx, edi
sub ecx, edi
add ecx, edx
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x2c]
mov ebp, edx
mov dword [eax + ecx*4 + 0x10], edx
mov edx, dword [esp + 0x4c]
mov ebx, edx
mov dword [esp + 0x2c], ebx
mov dword [eax + ecx*4 + 0x30], edx
jmp 0x100f9db5
cmp ecx, 0xffffffff
jne 0x100f9cd9
mov edi, dword [eax + 0x10]
mov ebx, dword [eax + 8]
movsx ecx, di
cmp edi, ecx
je 0x100f9c1f
mov ecx, edi
movzx edx, di
sar ecx, 9
and ecx, 0xffffff80
imul edx, ebx
imul ecx, ebx
sar edx, 9
inc ecx
add ecx, edx
sar ecx, 1
jmp 0x100f9c2d
mov ecx, ebx
imul ecx, edi
add ecx, 0x200
sar ecx, 0xa
lea esi, [ecx + ebp]
test edi, edi
je 0x100f9c5b
test ebp, ebp
je 0x100f9c5b
xor edi, ebp
mov ecx, 0x400
sar edi, 0x1f
xor ebx, edi
add ebx, dword [eax + 4]
sub ebx, edi
cmp ebx, 0x400
cmovg ebx, ecx
mov ecx, edi
xor ecx, ebx
sub ecx, edi
mov dword [eax + 8], ecx
mov edi, dword [eax + 0xc]
mov ebp, esi
movsx ecx, si
cmp esi, ecx
je 0x100f9c82
mov edx, esi
movzx ecx, si
imul ecx, edi
sar edx, 9
and edx, 0xffffff80
imul edx, edi
sar ecx, 9
inc ecx
add ecx, edx
sar ecx, 1
jmp 0x100f9c90
mov ecx, esi
imul ecx, edi
add ecx, 0x200
sar ecx, 0xa
mov edx, dword [esp + 0x2c]
add ecx, edx
mov dword [esp + 0x4c], ecx
test esi, esi
je 0x100f9ccb
test edx, edx
je 0x100f9ccb
xor esi, edx
mov ecx, 0x400
sar esi, 0x1f
mov edx, esi
xor edx, edi
add edx, dword [eax + 4]
sub edx, esi
cmp edx, 0x400
cmovg edx, ecx
mov ecx, esi
xor ecx, edx
sub ecx, esi
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x4c]
mov ebx, ecx
mov dword [eax + 0x10], ecx
mov dword [esp + 0x2c], ebx
jmp 0x100f9db5
mov edi, dword [eax + 0x30]
mov esi, dword [eax + 0xc]
movsx ecx, di
cmp edi, ecx
mov ecx, edi
je 0x100f9d01
sar ecx, 9
and ecx, 0xffffff80
movzx edx, di
imul ecx, esi
imul edx, esi
inc ecx
sar edx, 9
add ecx, edx
sar ecx, 1
jmp 0x100f9d0d
imul ecx, esi
add ecx, 0x200
sar ecx, 0xa
lea esi, [ecx + ebx]
test edi, edi
je 0x100f9d3e
test ebx, ebx
je 0x100f9d3e
xor edi, ebx
mov ecx, 0x400
sar edi, 0x1f
mov edx, edi
xor edx, dword [eax + 0xc]
add edx, dword [eax + 4]
sub edx, edi
cmp edx, 0x400
cmovg edx, ecx
mov ecx, edi
xor ecx, edx
sub ecx, edi
mov dword [eax + 0xc], ecx
cmp dword [eax], 0xfffffffd
mov ebx, esi
mov dword [esp + 0x2c], ebx
jne 0x100f9d4f
mov esi, dword [eax + 0x10]
mov dword [eax + 0x10], ebx
mov edi, dword [eax + 8]
movsx ecx, si
cmp esi, ecx
je 0x100f9d74
mov edx, esi
movzx ecx, si
imul ecx, edi
sar edx, 9
and edx, 0xffffff80
imul edx, edi
sar ecx, 9
inc ecx
add ecx, edx
sar ecx, 1
jmp 0x100f9d82
mov ecx, edi
imul ecx, esi
add ecx, 0x200
sar ecx, 0xa
lea edx, [ecx + ebp]
test esi, esi
je 0x100f9db0
test ebp, ebp
je 0x100f9db0
xor esi, ebp
mov ecx, 0x400
sar esi, 0x1f
xor edi, esi
add edi, dword [eax + 4]
sub edi, esi
cmp edi, 0x400
cmovg edi, ecx
mov ecx, esi
xor ecx, edi
sub ecx, esi
mov dword [eax + 8], ecx
mov ebp, edx
mov dword [eax + 0x30], edx
mov ecx, dword [esp + 0x54]
add eax, 0x60
test ecx, ecx
jne 0x100f9ac2
mov edi, dword [esp + 0x14]
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x20]
inc eax
and eax, 7
cmp dword [esp + 0x50], 0
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x24]
jne 0x100f9e13
mov ebp, dword [esp + 0x58]
add ebx, dword [esp + 0x5c]
add ebp, ecx
test al, 0x10
je 0x100f9e2d
mov edx, dword [esp + 0x2c]
mov eax, ebp
sar eax, 1
sub ebx, eax
mov eax, ecx
sar eax, 1
add ebp, ebx
sub edx, eax
mov eax, dword [esp + 0x24]
add ecx, edx
jmp 0x100f9e31
mov ebx, dword [esp + 0x3c]
test al, 0x10
je 0x100f9e2d
mov edx, dword [esp + 0x2c]
mov eax, ecx
sar eax, 1
sub edx, eax
mov eax, dword [esp + 0x24]
add ecx, edx
jmp 0x100f9e31
mov edx, dword [esp + 0x2c]
test al, 0x40
je 0x100f9f60
mov eax, ebp
sub eax, ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x58], eax
mov esi, dword [edi + 0x130]
add esi, dword [edi + 0x128]
movsx eax, word [ecx + 0x138]
mov dword [edi + 0x128], esi
mov edi, dword [edi + 0x138]
sar esi, 0x10
cmp edi, eax
mov eax, edi
je 0x100f9e86
sar eax, 9
and eax, 0xffffff80
movzx ecx, di
imul eax, esi
imul ecx, esi
inc eax
sar ecx, 9
add eax, ecx
sar eax, 1
jmp 0x100f9e91
imul eax, esi
add eax, 0x200
sar eax, 0xa
mov ecx, dword [esp + 0x24]
neg eax
and ecx, 0x20000000
mov dword [esp + 0x50], ecx
je 0x100f9ec5
test esi, esi
jns 0x100f9ec5
test eax, eax
je 0x100f9ec5
cmp eax, edi
jne 0x100f9ebd
test eax, eax
jns 0x100f9ebc
inc eax
mov ecx, eax
sub ecx, dword [esp + 0x58]
jmp 0x100f9ecb
dec eax
mov ecx, eax
sub ecx, dword [esp + 0x58]
jmp 0x100f9ecb
mov ecx, dword [esp + 0x58]
neg ecx
mov edi, dword [esp + 0x14]
sub ebp, eax
mov eax, ebx
sub eax, edx
mov dword [edi + 0x138], ecx
mov dword [esp + 0x5c], eax
mov edx, dword [edi + 0x134]
add edx, dword [edi + 0x12c]
mov esi, dword [edi + 0x13c]
movsx eax, si
mov dword [edi + 0x12c], edx
sar edx, 0x10
cmp esi, eax
mov eax, esi
je 0x100f9f1c
sar eax, 9
and eax, 0xffffff80
movzx ecx, si
imul eax, edx
imul ecx, edx
inc eax
sar ecx, 9
add eax, ecx
sar eax, 1
jmp 0x100f9f27
imul eax, edx
add eax, 0x200
sar eax, 0xa
neg eax
cmp dword [esp + 0x50], 0
je 0x100f9f52
test edx, edx
jns 0x100f9f52
test eax, eax
je 0x100f9f52
cmp eax, esi
jne 0x100f9f4a
test eax, eax
jns 0x100f9f49
inc eax
mov ecx, eax
sub ecx, dword [esp + 0x5c]
jmp 0x100f9f58
dec eax
mov ecx, eax
sub ecx, dword [esp + 0x5c]
jmp 0x100f9f58
mov ecx, dword [esp + 0x5c]
neg ecx
mov dword [edi + 0x13c], ecx
sub ebx, eax
mov ecx, dword [esp + 0x40]
mov eax, ebp
cdq
xor eax, edx
sub eax, edx
cmp eax, ecx
jg 0x100f9fce
mov eax, ebx
cdq
xor eax, edx
sub eax, edx
cmp eax, ecx
jg 0x100f9fce
mov ecx, dword [esp + 0x28]
lea eax, [ebx + ebp]
lea eax, [eax + ebp*2]
lea eax, [eax + ecx*8]
add ecx, eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x28], ecx
mov dword [eax], ebp
mov dword [eax + 4], ebx
add eax, 8
mov ebx, dword [esp + 0x18]
inc ebx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], ebx
cmp ebx, eax
jb 0x100f9810
mov ebp, dword [esp + 0x1c]
jmp 0x100f9450
mov ebp, dword [esp + 0x1c]
xor ebx, ebx
mov dword [esp + 0x18], ebx
jmp 0x100f944c
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
test byte [esp + 0x24], 4
mov eax, 0
mov ebx, dword [esp + 0x10]
sete al
lea eax, [eax*4 + 4]
imul eax, ebx
push eax
push 0
push ebp
call fcn.10143f10
add esp, 0xc
mov dword [edi + 0x90], 1
cmp dword [edi + 0xfc], 0
mov dword [esp + 0x18], ebx
je 0x100fa03c
cmp dword [edi + 0x108], 0x10
jae 0x100fa020
add dword [edi + 0xfc], 2
xorps xmm0, xmm0
movups xmmword [edi + 0xf4], xmm0
movq qword [edi + 0x104], xmm0
mov dword [edi + 0x10c], 0
mov ecx, dword [esp + 0x34]
mov ebp, dword [esp + 0x14]
test ecx, ecx
je 0x100fa151
mov esi, dword [edi + 0x8c]
add edi, 0x168
test esi, esi
je 0x100fa151
lea edx, [ebp + 0x198]
mov eax, dword [edi]
dec esi
dec eax
cmp eax, 7
ja 0x100fa143
movups xmm0, xmmword [edx - 0x20]
movups xmmword [esp + 0x60], xmm0
movups xmm0, xmmword [edx - 0x10]
movups xmmword [esp + 0x70], xmm0
mov eax, dword [esp + ecx*4 + 0x60]
movups xmm0, xmmword [edx]
movups xmmword [esp + 0x80], xmm0
movups xmm0, xmmword [edx + 0x10]
mov dword [edx - 0x20], eax
movups xmmword [esp + 0x90], xmm0
mov eax, dword [esp + ecx*4 + 0x80]
inc ecx
and ecx, 7
mov dword [edx], eax
mov eax, dword [esp + ecx*4 + 0x60]
mov dword [edx - 0x1c], eax
mov eax, dword [esp + ecx*4 + 0x80]
inc ecx
and ecx, 7
mov dword [edx + 4], eax
mov eax, dword [esp + ecx*4 + 0x60]
mov dword [edx - 0x18], eax
mov eax, dword [esp + ecx*4 + 0x80]
inc ecx
and ecx, 7
mov dword [edx + 8], eax
mov eax, dword [esp + ecx*4 + 0x60]
mov dword [edx - 0x14], eax
mov eax, dword [esp + ecx*4 + 0x80]
inc ecx
and ecx, 7
mov dword [edx + 0xc], eax
mov eax, dword [esp + ecx*4 + 0x60]
mov dword [edx - 0x10], eax
mov eax, dword [esp + ecx*4 + 0x80]
inc ecx
and ecx, 7
mov dword [edx + 0x10], eax
mov eax, dword [esp + ecx*4 + 0x60]
mov dword [edx - 0xc], eax
mov eax, dword [esp + ecx*4 + 0x80]
inc ecx
and ecx, 7
mov dword [edx + 0x14], eax
mov eax, dword [esp + ecx*4 + 0x60]
mov dword [edx - 8], eax
mov eax, dword [esp + ecx*4 + 0x80]
inc ecx
and ecx, 7
mov dword [edx + 0x18], eax
mov eax, dword [esp + ecx*4 + 0x60]
mov dword [edx - 4], eax
mov eax, dword [esp + ecx*4 + 0x80]
inc ecx
mov dword [edx + 0x1c], eax
and ecx, 7
add edi, 0x60
add edx, 0x60
test esi, esi
jne 0x100fa066
mov esi, dword [esp + 0x1c]
mov edx, esi
mov ecx, dword [esp + 0x48]
push ebx
call fcn.100faae0
mov ecx, dword [esp + 0x28]
add esp, 4
test cl, cl
jns 0x100fa200
mov edx, dword [esp + 0x48]
test byte [edx + 0xbc], 0x10
je 0x100fa200
cmp dword [esp + 0x44], 0
lea eax, [ebx + ebx]
mov edi, ebx
mov ebx, dword [edx + 0xc0]
cmove edi, eax
mov edx, esi
movzx eax, byte [ebp + 0x123]
sub ebx, eax
add ebx, 0x7f
je 0x100fa1fc
test edi, edi
je 0x100fa1fc
mov ecx, dword [edx]
dec edi
mov eax, ecx
sar eax, 0x17
movzx esi, al
test al, al
je 0x100fa1e9
lea eax, [esi + ebx]
test eax, eax
jle 0x100fa1e9
cmp esi, 0xff
je 0x100fa1db
cmp eax, 0xff
jge 0x100fa1db
shl eax, 0x17
xor eax, ecx
and eax, 0x7f800000
xor eax, ecx
jmp 0x100fa1eb
mov eax, ecx
and eax, 0x80000000
xor eax, 0x7f800000
jmp 0x100fa1eb
xor eax, eax
mov dword [edx], eax
add edx, 4
test edi, edi
jne 0x100fa1a8
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
test ecx, 0x40000000
je 0x100fa229
lea ecx, [esi + ebx*8]
lea edx, [esi + ebx*4]
mov esi, ebx
test ebx, ebx
je 0x100fa229
mov eax, dword [edx - 4]
lea edx, [edx - 4]
mov dword [ecx - 4], eax
lea ecx, [ecx - 8]
mov eax, dword [edx]
mov dword [ecx], eax
sub esi, 1
jne 0x100fa214
add dword [ebp + 0x80], ebx
mov eax, dword [esp + 0x28]
adc dword [ebp + 0x84], 0
mov dword [ebp + 0xb0], eax
mov eax, ebx
jmp 0x100fa295
mov dword [edi + 0x90], 1
mov eax, dword [esp + 0x48]
cmp dword [eax + 0xc4], 1
je 0x100fa272
cmp dword [eax + 0x1c], 1
je 0x100fa272
test byte [esp + 0x24], 4
jne 0x100fa272
lea eax, [ecx*8]
push eax
jmp 0x100fa276
shl ecx, 2
push ecx
push 0
push dword [esp + 0x24]
call fcn.10143f10
mov eax, dword [esp + 0x1c]
add esp, 0xc
add dword [edi + 0x80], eax
adc dword [edi + 0x84], 0
mov ecx, dword [esp + 0xa0]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.10142783
add esp, 0x94
ret