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

Disassembly:
sub esp, 0x20
push ebx
mov ebx, dword [esp + 0x28]
cmp dword [ebx + 0x14], 0x1c
push ebp
push esi
mov edx, dword [ebx + 4]
lea esi, [ebx + 8]
push edi
mov edi, dword [ebx + 0x34]
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], edx
jb 0x100f836a
push esi
call fcn.100fa6b0
mov eax, dword [ebx]
add esp, 4
cmp eax, 7
je 0x100f7722
cmp eax, 8
je 0x100f771a
cmp eax, 9
je 0x100f7dd2
cmp eax, 0xa
je 0x100f829f
pop edi
pop esi
pop ebp
mov eax, 0xffffffe1
pop ebx
add esp, 0x20
ret
lea ebp, [esi + 4]
jmp 0x100f7a8a
cmp dword [esi + 0xc], 0x1c
jb 0x100f8360
cmp dword [ebx + 0xc4], 0
jne 0x100f7740
push ebx
call fcn.100f60b0
add esp, 4
jmp 0x100f7722
mov ecx, dword [esi + 4]
lea ebp, [esi + 4]
mov eax, dword [ebx + 0x68]
mov dword [esp + 0x28], 0
mov dword [esp + 0x34], eax
cmp ecx, 0x10
jb 0x100f7785
movzx edx, word [esi + 2]
xor ecx, 0x10
mov dword [ebp], ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esi + 8]
mov dword [esi], edx
movzx eax, word [ecx]
shl eax, 0x10
or eax, edx
add dword [esi + 0xc], 0xfffffffe
mov dword [esi], eax
lea eax, [ecx + 2]
mov ecx, dword [esp + 0x14]
mov dword [esi + 8], eax
mov edx, dword [esi]
mov eax, edx
mov edi, dword [esp + 0x34]
shr eax, cl
mov dword [esp + 0x1c], eax
movzx eax, al
lea eax, [edi + eax*4]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x34], eax
mov al, byte [eax]
cmp al, 8
jbe 0x100f77df
shr dword [esp + 0x1c], 8
add ecx, 8
movzx eax, al
mov dword [ebp], ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [eax*4 + 0x10130bc0]
mov eax, dword [esp + 0x34]
and ecx, dword [esp + 0x1c]
movzx eax, word [eax + 2]
add ecx, eax
mov eax, dword [esp + 0x34]
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x34], eax
mov al, byte [eax]
movzx eax, al
add eax, ecx
mov dword [ebp], eax
mov eax, dword [esp + 0x34]
movzx eax, word [eax + 2]
mov ecx, dword [eax*8 + 0x1012f5a8]
mov eax, dword [eax*8 + 0x1012f5ac]
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], ecx
shrd ecx, eax, 0x10
movsx eax, cl
mov ecx, dword [esp + 0x20]
mov dword [ebx + 0x10c], eax
mov eax, dword [esp + 0x24]
shrd ecx, eax, 0x18
mov eax, dword [ebx + 0x74]
movzx ecx, cl
mov dword [ebx + 0xb4], ecx
mov al, byte [ecx + eax]
mov byte [ebx + 0x104], al
mov eax, dword [esp + 0x24]
movzx eax, ax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x20]
test al, al
je 0x100f7953
mov ecx, dword [ebp]
movzx eax, al
mov dword [esp + 0x1c], eax
cmp eax, 0x10
ja 0x100f78a8
cmp ecx, 0x10
jb 0x100f7886
mov eax, dword [esi + 8]
xor ecx, 0x10
shr edx, 0x10
mov dword [esi], edx
mov dword [esp + 0x34], edx
mov dword [ebp], ecx
movzx edx, word [eax]
add dword [esi + 0xc], 0xfffffffe
shl edx, 0x10
or edx, dword [esp + 0x34]
add eax, 2
mov dword [esi], edx
mov dword [esi + 8], eax
mov edi, dword [esp + 0x1c]
mov eax, edx
shr eax, cl
mov edi, dword [edi*4 + 0x10130be0]
and edi, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x18]
jmp 0x100f7949
cmp ecx, 0x10
jb 0x100f78d5
mov eax, dword [esi + 8]
xor ecx, 0x10
shr edx, 0x10
mov dword [esi], edx
mov dword [esp + 0x34], edx
mov dword [ebp], ecx
movzx edx, word [eax]
add dword [esi + 0xc], 0xfffffffe
shl edx, 0x10
or edx, dword [esp + 0x34]
add eax, 2
mov dword [esi], edx
mov dword [esi + 8], eax
mov eax, edx
mov dword [esp + 0x34], edx
shr eax, cl
and eax, dword [0x10130c20]
mov dword [esp + 0x2c], eax
lea eax, [ecx + 0x10]
mov dword [ebp], eax
cmp eax, 0x10
jb 0x100f7922
xor eax, 0x10
mov ecx, edx
mov dword [ebp], eax
mov dword [esp + 0x28], eax
mov eax, dword [esi + 8]
shr ecx, 0x10
mov dword [esi], ecx
movzx edx, word [eax]
add dword [esi + 0xc], 0xfffffffe
shl edx, 0x10
or edx, ecx
add eax, 2
mov dword [esi + 8], eax
mov eax, dword [esp + 0x28]
mov dword [esi], edx
mov dword [esp + 0x34], edx
mov ecx, eax
shr dword [esp + 0x34], cl
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx*4 + 0x10130ba0]
and ecx, dword [esp + 0x34]
shl ecx, 0x10
or ecx, dword [esp + 0x2c]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x1c]
add ecx, 0xfffffff0
add eax, ecx
mov ecx, ebp
mov dword [ecx], eax
mov eax, dword [esp + 0x20]
mov ecx, dword [ebp]
shr eax, 8
movzx eax, al
mov dword [esp + 0x34], eax
cmp eax, 0x10
ja 0x100f79ba
cmp ecx, 0x10
jb 0x100f799a
mov eax, dword [esi + 8]
xor ecx, 0x10
shr edx, 0x10
mov dword [esi], edx
mov dword [ebp], ecx
movzx edi, word [eax]
add dword [esi + 0xc], 0xfffffffe
shl edi, 0x10
or edi, edx
add eax, 2
mov edx, edi
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x18]
mov dword [esi + 8], eax
mov eax, edx
mov dword [esi], edx
jmp 0x100f799c
mov eax, edx
mov edx, dword [esp + 0x34]
shr eax, cl
mov edx, dword [edx*4 + 0x10130be0]
and edx, eax
add ecx, dword [esp + 0x34]
mov dword [esp + 0x2c], edx
mov eax, edx
jmp 0x100f7a59
cmp ecx, 0x10
jb 0x100f79eb
mov eax, dword [esi + 8]
xor ecx, 0x10
shr edx, 0x10
mov dword [esi], edx
mov dword [ebp], ecx
movzx edi, word [eax]
add dword [esi + 0xc], 0xfffffffe
shl edi, 0x10
or edi, edx
add eax, 2
mov edx, edi
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x18]
mov dword [esi], edx
mov dword [esi + 8], eax
mov eax, edx
shr eax, cl
and eax, dword [0x10130c20]
mov dword [esp + 0x2c], eax
lea eax, [ecx + 0x10]
mov dword [esp + 0x20], eax
mov dword [ebp], eax
cmp eax, 0x10
jb 0x100f7a34
xor eax, 0x10
mov ecx, edx
mov dword [ebp], eax
mov dword [esp + 0x20], eax
mov eax, dword [esi + 8]
shr ecx, 0x10
mov dword [esi], ecx
movzx edx, word [eax]
add dword [esi + 0xc], 0xfffffffe
shl edx, 0x10
or edx, ecx
add eax, 2
mov dword [esi + 8], eax
mov eax, dword [esp + 0x20]
mov dword [esi], edx
mov ecx, eax
mov eax, dword [esp + 0x34]
shr edx, cl
mov ecx, dword [esp + 0x20]
mov eax, dword [eax*4 + 0x10130ba0]
and eax, edx
mov edx, dword [esp + 0x34]
shl eax, 0x10
add edx, 0xfffffff0
or eax, dword [esp + 0x2c]
add ecx, edx
mov edx, ebp
mov dword [edx], ecx
mov ecx, dword [esp + 0x24]
shr ecx, 0x10
add ecx, eax
mov eax, dword [esp + 0x14]
mov dword [ebx + 0x108], ecx
dec dword [ebx + 0xc4]
add eax, dword [esp + 0x28]
mov dword [esp + 0x14], eax
je 0x100f7dd2
sub dword [ebx + 0xb8], eax
mov edx, dword [0x10130c00]
cmp dword [ebx + 0xb0], 0
je 0x100f7c9a
mov edi, dword [ebp]
mov eax, dword [ebx + 0x100]
mov dword [esp + 0x34], eax
cmp edi, 0x10
jb 0x100f7ad8
mov ecx, dword [esi + 8]
xor edi, 0x10
movzx edx, word [esi + 2]
mov dword [esi], edx
mov dword [ebp], edi
movzx eax, word [ecx]
shl eax, 0x10
or eax, edx
add dword [esi + 0xc], 0xfffffffe
mov dword [esi], eax
lea eax, [ecx + 2]
mov dword [esi + 8], eax
mov edx, dword [0x10130c00]
mov eax, dword [esi]
mov ecx, edi
mov edi, dword [esp + 0x18]
shr eax, cl
and eax, edx
mov edx, dword [esp + 0x34]
movzx ecx, byte [edx + eax*4]
movzx eax, word [edx + eax*4 + 2]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x34], eax
nop dword [eax]
cmp dword [esi + 0xc], 0x1c
jb 0x100f82fa
cmp dword [ebx + 0xc0], 0
jne 0x100f7b85
push ebx
call fcn.100f6b10
mov edi, dword [ebp]
add esp, 4
mov eax, dword [ebx + 0x100]
mov dword [esp + 0x34], eax
cmp edi, 0x10
jb 0x100f7b51
mov ecx, dword [esi + 8]
xor edi, 0x10
movzx edx, word [esi + 2]
mov dword [esi], edx
mov dword [ebp], edi
movzx eax, word [ecx]
shl eax, 0x10
or eax, edx
add dword [esi + 0xc], 0xfffffffe
mov dword [esi], eax
lea eax, [ecx + 2]
mov dword [esi + 8], eax
mov eax, dword [esi]
mov ecx, edi
mov edi, dword [esp + 0x34]
mov edx, dword [0x10130c00]
shr eax, cl
and eax, edx
cmp dword [ebx + 0xb0], 0
movzx ecx, byte [edi + eax*4]
movzx eax, word [edi + eax*4 + 2]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x34], eax
je 0x100f7c9a
mov edx, dword [ebx + 0x100]
mov edi, dword [ebp]
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], eax
cmp ecx, 8
jbe 0x100f7c0c
cmp edi, 0x10
jb 0x100f7bc3
mov ecx, dword [esi + 8]
xor edi, 0x10
movzx edx, word [esi + 2]
mov dword [esi], edx
mov dword [ebp], edi
movzx eax, word [ecx]
shl eax, 0x10
or eax, edx
add dword [esi + 0xc], 0xfffffffe
mov dword [esi], eax
lea eax, [ecx + 2]
mov dword [esi + 8], eax
mov edx, dword [esi]
mov ecx, edi
mov eax, dword [esp + 0x28]
add edi, 8
mov dword [esp + 0x2c], edx
shr edx, cl
mov ecx, edx
mov eax, dword [eax*4 + 0x10130bc0]
shr ecx, 8
and ecx, eax
mov dword [ebp], edi
add ecx, dword [esp + 0x34]
movzx eax, dl
add eax, ecx
mov ecx, dword [esp + 0x24]
movzx edx, byte [ecx + eax*4]
lea ecx, [ecx + eax*4]
add edx, edi
mov dword [ebp], edx
movzx eax, word [ecx + 2]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x20], eax
jmp 0x100f7c14
lea edx, [edi + ecx]
mov ecx, dword [esi]
mov dword [ebp], edx
cmp edx, 0x10
jb 0x100f7c3d
mov eax, dword [esi + 8]
xor edx, 0x10
shr ecx, 0x10
mov dword [esi], ecx
mov dword [ebp], edx
movzx edi, word [eax]
add dword [esi + 0xc], 0xfffffffe
shl edi, 0x10
or edi, ecx
add eax, 2
mov dword [esi], edi
mov dword [esi + 8], eax
jmp 0x100f7c3f
mov edi, ecx
mov eax, dword [esp + 0x24]
mov ecx, edx
shr edi, cl
and edi, dword [0x10130c00]
movzx edx, word [eax + edi*4 + 2]
movzx ecx, byte [eax + edi*4]
mov edi, dword [esp + 0x18]
mov eax, dword [ebx + 0x60]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x28], ecx
mov byte [edi + eax], dl
inc edi
mov edx, dword [esp + 0x14]
dec dword [ebx + 0xc0]
dec edx
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], edx
cmp edi, dword [ebx + 0x40]
je 0x100f82e1
test edx, edx
je 0x100f7dc5
mov eax, dword [esp + 0x34]
jmp 0x100f7b00
mov ecx, dword [ebx + 0x60]
lea eax, [edi - 1]
and eax, dword [ebx + 0x44]
mov edx, dword [esp + 0x14]
mov al, byte [eax + ecx]
mov byte [esp + 0x34], al
lea eax, [edi - 2]
and eax, dword [ebx + 0x44]
mov al, byte [eax + ecx]
mov byte [esp + 0x13], al
nop dword [eax + eax]
cmp dword [esi + 0xc], 0x1c
jb 0x100f82fa
cmp dword [ebx + 0xc0], 0
jne 0x100f7ce9
push ebx
call fcn.100f6b10
add esp, 4
cmp dword [ebx + 0xb0], 0
jne 0x100f7a8a
mov ecx, dword [ebx + 0x6c]
movzx eax, byte [esp + 0x13]
mov edi, dword [ebp]
movzx edx, byte [eax + ecx + 0x100]
movzx eax, byte [esp + 0x34]
movzx eax, byte [eax + ecx]
or edx, eax
mov eax, dword [ebx + 0x70]
movzx ecx, byte [edx + eax]
mov eax, dword [ebx + 0x78]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x2c], eax
mov al, byte [esp + 0x34]
mov byte [esp + 0x13], al
cmp edi, 0x10
jb 0x100f7d48
mov ecx, dword [esi + 8]
xor edi, 0x10
movzx edx, word [esi + 2]
mov dword [esi], edx
mov dword [ebp], edi
movzx eax, word [ecx]
shl eax, 0x10
or eax, edx
add dword [esi + 0xc], 0xfffffffe
mov dword [esi], eax
lea eax, [ecx + 2]
mov dword [esi + 8], eax
mov eax, dword [esi]
mov ecx, edi
shr eax, cl
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x34], eax
movzx eax, al
lea edx, [ecx + eax*4]
mov al, byte [edx]
cmp al, 8
jbe 0x100f7d87
shr dword [esp + 0x34], 8
add edi, 8
movzx eax, al
mov dword [ebp], edi
mov ecx, dword [eax*4 + 0x10130bc0]
movzx eax, word [edx + 2]
and ecx, dword [esp + 0x34]
add ecx, eax
mov al, byte [edx + ecx*4]
lea edx, [edx + ecx*4]
movzx eax, al
add eax, edi
mov edi, dword [esp + 0x18]
mov dword [ebp], eax
mov cl, byte [edx + 2]
mov eax, dword [ebx + 0x60]
mov edx, dword [esp + 0x14]
dec edx
mov byte [esp + 0x34], cl
mov dword [esp + 0x14], edx
mov byte [edi + eax], cl
inc edi
dec dword [ebx + 0xc0]
mov dword [esp + 0x18], edi
cmp edi, dword [ebx + 0x40]
je 0x100f82e1
test edx, edx
jne 0x100f7cc0
cmp dword [ebx + 0xb8], 0
jle 0x100f8286
mov ecx, dword [ebx + 0x10c]
test ecx, ecx
js 0x100f7e03
xor eax, eax
lea edx, [ebx + 0xb4]
test ecx, ecx
mov dword [esp + 0x34], edx
lea ecx, [ebx + 0x48]
sete al
mov dword [edx], eax
mov eax, dword [ecx]
dec eax
mov dword [ecx], eax
and eax, 3
mov ebp, dword [ebx + eax*4 + 0x4c]
jmp 0x100f80a9
cmp dword [ebx + 0xc8], 0
jne 0x100f7e15
push ebx
call fcn.100f6800
add esp, 4
movzx ecx, byte [ebx + 0x104]
lea edx, [ebx + 0xc]
mov eax, dword [ebx + 0x98]
mov ebp, dword [edx]
mov dword [esp + 0x14], edx
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x34], eax
cmp ebp, 0x10
jb 0x100f7e61
mov eax, dword [esp + 0x14]
xor ebp, 0x10
mov ecx, dword [ebx + 0x10]
movzx edx, word [esi + 2]
mov dword [esi], edx
mov dword [eax], ebp
movzx eax, word [ecx]
shl eax, 0x10
or eax, edx
add dword [esi + 0xc], 0xfffffffe
mov edx, dword [esp + 0x14]
mov dword [esi], eax
lea eax, [ecx + 2]
mov dword [ebx + 0x10], eax
mov eax, dword [esi]
mov ecx, ebp
mov dword [esp + 0x1c], eax
shr eax, cl
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x28], eax
movzx eax, al
lea eax, [ecx + eax*4]
mov dword [esp + 0x34], eax
mov al, byte [eax]
cmp al, 8
jbe 0x100f7eb2
shr dword [esp + 0x28], 8
add ebp, 8
movzx eax, al
mov dword [edx], ebp
mov ecx, dword [eax*4 + 0x10130bc0]
mov eax, dword [esp + 0x34]
and ecx, dword [esp + 0x28]
movzx eax, word [eax + 2]
add ecx, eax
mov eax, dword [esp + 0x34]
lea eax, [eax + ecx*4]
mov dword [esp + 0x34], eax
mov al, byte [eax]
movzx eax, al
lea ecx, [ebx + 0xb4]
add eax, ebp
mov dword [edx], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x34], ecx
movzx eax, word [eax + 2]
dec dword [ebx + 0xc8]
mov dword [esp + 0x20], eax
mov dword [ecx], 0
test eax, 0xfffffff0
jne 0x100f7f86
mov dword [ebx + 0x10c], eax
lea ebp, [ebx + 0x48]
mov dword [esp + 0x28], ebp
cmp eax, 3
ja 0x100f7f27
mov ecx, eax
mov edx, 1
mov eax, dword [esp + 0x34]
sar edx, cl
mov ecx, dword [ebp]
mov dword [eax], edx
mov eax, ecx
sub eax, dword [esp + 0x20]
dec eax
and eax, 3
sub ecx, edx
mov ebp, dword [ebx + eax*4 + 0x4c]
mov eax, dword [esp + 0x28]
mov dword [eax], ecx
mov ecx, eax
jmp 0x100f80a9
cmp eax, 0xa
mov dword [esp + 0x2c], ebp
mov edx, 0x605142
sbb ecx, ecx
and ecx, 6
add ecx, 0xfffffff6
add ecx, eax
shl ecx, 2
sar edx, cl
and edx, 0xf
cmp eax, 0xa
sbb eax, eax
neg eax
add eax, 2
add eax, dword [ebp]
and eax, 3
mov ebp, dword [ebx + eax*4 + 0x4c]
mov eax, dword [esp + 0x2c]
add ebp, 0xfffffffd
add ebp, edx
mov ecx, eax
mov dword [ebx + 0x10c], ebp
test ebp, ebp
jg 0x100f80af
mov dword [ebx + 0x10c], 0x7fffffff
mov ebp, 0x7fffffff
jmp 0x100f80af
movzx eax, byte [eax + ebx + 0x270]
mov ecx, dword [edx]
mov dword [esp + 0x28], eax
cmp eax, 0x10
ja 0x100f7fed
cmp ecx, 0x10
jb 0x100f7fd1
mov eax, dword [ebx + 0x10]
xor ecx, 0x10
mov ebp, dword [esp + 0x1c]
shr ebp, 0x10
mov dword [esi], ebp
mov dword [edx], ecx
movzx edi, word [eax]
add dword [esi + 0xc], 0xfffffffe
shl edi, 0x10
or edi, ebp
add eax, 2
mov ebp, edi
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x18]
mov dword [ebx + 0x10], eax
mov eax, ebp
mov dword [esi], ebp
jmp 0x100f7fd5
mov eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x28]
shr eax, cl
mov ebp, dword [ebp*4 + 0x10130be0]
and ebp, eax
mov eax, dword [esp + 0x28]
jmp 0x100f8087
cmp ecx, 0x10
jb 0x100f8019
mov eax, dword [ebx + 0x10]
xor ecx, 0x10
mov ebp, dword [esp + 0x1c]
shr ebp, 0x10
mov dword [edx], ecx
mov dword [esi], ebp
movzx edx, word [eax]
add dword [esi + 0xc], 0xfffffffe
shl edx, 0x10
or edx, ebp
add eax, 2
mov dword [esi], edx
mov dword [ebx + 0x10], eax
jmp 0x100f801d
mov edx, dword [esp + 0x1c]
mov eax, edx
lea ebp, [ecx + 0x10]
shr eax, cl
and eax, dword [0x10130c20]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x24], ebp
mov dword [eax], ebp
cmp ebp, 0x10
jb 0x100f8064
xor ebp, 0x10
mov ecx, edx
mov dword [eax], ebp
mov eax, dword [ebx + 0x10]
shr ecx, 0x10
mov dword [esi], ecx
mov dword [esp + 0x24], ebp
movzx edx, word [eax]
add dword [esi + 0xc], 0xfffffffe
shl edx, 0x10
or edx, ecx
add eax, 2
mov dword [esi], edx
mov dword [ebx + 0x10], eax
mov eax, dword [esp + 0x24]
mov ecx, ebp
shr edx, cl
mov ecx, dword [esp + 0x28]
mov ebp, dword [ecx*4 + 0x10130ba0]
and ebp, edx
mov edx, dword [esp + 0x14]
shl ebp, 0x10
or ebp, dword [esp + 0x2c]
add eax, 0xfffffff0
add eax, ecx
mov dword [edx], eax
mov eax, dword [esp + 0x20]
mov ecx, dword [ebx + 0xf0]
shl ebp, cl
lea ecx, [ebx + 0x48]
add ebp, dword [ebx + eax*4 + 0x490]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x34], eax
mov dword [ebx + 0x10c], ebp
mov eax, dword [ebx + 0x3c]
mov edx, dword [ebx + 0x38]
mov dword [esp + 0x28], eax
cmp eax, edx
je 0x100f80cb
cmp edi, edx
mov eax, edx
cmovl eax, edi
mov dword [esp + 0x28], eax
mov dword [ebx + 0x3c], eax
mov edx, dword [ebx + 0x108]
mov dword [esp + 0x14], edx
cmp ebp, eax
jle 0x100f81d1
cmp ebp, 0x7ffffffc
jg 0x100f833a
lea eax, [edx - 4]
cmp eax, 0x14
ja 0x100f832d
mov edx, dword [ebx + 0x248]
mov eax, dword [esp + 0x14]
sub ebp, dword [esp + 0x28]
dec ebp
mov ecx, dword [edx + eax*4 + 0x20]
mov dword [esp + 0x28], ecx
movzx ecx, byte [edx + eax]
mov eax, dword [ecx*4 + 0x10130be0]
and eax, ebp
sar ebp, cl
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
add dword [ebx + 0x48], eax
mov eax, dword [edx + 0xa4]
mov dword [esp + 0x34], eax
test eax, eax
je 0x100f8320
mov eax, dword [ebx + 0x24c]
cmp ebp, dword [eax + 0xc]
jge 0x100f8313
mov ecx, dword [esp + 0x14]
lea esi, [ebx + 8]
mov edx, dword [esp + 0x2c]
movsx eax, word [eax + 0x18]
imul edx, ecx
add edx, dword [esp + 0x34]
add edx, dword [esp + 0x28]
mov dword [esp + 0x34], ecx
cmp ebp, eax
jne 0x100f8181
mov eax, dword [ebx + 0x60]
push ecx
push edx
add eax, edi
push eax
call fcn.100d2160
mov eax, dword [esp + 0x40]
add esp, 0xc
jmp 0x100f8199
mov eax, dword [ebx + 0x24c]
push ebp
push eax
mov eax, dword [ebx + 0x60]
push ecx
push edx
add eax, edi
push eax
call fcn.100feeb0
add esp, 0x14
sub dword [ebx + 0xb8], eax
lea ebp, [ebx + 0xb8]
mov edx, dword [esp + 0x14]
add edi, eax
mov dword [esp + 0x18], edi
cmp edi, dword [ebx + 0x40]
jl 0x100f827c
mov dword [ebx + 0x34], edi
mov eax, 1
pop edi
pop esi
pop ebp
mov dword [ebx], 0xf
mov dword [ebx + 4], edx
pop ebx
add esp, 0x20
ret
mov eax, edi
sub eax, ebp
and eax, dword [ebx + 0x44]
mov dword [esp + 0x34], eax
mov eax, dword [ebx + 0x60]
lea esi, [eax + edi]
add eax, dword [esp + 0x34]
mov dword [esp + 0x20], eax
lea eax, [edx + edi]
mov dword [esp + 0x24], eax
mov eax, dword [ecx]
and eax, 3
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x34]
add esi, edx
mov dword [esp + 0x2c], esi
mov dword [ebx + eax*4 + 0x4c], ebp
lea ebp, [ebx + 0xb8]
mov eax, dword [esp + 0x20]
inc dword [ecx]
sub dword [ebp], edx
cmp esi, edi
mov ecx, dword [esp + 0x28]
lea esi, [ebx + 8]
movups xmm0, xmmword [eax]
mov eax, dword [esp + 0x24]
movups xmmword [ecx], xmm0
jle 0x100f8232
cmp eax, dword [esp + 0x34]
jg 0x100f82a3
mov ecx, dword [ebx + 0x40]
cmp eax, ecx
jge 0x100f82a3
cmp dword [esp + 0x2c], ecx
jge 0x100f82a3
mov edi, eax
mov dword [esp + 0x18], edi
cmp edx, 0x10
jle 0x100f827c
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x28]
add ecx, 0x10
cmp edx, 0x20
jle 0x100f8275
lea eax, [edx - 0x10]
push eax
mov eax, dword [esp + 0x2c]
push ecx
add eax, 0x10
push eax
call fcn.100d2160
mov edx, dword [esp + 0x20]
add esp, 0xc
jmp 0x100f827c
movups xmm0, xmmword [ecx]
movups xmmword [eax + 0x10], xmm0
cmp dword [ebp], 0
jg 0x100f7722
mov dword [ebx + 0x34], edi
mov eax, 1
pop edi
pop esi
pop ebp
mov dword [ebx], 0xe
mov dword [ebx + 4], edx
pop ebx
add esp, 0x20
ret
mov edx, dword [esp + 0x14]
mov ebp, dword [ebx + 0x40]
sub ebp, edi
sub edx, 1
mov dword [esp + 0x14], edx
js 0x100f82d8
mov ecx, dword [ebx + 0x60]
mov eax, edi
sub eax, dword [ebx + 0x10c]
and eax, dword [ebx + 0x44]
mov al, byte [eax + ecx]
mov byte [ecx + edi], al
inc edi
mov dword [esp + 0x18], edi
sub ebp, 1
je 0x100f8347
sub edx, 1
mov dword [esp + 0x14], edx
jns 0x100f82b1
cmp dword [ebx + 0xb8], 0
jmp 0x100f8280
mov dword [ebx + 0x34], edi
mov eax, 1
pop edi
pop esi
pop ebp
mov dword [ebx], 0xd
mov dword [ebx + 4], edx
pop ebx
add esp, 0x20
ret
mov dword [ebx + 0x34], edi
mov eax, 2
pop edi
pop esi
pop ebp
mov dword [ebx], 8
mov dword [ebx + 4], edx
pop ebx
add esp, 0x20
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffff5
pop ebx
add esp, 0x20
ret
pop edi
pop esi
pop ebp
mov eax, 0xffffffed
pop ebx
add esp, 0x20
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffff4
pop ebx
add esp, 0x20
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffff0
pop ebx
add esp, 0x20
ret
mov dword [ebx + 0x34], edi
mov eax, 1
pop edi
pop esi
pop ebp
mov dword [ebx], 0x10
mov dword [ebx + 4], edx
pop ebx
add esp, 0x20
ret
mov edx, dword [esp + 0x14]
mov dword [ebx], 7
mov eax, 2
mov dword [ebx + 0x34], edi
pop edi
pop esi
pop ebp
mov dword [ebx + 4], edx
pop ebx
add esp, 0x20
ret