Function at 0x10076720
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 0x100773f6
push esi
call fcn.10081ed0
mov eax, dword [ebx]
add esp, 4
cmp eax, 7
je 0x1007677e
cmp eax, 8
je 0x10076e73
cmp eax, 9
je 0x10076e42
cmp eax, 0xa
je 0x1007731f
pop edi
pop esi
pop ebp
mov eax, 0xffffffe1
pop ebx
add esp, 0x20
ret
mov ebp, dword [esi + 0xc]
cmp ebp, 0x1c
jb 0x100773ec
cmp dword [ebx + 0xc4], 0
jne 0x1007679e
push ebx
call fcn.10075110
add esp, 4
jmp 0x1007677e
mov edi, dword [esi + 4]
lea edx, [esi + 4]
mov eax, dword [ebx + 0x68]
mov dword [esp + 0x20], 0
mov dword [esp + 0x28], eax
cmp edi, 0x10
jb 0x100767e0
mov ecx, dword [esi + 8]
xor edi, 0x10
movzx edx, word [esi + 2]
mov dword [esi], edx
mov dword [esi + 4], edi
movzx eax, word [ecx]
shl eax, 0x10
or eax, edx
lea edx, [esi + 4]
mov dword [esi], eax
lea eax, [ebp - 2]
mov dword [esi + 0xc], eax
lea eax, [ecx + 2]
mov dword [esi + 8], eax
mov eax, dword [esi]
mov ecx, edi
mov dword [esp + 0x34], eax
shr eax, cl
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x24], eax
movzx eax, al
lea ebp, [ecx + eax*4]
mov al, byte [ebp]
mov dword [esp + 0x28], ebp
cmp al, 8
jbe 0x1007682d
mov ebp, dword [esp + 0x24]
add edi, 8
movzx eax, al
mov dword [edx], edi
shr ebp, 8
mov ecx, dword [eax*4 + 0x10129028]
and ecx, ebp
mov ebp, dword [esp + 0x28]
movzx eax, word [ebp + 2]
add ecx, eax
mov al, byte [ebp + ecx*4]
lea ebp, [ebp + ecx*4]
movzx eax, al
add eax, edi
mov dword [edx], eax
movzx eax, word [ebp + 2]
mov ebp, dword [eax*8 + 0x101238b0]
mov ecx, ebp
mov edi, dword [eax*8 + 0x101238b4]
mov eax, edi
shrd ecx, eax, 0x10
mov dword [esp + 0x1c], ebp
movsx eax, cl
mov ecx, ebp
mov dword [ebx + 0x10c], eax
mov eax, edi
shrd ecx, eax, 0x18
mov eax, dword [ebx + 0x74]
movzx ecx, cl
mov dword [ebx + 0xb4], ecx
mov dword [esp + 0x2c], edi
movzx ebp, di
mov al, byte [ecx + eax]
mov byte [ebx + 0x104], al
mov eax, dword [esp + 0x1c]
test al, al
je 0x100769ae
mov ecx, dword [edx]
movzx eax, al
mov dword [esp + 0x14], eax
cmp eax, 0x10
ja 0x100768fa
cmp ecx, 0x10
jb 0x100768cb
mov eax, dword [esp + 0x34]
xor ecx, 0x10
shr eax, 0x10
mov dword [esi], eax
mov dword [esp + 0x34], eax
mov eax, dword [esi + 8]
mov dword [edx], ecx
movzx edi, word [eax]
add dword [esi + 0xc], 0xfffffffe
shl edi, 0x10
or edi, dword [esp + 0x34]
add eax, 2
mov dword [esi], edi
mov dword [esi + 8], eax
jmp 0x100768cf
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x14]
mov eax, edi
shr eax, cl
mov esi, dword [esi*4 + 0x10129048]
and esi, eax
mov eax, dword [esp + 0x14]
add eax, ecx
mov dword [esp + 0x20], esi
mov ecx, edx
lea esi, [ebx + 8]
mov dword [ecx], eax
mov eax, dword [esp + 0x1c]
jmp 0x100769b2
cmp ecx, 0x10
jb 0x1007692c
mov eax, dword [esp + 0x34]
xor ecx, 0x10
shr eax, 0x10
mov dword [esi], eax
mov dword [esp + 0x34], eax
mov eax, dword [esi + 8]
mov dword [edx], ecx
movzx edi, word [eax]
add dword [esi + 0xc], 0xfffffffe
shl edi, 0x10
or edi, dword [esp + 0x34]
add eax, 2
mov dword [esi], edi
mov dword [esi + 8], eax
jmp 0x10076930
mov edi, dword [esp + 0x34]
mov eax, edi
mov dword [esp + 0x34], edi
shr eax, cl
and eax, dword [0x10129088]
mov dword [esp + 0x24], eax
lea eax, [ecx + 0x10]
mov dword [edx], eax
cmp eax, 0x10
jb 0x1007697b
xor eax, 0x10
mov ecx, edi
mov dword [edx], eax
mov dword [esp + 0x28], eax
mov eax, dword [esi + 8]
shr ecx, 0x10
mov dword [esi], ecx
movzx edi, word [eax]
add dword [esi + 0xc], 0xfffffffe
shl edi, 0x10
or edi, ecx
add eax, 2
mov dword [esi + 8], eax
mov eax, dword [esp + 0x28]
mov dword [esi], edi
mov dword [esp + 0x34], edi
mov ecx, eax
shr dword [esp + 0x34], cl
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx*4 + 0x10129008]
and ecx, dword [esp + 0x34]
shl ecx, 0x10
or ecx, dword [esp + 0x24]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
add ecx, 0xfffffff0
add eax, ecx
mov ecx, edx
mov dword [ecx], eax
mov eax, dword [esp + 0x1c]
jmp 0x100769b2
mov edi, dword [esp + 0x34]
mov ecx, dword [edx]
shr eax, 8
movzx eax, al
mov dword [esp + 0x34], eax
cmp eax, 0x10
ja 0x10076a18
cmp ecx, 0x10
jb 0x100769f8
mov eax, dword [esi + 8]
xor ecx, 0x10
shr edi, 0x10
mov dword [esi], edi
mov dword [edx], ecx
movzx esi, word [eax]
add dword [ebx + 0x14], 0xfffffffe
shl esi, 0x10
or esi, edi
add eax, 2
mov dword [esp + 0x1c], esi
lea esi, [ebx + 8]
mov edi, dword [esp + 0x1c]
mov dword [esi + 8], eax
mov eax, edi
mov dword [esi], edi
jmp 0x100769fa
mov eax, edi
mov edi, dword [esp + 0x34]
shr eax, cl
mov edi, dword [edi*4 + 0x10129048]
and edi, eax
add ecx, dword [esp + 0x34]
mov dword [esp + 0x28], edi
mov eax, edi
jmp 0x10076ab5
cmp ecx, 0x10
jb 0x10076a49
mov eax, dword [esi + 8]
xor ecx, 0x10
shr edi, 0x10
mov dword [esi], edi
mov dword [edx], ecx
movzx esi, word [eax]
add dword [ebx + 0x14], 0xfffffffe
shl esi, 0x10
or esi, edi
add eax, 2
mov dword [esp + 0x28], esi
lea esi, [ebx + 8]
mov edi, dword [esp + 0x28]
mov dword [esi], edi
mov dword [esi + 8], eax
mov eax, edi
shr eax, cl
and eax, dword [0x10129088]
mov dword [esp + 0x28], eax
lea eax, [ecx + 0x10]
mov dword [esp + 0x1c], eax
mov dword [edx], eax
cmp eax, 0x10
jb 0x10076a90
xor eax, 0x10
mov ecx, edi
mov dword [edx], eax
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 8]
shr ecx, 0x10
mov dword [esi], ecx
movzx edi, word [eax]
add dword [esi + 0xc], 0xfffffffe
shl edi, 0x10
or edi, ecx
add eax, 2
mov dword [esi + 8], eax
mov eax, dword [esp + 0x1c]
mov dword [esi], edi
mov ecx, eax
mov eax, dword [esp + 0x34]
shr edi, cl
mov ecx, dword [esp + 0x1c]
mov eax, dword [eax*4 + 0x10129008]
and eax, edi
mov edi, dword [esp + 0x34]
shl eax, 0x10
add edi, 0xfffffff0
or eax, dword [esp + 0x28]
add ecx, edi
mov edi, edx
mov dword [edi], ecx
mov ecx, dword [esp + 0x2c]
mov edi, dword [esp + 0x18]
shr ecx, 0x10
add ecx, eax
mov dword [ebx + 0x108], ecx
dec dword [ebx + 0xc4]
add ebp, dword [esp + 0x20]
mov dword [esp + 0x14], ebp
je 0x10076e42
sub dword [ebx + 0xb8], ebp
nop word [eax + eax]
cmp dword [ebx + 0xb0], 0
je 0x10076d07
mov ebp, dword [edx]
mov eax, dword [ebx + 0x100]
mov dword [esp + 0x34], eax
cmp ebp, 0x10
jb 0x10076b34
mov ecx, dword [esi + 8]
xor ebp, 0x10
movzx edx, word [esi + 2]
mov dword [esi], edx
mov dword [esi + 4], ebp
movzx eax, word [ecx]
shl eax, 0x10
or eax, edx
add dword [esi + 0xc], 0xfffffffe
mov dword [esi], eax
lea edx, [esi + 4]
lea eax, [ecx + 2]
mov dword [esi + 8], eax
mov eax, dword [esi]
mov ecx, ebp
mov ebp, dword [esp + 0x34]
shr eax, cl
and eax, dword [0x10129068]
movzx ecx, byte [ebp + eax*4]
movzx eax, word [ebp + eax*4 + 2]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x34], eax
nop word [eax + eax]
mov ebp, dword [esi + 0xc]
cmp ebp, 0x1c
jb 0x1007737e
cmp dword [ebx + 0xc0], 0
jne 0x10076bee
push ebx
call fcn.10075b70
mov edi, dword [esi + 4]
lea edx, [esi + 4]
mov eax, dword [ebx + 0x100]
add esp, 4
mov dword [esp + 0x34], eax
cmp edi, 0x10
jb 0x10076bb9
mov ecx, dword [esi + 8]
xor edi, 0x10
movzx edx, word [esi + 2]
mov dword [esi], edx
mov dword [esi + 4], edi
movzx eax, word [ecx]
shl eax, 0x10
or eax, edx
add dword [esi + 0xc], 0xfffffffe
mov dword [esi], eax
lea edx, [esi + 4]
lea eax, [ecx + 2]
mov dword [esi + 8], eax
mov eax, dword [esi]
mov ecx, edi
mov edi, dword [esp + 0x34]
mov ebp, dword [esi + 0xc]
shr eax, cl
and eax, dword [0x10129068]
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 + 0x20], ecx
mov dword [esp + 0x34], eax
je 0x10076d07
mov edi, dword [ebx + 0x100]
mov dword [esp + 0x1c], edi
mov edi, dword [edx]
mov dword [esp + 0x24], eax
cmp ecx, 8
jbe 0x10076c77
cmp edi, 0x10
jb 0x10076c2d
mov ecx, dword [esi + 8]
xor edi, 0x10
movzx edx, word [esi + 2]
mov dword [esi], edx
mov dword [esi + 4], edi
movzx eax, word [ecx]
shl eax, 0x10
or eax, edx
add ebp, 0xfffffffe
mov dword [esi], eax
lea eax, [ecx + 2]
mov dword [esi + 0xc], ebp
mov dword [esi + 8], eax
mov edx, dword [esi]
mov ecx, edi
mov eax, dword [esp + 0x20]
add edi, 8
mov dword [esp + 0x2c], edx
shr edx, cl
mov ecx, edx
mov eax, dword [eax*4 + 0x10129028]
shr ecx, 8
and ecx, eax
mov dword [esi + 4], edi
add ecx, dword [esp + 0x34]
movzx eax, dl
lea edx, [esi + 4]
add eax, ecx
mov ecx, dword [esp + 0x1c]
lea ecx, [ecx + eax*4]
movzx eax, byte [ecx]
add edi, eax
mov dword [edx], edi
movzx eax, word [ecx + 2]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x2c]
jmp 0x10076c7d
mov eax, dword [esi]
add edi, ecx
mov dword [edx], edi
cmp edi, 0x10
jb 0x10076ca7
mov ecx, dword [esi + 8]
xor edi, 0x10
shr eax, 0x10
mov dword [esi], eax
mov dword [edx], edi
movzx edx, word [ecx]
shl edx, 0x10
or edx, eax
lea eax, [ebp - 2]
mov dword [esi + 0xc], eax
lea eax, [ecx + 2]
mov dword [esi], edx
mov dword [esi + 8], eax
jmp 0x10076ca9
mov edx, eax
mov eax, dword [esp + 0x1c]
mov ecx, edi
mov edi, dword [esp + 0x18]
shr edx, cl
and edx, dword [0x10129068]
movzx ecx, byte [eax + edx*4]
movzx edx, word [eax + edx*4 + 2]
mov eax, dword [ebx + 0x60]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x20], 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 0x10077365
test edx, edx
je 0x10076e35
mov eax, dword [esp + 0x34]
lea edx, [esi + 4]
jmp 0x10076b60
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 0x10077386
cmp dword [ebx + 0xc0], 0
jne 0x10076d59
push ebx
call fcn.10075b70
add esp, 4
cmp dword [ebx + 0xb0], 0
jne 0x10076e73
mov ecx, dword [ebx + 0x6c]
movzx eax, byte [esp + 0x13]
mov edi, dword [esi + 4]
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 0x10076db8
mov ecx, dword [esi + 8]
xor edi, 0x10
movzx edx, word [esi + 2]
mov dword [esi], edx
mov dword [esi + 4], 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 0x10076df7
shr dword [esp + 0x34], 8
add edi, 8
movzx eax, al
mov dword [esi + 4], edi
mov ecx, dword [eax*4 + 0x10129028]
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 [esi + 4], 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 0x10077365
test edx, edx
jne 0x10076d30
cmp dword [ebx + 0xb8], 0
jle 0x10077306
mov ecx, dword [ebx + 0x10c]
test ecx, ecx
js 0x10076e7b
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 0x10077121
lea edx, [esi + 4]
jmp 0x10076af0
cmp dword [ebx + 0xc8], 0
jne 0x10076e8d
push ebx
call fcn.10075860
add esp, 4
movzx ecx, byte [ebx + 0x104]
lea edx, [ebx + 0xc]
mov eax, dword [ebx + 0x98]
mov ebp, dword [edx]
mov dword [esp + 0x1c], edx
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x34], eax
cmp ebp, 0x10
jb 0x10076ed9
mov eax, dword [esp + 0x1c]
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 + 0x1c]
mov dword [esi], eax
lea eax, [ecx + 2]
mov dword [ebx + 0x10], eax
mov eax, dword [esi]
mov ecx, ebp
mov dword [esp + 0x14], eax
shr eax, cl
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x20], eax
movzx eax, al
lea eax, [ecx + eax*4]
mov dword [esp + 0x34], eax
mov al, byte [eax]
cmp al, 8
jbe 0x10076f2a
shr dword [esp + 0x20], 8
add ebp, 8
movzx eax, al
mov dword [edx], ebp
mov ecx, dword [eax*4 + 0x10129028]
mov eax, dword [esp + 0x34]
and ecx, dword [esp + 0x20]
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 + 0x28], eax
mov dword [ecx], 0
test eax, 0xfffffff0
jne 0x10076ffe
mov dword [ebx + 0x10c], eax
lea ebp, [ebx + 0x48]
mov dword [esp + 0x24], ebp
cmp eax, 3
ja 0x10076f9f
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 + 0x28]
dec eax
and eax, 3
sub ecx, edx
mov ebp, dword [ebx + eax*4 + 0x4c]
mov eax, dword [esp + 0x24]
mov dword [eax], ecx
mov ecx, eax
jmp 0x10077121
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 0x10077127
mov dword [ebx + 0x10c], 0x7fffffff
mov ebp, 0x7fffffff
jmp 0x10077127
movzx eax, byte [eax + ebx + 0x270]
mov ecx, dword [edx]
mov dword [esp + 0x20], eax
cmp eax, 0x10
ja 0x10077065
cmp ecx, 0x10
jb 0x10077049
mov eax, dword [ebx + 0x10]
xor ecx, 0x10
mov ebp, dword [esp + 0x14]
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 0x1007704d
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x20]
shr eax, cl
mov ebp, dword [ebp*4 + 0x10129048]
and ebp, eax
mov eax, dword [esp + 0x20]
jmp 0x100770ff
cmp ecx, 0x10
jb 0x10077091
mov eax, dword [ebx + 0x10]
xor ecx, 0x10
mov ebp, dword [esp + 0x14]
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 0x10077095
mov edx, dword [esp + 0x14]
mov eax, edx
lea ebp, [ecx + 0x10]
shr eax, cl
and eax, dword [0x10129088]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x24], ebp
mov dword [eax], ebp
cmp ebp, 0x10
jb 0x100770dc
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 + 0x20]
mov ebp, dword [ecx*4 + 0x10129008]
and ebp, edx
mov edx, dword [esp + 0x1c]
shl ebp, 0x10
or ebp, dword [esp + 0x2c]
add eax, 0xfffffff0
add eax, ecx
mov dword [edx], eax
mov eax, dword [esp + 0x28]
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 0x10077143
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 0x10077251
cmp ebp, 0x7ffffffc
jg 0x100773c6
lea eax, [edx - 4]
cmp eax, 0x14
ja 0x100773b9
sub ebp, dword [esp + 0x28]
mov edx, dword [ebx + 0x248]
dec ebp
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0x14]
movzx ecx, byte [edx + ebp]
mov eax, dword [edx + ebp*4 + 0x20]
mov dword [esp + 0x2c], eax
mov eax, dword [ecx*4 + 0x10129048]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x20]
and dword [esp + 0x1c], eax
sar eax, cl
mov dword [esp + 0x20], 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 0x100773ac
mov eax, dword [ebx + 0x24c]
mov ecx, dword [esp + 0x20]
cmp ecx, dword [eax + 0xc]
jge 0x1007739f
mov edx, dword [esp + 0x1c]
lea esi, [ebx + 8]
movsx eax, word [eax + 0x18]
imul edx, ebp
add edx, dword [esp + 0x34]
add edx, dword [esp + 0x2c]
cmp ecx, eax
jne 0x10077201
mov eax, dword [ebx + 0x60]
push ebp
push edx
add eax, edi
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, ebp
jmp 0x10077219
mov eax, dword [ebx + 0x24c]
push ecx
push eax
mov eax, dword [ebx + 0x60]
push ebp
push edx
add eax, edi
push eax
call fcn.10081a20
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 0x100772fc
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 + 0x24], eax
lea eax, [edx + edi]
mov dword [esp + 0x28], eax
mov eax, dword [ecx]
and eax, 3
mov dword [esp + 0x20], 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 + 0x24]
inc dword [ecx]
sub dword [ebp], edx
cmp esi, edi
mov ecx, dword [esp + 0x20]
lea esi, [ebx + 8]
movups xmm0, xmmword [eax]
mov eax, dword [esp + 0x28]
movups xmmword [ecx], xmm0
jle 0x100772b2
cmp eax, dword [esp + 0x34]
jg 0x10077323
mov ecx, dword [ebx + 0x40]
cmp eax, ecx
jge 0x10077323
cmp dword [esp + 0x2c], ecx
jge 0x10077323
mov edi, eax
mov dword [esp + 0x18], edi
cmp edx, 0x10
jle 0x100772fc
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
add ecx, 0x10
cmp edx, 0x20
jle 0x100772f5
lea eax, [edx - 0x10]
push eax
mov eax, dword [esp + 0x24]
push ecx
add eax, 0x10
push eax
call sub.VCRUNTIME140.dll_memcpy
mov edx, dword [esp + 0x20]
add esp, 0xc
jmp 0x100772fc
movups xmm0, xmmword [ecx]
movups xmmword [eax + 0x10], xmm0
cmp dword [ebp], 0
jg 0x1007677e
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 0x1007735c
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 0x100773d3
sub edx, 1
mov dword [esp + 0x14], edx
jns 0x10077331
cmp dword [ebx + 0xb8], 0
jmp 0x10077300
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], 8
jmp 0x100773f2
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 dword [ebx], 7
mov edx, dword [esp + 0x14]
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