Function at 0x101282a0
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 0x10128f4a
push esi
call fcn.1012b290
mov eax, dword [ebx]
add esp, 4
cmp eax, 7
je 0x10128302
cmp eax, 8
je 0x101282fa
cmp eax, 9
je 0x101289b2
cmp eax, 0xa
je 0x10128e7f
pop edi
pop esi
pop ebp
mov eax, 0xffffffe1
pop ebx
add esp, 0x20
ret
lea ebp, [esi + 4]
jmp 0x1012866a
cmp dword [esi + 0xc], 0x1c
jb 0x10128f40
cmp dword [ebx + 0xc4], 0
jne 0x10128320
push ebx
call fcn.10126c90
add esp, 4
jmp 0x10128302
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 0x10128365
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 0x101283bf
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 + 0x101763f8]
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 + 0x10174de0]
mov eax, dword [eax*8 + 0x10174de4]
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 0x10128533
mov ecx, dword [ebp]
movzx eax, al
mov dword [esp + 0x1c], eax
cmp eax, 0x10
ja 0x10128488
cmp ecx, 0x10
jb 0x10128466
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 + 0x10176418]
and edi, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x18]
jmp 0x10128529
cmp ecx, 0x10
jb 0x101284b5
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 [0x10176458]
mov dword [esp + 0x2c], eax
lea eax, [ecx + 0x10]
mov dword [ebp], eax
cmp eax, 0x10
jb 0x10128502
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 + 0x101763d8]
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 0x1012859a
cmp ecx, 0x10
jb 0x1012857a
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 0x1012857c
mov eax, edx
mov edx, dword [esp + 0x34]
shr eax, cl
mov edx, dword [edx*4 + 0x10176418]
and edx, eax
add ecx, dword [esp + 0x34]
mov dword [esp + 0x2c], edx
mov eax, edx
jmp 0x10128639
cmp ecx, 0x10
jb 0x101285cb
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 [0x10176458]
mov dword [esp + 0x2c], eax
lea eax, [ecx + 0x10]
mov dword [esp + 0x20], eax
mov dword [ebp], eax
cmp eax, 0x10
jb 0x10128614
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 + 0x101763d8]
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 0x101289b2
sub dword [ebx + 0xb8], eax
mov edx, dword [0x10176438]
cmp dword [ebx + 0xb0], 0
je 0x1012887a
mov edi, dword [ebp]
mov eax, dword [ebx + 0x100]
mov dword [esp + 0x34], eax
cmp edi, 0x10
jb 0x101286b8
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 [0x10176438]
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 0x10128eda
cmp dword [ebx + 0xc0], 0
jne 0x10128765
push ebx
call fcn.101276f0
mov edi, dword [ebp]
add esp, 4
mov eax, dword [ebx + 0x100]
mov dword [esp + 0x34], eax
cmp edi, 0x10
jb 0x10128731
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 [0x10176438]
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 0x1012887a
mov edx, dword [ebx + 0x100]
mov edi, dword [ebp]
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], eax
cmp ecx, 8
jbe 0x101287ec
cmp edi, 0x10
jb 0x101287a3
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 + 0x101763f8]
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 0x101287f4
lea edx, [edi + ecx]
mov ecx, dword [esi]
mov dword [ebp], edx
cmp edx, 0x10
jb 0x1012881d
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 0x1012881f
mov edi, ecx
mov eax, dword [esp + 0x24]
mov ecx, edx
shr edi, cl
and edi, dword [0x10176438]
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 0x10128ec1
test edx, edx
je 0x101289a5
mov eax, dword [esp + 0x34]
jmp 0x101286e0
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 0x10128eda
cmp dword [ebx + 0xc0], 0
jne 0x101288c9
push ebx
call fcn.101276f0
add esp, 4
cmp dword [ebx + 0xb0], 0
jne 0x1012866a
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 0x10128928
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 0x10128967
shr dword [esp + 0x34], 8
add edi, 8
movzx eax, al
mov dword [ebp], edi
mov ecx, dword [eax*4 + 0x101763f8]
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 0x10128ec1
test edx, edx
jne 0x101288a0
cmp dword [ebx + 0xb8], 0
jle 0x10128e66
mov ecx, dword [ebx + 0x10c]
test ecx, ecx
js 0x101289e3
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 0x10128c89
cmp dword [ebx + 0xc8], 0
jne 0x101289f5
push ebx
call fcn.101273e0
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 0x10128a41
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 0x10128a92
shr dword [esp + 0x28], 8
add ebp, 8
movzx eax, al
mov dword [edx], ebp
mov ecx, dword [eax*4 + 0x101763f8]
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 0x10128b66
mov dword [ebx + 0x10c], eax
lea ebp, [ebx + 0x48]
mov dword [esp + 0x28], ebp
cmp eax, 3
ja 0x10128b07
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 0x10128c89
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 0x10128c8f
mov dword [ebx + 0x10c], 0x7fffffff
mov ebp, 0x7fffffff
jmp 0x10128c8f
movzx eax, byte [eax + ebx + 0x270]
mov ecx, dword [edx]
mov dword [esp + 0x28], eax
cmp eax, 0x10
ja 0x10128bcd
cmp ecx, 0x10
jb 0x10128bb1
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 0x10128bb5
mov eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x28]
shr eax, cl
mov ebp, dword [ebp*4 + 0x10176418]
and ebp, eax
mov eax, dword [esp + 0x28]
jmp 0x10128c67
cmp ecx, 0x10
jb 0x10128bf9
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 0x10128bfd
mov edx, dword [esp + 0x1c]
mov eax, edx
lea ebp, [ecx + 0x10]
shr eax, cl
and eax, dword [0x10176458]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x24], ebp
mov dword [eax], ebp
cmp ebp, 0x10
jb 0x10128c44
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 + 0x101763d8]
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 0x10128cab
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 0x10128db1
cmp ebp, 0x7ffffffc
jg 0x10128f1a
lea eax, [edx - 4]
cmp eax, 0x14
ja 0x10128f0d
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 + 0x10176418]
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 0x10128f00
mov eax, dword [ebx + 0x24c]
cmp ebp, dword [eax + 0xc]
jge 0x10128ef3
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 0x10128d61
mov eax, dword [ebx + 0x60]
push ecx
push edx
add eax, edi
push eax
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [esp + 0x40]
add esp, 0xc
jmp 0x10128d79
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.1012f580
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 0x10128e5c
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 0x10128e12
cmp eax, dword [esp + 0x34]
jg 0x10128e83
mov ecx, dword [ebx + 0x40]
cmp eax, ecx
jge 0x10128e83
cmp dword [esp + 0x2c], ecx
jge 0x10128e83
mov edi, eax
mov dword [esp + 0x18], edi
cmp edx, 0x10
jle 0x10128e5c
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x28]
add ecx, 0x10
cmp edx, 0x20
jle 0x10128e55
lea eax, [edx - 0x10]
push eax
mov eax, dword [esp + 0x2c]
push ecx
add eax, 0x10
push eax
call sub.VCRUNTIME140.dll_memcpy
mov edx, dword [esp + 0x20]
add esp, 0xc
jmp 0x10128e5c
movups xmm0, xmmword [ecx]
movups xmmword [eax + 0x10], xmm0
cmp dword [ebp], 0
jg 0x10128302
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 0x10128eb8
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 0x10128f27
sub edx, 1
mov dword [esp + 0x14], edx
jns 0x10128e91
cmp dword [ebx + 0xb8], 0
jmp 0x10128e60
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