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

Disassembly:
sub esp, 0x2c
push ebx
mov ebx, ecx
cmp dword [ebx + 0x14], 0x1c
push ebp
push esi
mov ebp, dword [ebx + 0x34]
lea esi, [ebx + 8]
push edi
mov edi, dword [ebx + 4]
mov dword [esp + 0x30], ebp
mov dword [esp + 0x20], edi
jb 0x100a602a
mov ecx, esi
call fcn.100e7440
mov eax, dword [ebx]
cmp eax, 7
je 0x100a531a
cmp eax, 8
je 0x100a567f
cmp eax, 9
je 0x100a59a8
cmp eax, 0xa
je 0x100a5f4c
mov eax, 0xffffffe1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret
cmp dword [esi + 0xc], 0x1c
jb 0x100a6024
cmp dword [ebx + 0xc8], 0
jne 0x100a5336
mov ecx, ebx
call fcn.100a4440
jmp 0x100a531a
mov edi, dword [esi + 4]
mov eax, dword [ebx + 0x6c]
mov edx, dword [esi]
mov dword [esp + 0x20], 0
mov dword [esp + 0x18], eax
cmp edi, 0x10
jb 0x100a537d
mov ecx, dword [esi + 8]
xor edi, 0x10
shr edx, 0x10
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 [esp + 0x14], eax
mov dword [esi], eax
lea eax, [ecx + 2]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x14]
mov edx, eax
jmp 0x100a537f
mov eax, edx
mov ecx, edi
shr eax, cl
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x14], eax
movzx eax, al
lea ecx, [ecx + eax*4]
mov al, byte [ecx]
mov dword [esp + 0x28], ecx
cmp al, 8
jbe 0x100a53d4
add edi, 8
movzx eax, al
mov dword [esi + 4], edi
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x14]
mov ecx, dword [eax*4 + 0x1017cab0]
shr edi, 8
and ecx, edi
mov edi, dword [esp + 0x28]
movzx eax, word [edi + 2]
add ecx, eax
mov al, byte [edi + ecx*4]
lea edi, [edi + ecx*4]
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
movzx eax, al
add eax, edi
mov dword [esi + 4], eax
movzx eax, word [ecx + 2]
mov edi, dword [eax*8 + 0x1017b46c]
mov ecx, dword [eax*8 + 0x1017b468]
mov eax, edi
mov dword [esp + 0x24], ecx
shrd ecx, eax, 0x10
mov dword [esp + 0x1c], edi
movsx eax, cl
mov ecx, dword [esp + 0x24]
mov dword [ebx + 0x11c], eax
mov eax, edi
shrd ecx, eax, 0x18
mov eax, dword [ebx + 0x78]
movzx ecx, cl
mov dword [ebx + 0xb8], ecx
movzx edi, di
mov al, byte [ecx + eax]
mov byte [ebx + 0x10c], al
mov eax, dword [esp + 0x24]
test al, al
je 0x100a555c
movzx ecx, al
mov eax, dword [esi + 4]
mov dword [esp + 0x14], ecx
cmp ecx, 0x10
ja 0x100a54a1
cmp eax, 0x10
jb 0x100a5479
xor eax, 0x10
shr edx, 0x10
mov dword [esi + 4], eax
mov dword [esp + 0x28], eax
mov eax, dword [esi + 8]
mov dword [esi], edx
movzx ecx, word [eax]
add dword [esi + 0xc], 0xfffffffe
shl ecx, 0x10
or ecx, edx
add eax, 2
mov dword [esi + 8], eax
mov edx, ecx
mov eax, dword [esp + 0x28]
mov dword [esp + 0x20], ecx
mov dword [esi], ecx
jmp 0x100a547d
mov dword [esp + 0x20], edx
mov ecx, eax
shr dword [esp + 0x20], cl
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx*4 + 0x1017cad0]
and dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
add ecx, eax
mov eax, dword [esp + 0x24]
jmp 0x100a555f
mov ecx, edx
cmp eax, 0x10
jb 0x100a54d2
xor eax, 0x10
shr ecx, 0x10
mov dword [esi + 4], eax
mov dword [esp + 0x28], eax
mov eax, dword [esi + 8]
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], edx
mov ecx, edx
mov dword [esi + 8], eax
jmp 0x100a54d6
mov dword [esp + 0x28], eax
mov eax, ecx
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x28]
shr eax, cl
movzx eax, ax
mov dword [esp + 0x18], eax
lea eax, [ecx + 0x10]
cmp eax, 0x10
jb 0x100a551f
mov ecx, dword [esp + 0x20]
xor eax, 0x10
mov dword [esi + 4], 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, edx
mov dword [esi], edx
jmp 0x100a5527
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x20]
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
shr eax, cl
add ecx, 0xfffffff0
mov ebp, dword [ebp*4 + 0x1017ca90]
and ebp, eax
mov eax, ebp
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0x30]
shl eax, 0x10
or eax, dword [esp + 0x18]
add ecx, dword [esp + 0x14]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x24]
jmp 0x100a555f
mov ecx, dword [esi + 4]
shr eax, 8
movzx eax, al
mov dword [esp + 0x14], eax
cmp eax, 0x10
ja 0x100a55bc
cmp ecx, 0x10
jb 0x100a55a3
mov eax, dword [esi + 8]
xor ecx, 0x10
shr edx, 0x10
mov dword [esi], edx
mov dword [esi + 4], ecx
movzx ebp, word [eax]
add dword [esi + 0xc], 0xfffffffe
shl ebp, 0x10
or ebp, edx
add eax, 2
mov edx, ebp
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0x30]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x14]
mov dword [esi], edx
add eax, ecx
shr edx, cl
mov dword [esi + 4], eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax*4 + 0x1017cad0]
and eax, edx
jmp 0x100a5656
cmp ecx, 0x10
jb 0x100a55ed
mov eax, dword [esi + 8]
xor ecx, 0x10
shr edx, 0x10
mov dword [esi], edx
mov dword [esi + 4], ecx
movzx ebp, word [eax]
add dword [esi + 0xc], 0xfffffffe
shl ebp, 0x10
or ebp, edx
add eax, 2
mov edx, ebp
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0x30]
mov dword [esi], edx
mov dword [esi + 8], eax
mov eax, edx
shr eax, cl
movzx eax, ax
mov dword [esp + 0x24], eax
lea eax, [ecx + 0x10]
mov dword [esi + 4], eax
cmp eax, 0x10
jb 0x100a5631
xor eax, 0x10
mov ecx, edx
mov dword [esp + 0x18], eax
mov dword [esi + 4], 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
mov ecx, dword [esp + 0x18]
add eax, 2
mov dword [esi], edx
mov dword [esi + 8], eax
jmp 0x100a5634
mov ecx, dword [ebx + 0xc]
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
shr edx, cl
add eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax*4 + 0x1017ca90]
and eax, edx
shl eax, 0x10
or eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
shr ecx, 0x10
add ecx, eax
mov dword [ebx + 0x118], ecx
dec dword [ebx + 0xc8]
add edi, dword [esp + 0x20]
mov dword [esp + 0x20], edi
je 0x100a59a8
sub dword [ebx + 0xbc], edi
mov eax, dword [ebx + 0xb4]
test eax, eax
je 0x100a5880
mov eax, dword [ebx + 0x108]
mov ecx, dword [esi + 4]
mov dword [esp + 0x18], eax
mov eax, dword [esi]
cmp ecx, 0x10
jb 0x100a56cb
shr eax, 0x10
xor ecx, 0x10
mov dword [esi], eax
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 8]
mov dword [esi + 4], ecx
movzx edx, word [eax]
add dword [esi + 0xc], 0xfffffffe
shl edx, 0x10
or edx, dword [esp + 0x1c]
add eax, 2
mov dword [esi], edx
mov dword [esi + 8], eax
jmp 0x100a56cd
mov edx, eax
shr edx, cl
movzx eax, dl
mov edx, dword [esp + 0x18]
movzx ecx, byte [edx + eax*4]
movzx edx, word [edx + eax*4 + 2]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x24], edx
nop word [eax + eax]
cmp dword [esi + 0xc], 0x1c
jb 0x100a5fa5
cmp dword [ebx + 0xc4], 0
jne 0x100a576c
mov ecx, ebx
call fcn.100a3e40
mov edi, dword [esi + 4]
mov eax, dword [ebx + 0x108]
mov dword [esp + 0x1c], eax
cmp edi, 0x10
jb 0x100a5741
mov eax, dword [esi + 8]
xor edi, 0x10
movzx ecx, word [esi + 2]
mov dword [esi], ecx
mov dword [esi + 4], edi
movzx edx, word [eax]
add dword [esi + 0xc], 0xfffffffe
shl edx, 0x10
or edx, ecx
add eax, 2
mov dword [esi], edx
mov dword [esi + 8], eax
jmp 0x100a5743
mov edx, dword [esi]
mov ecx, edi
shr edx, cl
cmp dword [ebx + 0xb4], 0
movzx eax, dl
mov edx, dword [esp + 0x1c]
movzx ecx, byte [edx + eax*4]
movzx edx, word [edx + eax*4 + 2]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x24], edx
je 0x100a5880
mov eax, dword [ebx + 0x108]
mov edi, dword [esi + 4]
mov dword [esp + 0x28], eax
mov dword [esp + 0x18], edx
cmp ecx, 8
jbe 0x100a57ef
cmp edi, 0x10
jb 0x100a57ac
mov eax, dword [esi + 8]
xor edi, 0x10
movzx ecx, word [esi + 2]
mov dword [esi], ecx
mov dword [esi + 4], edi
movzx ebp, word [eax]
add dword [esi + 0xc], 0xfffffffe
shl ebp, 0x10
or ebp, ecx
add eax, 2
mov dword [esi], ebp
mov dword [esi + 8], eax
jmp 0x100a57ae
mov ebp, dword [esi]
mov ecx, edi
mov edx, ebp
shr edx, cl
add edi, 8
mov ecx, dword [esp + 0x14]
mov eax, edx
shr eax, 8
mov dword [esi + 4], edi
mov ecx, dword [ecx*4 + 0x1017cab0]
and ecx, eax
movzx eax, dl
add ecx, dword [esp + 0x24]
add eax, ecx
mov ecx, dword [esp + 0x28]
movzx edx, byte [ecx + eax*4]
lea ecx, [ecx + eax*4]
add edx, edi
mov dword [esi + 4], edx
movzx eax, word [ecx + 2]
mov dword [esp + 0x18], eax
jmp 0x100a57f7
mov ebp, dword [esi]
lea edx, [edi + ecx]
mov dword [esi + 4], edx
cmp edx, 0x10
jb 0x100a5826
mov eax, dword [esi + 8]
xor edx, 0x10
shr ebp, 0x10
mov dword [esi], ebp
mov dword [esi + 4], edx
movzx ecx, word [eax]
add dword [esi + 0xc], 0xfffffffe
shl ecx, 0x10
or ecx, ebp
add eax, 2
mov dword [esi + 8], eax
mov eax, ecx
mov dword [esp + 0x1c], ecx
mov dword [esi], ecx
jmp 0x100a5828
mov eax, ebp
mov ebp, dword [esp + 0x30]
mov ecx, edx
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0x20]
shr eax, cl
dec edi
movzx eax, al
mov dword [esp + 0x20], edi
movzx ecx, byte [edx + eax*4]
movzx edx, word [edx + eax*4 + 2]
mov eax, dword [ebx + 0x64]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x24], edx
mov byte [eax + ebp], cl
inc ebp
dec dword [ebx + 0xc4]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x30], ebp
cmp ebp, dword [ebx + 0x40]
je 0x100a5f8c
test edi, edi
jne 0x100a56f0
jmp 0x100a599b
mov ecx, dword [ebx + 0x64]
lea eax, [ebp - 1]
and eax, dword [ebx + 0x44]
mov edi, dword [esp + 0x20]
mov al, byte [eax + ecx]
mov byte [esp + 0x2f], al
lea eax, [ebp - 2]
and eax, dword [ebx + 0x44]
mov al, byte [eax + ecx]
mov byte [esp + 0x37], al
cmp dword [esi + 0xc], 0x1c
jb 0x100a5fa5
cmp dword [ebx + 0xc4], 0
jne 0x100a58c9
mov ecx, ebx
call fcn.100a3e40
mov eax, dword [ebx + 0xb4]
test eax, eax
jne 0x100a568d
mov ecx, dword [ebx + 0x70]
movzx eax, byte [esp + 0x37]
mov edi, dword [esi + 4]
movzx edx, byte [eax + ecx + 0x100]
movzx eax, byte [esp + 0x2f]
movzx eax, byte [eax + ecx]
or edx, eax
mov eax, dword [ebx + 0x74]
movzx ecx, byte [edx + eax]
mov eax, dword [ebx + 0x7c]
mov ebp, dword [eax + ecx*4]
mov al, byte [esp + 0x2f]
mov byte [esp + 0x37], al
cmp edi, 0x10
jb 0x100a5926
mov eax, dword [esi + 8]
xor edi, 0x10
movzx ecx, word [esi + 2]
mov dword [esi], ecx
mov dword [esi + 4], edi
movzx edx, word [eax]
add dword [esi + 0xc], 0xfffffffe
shl edx, 0x10
or edx, ecx
add eax, 2
mov dword [esi], edx
mov dword [esi + 8], eax
jmp 0x100a5928
mov edx, dword [esi]
mov ecx, edi
shr edx, cl
movzx eax, dl
lea ebp, [ebp + eax*4]
mov al, byte [ebp]
cmp al, 8
jbe 0x100a595d
movzx eax, al
add edi, 8
shr edx, 8
mov dword [esi + 4], edi
mov ecx, dword [eax*4 + 0x1017cab0]
movzx eax, word [ebp + 2]
and ecx, edx
add ecx, eax
mov al, byte [ebp + ecx*4]
lea ebp, [ebp + ecx*4]
movzx eax, al
add eax, edi
mov edi, dword [esp + 0x20]
mov dword [esi + 4], eax
dec edi
mov cl, byte [ebp + 2]
mov ebp, dword [esp + 0x30]
mov eax, dword [ebx + 0x64]
mov byte [esp + 0x2f], cl
mov dword [esp + 0x20], edi
mov byte [eax + ebp], cl
inc ebp
dec dword [ebx + 0xc4]
mov dword [esp + 0x30], ebp
cmp ebp, dword [ebx + 0x40]
je 0x100a5f8c
test edi, edi
jne 0x100a58a1
cmp dword [ebx + 0xbc], 0
jle 0x100a5e9a
mov ecx, dword [ebx + 0x11c]
test ecx, ecx
js 0x100a59d7
xor eax, eax
test ecx, ecx
sete al
dec dword [ebx + 0x48]
mov dword [ebx + 0xb8], eax
mov eax, dword [ebx + 0x48]
and eax, 3
mov edx, dword [ebx + eax*4 + 0x4c]
mov dword [ebx + 0x11c], edx
jmp 0x100a5d94
cmp dword [ebx + 0xcc], 0
jne 0x100a59e7
mov ecx, ebx
call fcn.100a49c0
movzx ecx, byte [ebx + 0x10c]
mov eax, dword [ebx + 0x9c]
mov edi, dword [esi + 4]
mov edx, dword [esi]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x1c], eax
cmp edi, 0x10
jb 0x100a5a31
mov eax, dword [esi + 8]
xor edi, 0x10
shr edx, 0x10
mov dword [esi], edx
mov dword [esi + 4], edi
movzx ecx, word [eax]
add dword [esi + 0xc], 0xfffffffe
shl ecx, 0x10
or ecx, edx
add eax, 2
mov dword [esi + 8], eax
mov edx, ecx
mov dword [esp + 0x24], ecx
mov eax, ecx
mov dword [esi], ecx
jmp 0x100a5a33
mov eax, edx
mov ecx, edi
shr eax, cl
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x24], eax
movzx eax, al
lea ecx, [ecx + eax*4]
mov al, byte [ecx]
mov dword [esp + 0x14], ecx
cmp al, 8
jbe 0x100a5a88
add edi, 8
movzx eax, al
mov dword [esi + 4], edi
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x24]
mov ecx, dword [eax*4 + 0x1017cab0]
shr edi, 8
and ecx, edi
mov edi, dword [esp + 0x14]
movzx eax, word [edi + 2]
add ecx, eax
mov al, byte [edi + ecx*4]
lea edi, [edi + ecx*4]
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
movzx eax, al
add eax, edi
mov dword [esi + 4], eax
movzx eax, word [ecx + 2]
mov dword [ebx + 0x11c], eax
mov dword [ebx + 0xb8], 0
test eax, 0xfffffff0
jne 0x100a5b1b
mov edx, dword [ebx + 0x48]
test eax, eax
jne 0x100a5ace
lea eax, [edx - 1]
mov dword [ebx + 0x48], eax
and eax, 3
mov edx, dword [ebx + eax*4 + 0x4c]
mov dword [ebx + 0xb8], 1
jmp 0x100a5d88
lea ecx, [eax + eax]
mov eax, 0xaaafff1b
shr eax, cl
add eax, edx
and eax, 3
mov edx, dword [ebx + eax*4 + 0x4c]
mov eax, 0xfa5fa500
shr eax, cl
and eax, 3
test cl, 3
je 0x100a5af7
add edx, eax
jmp 0x100a5d88
sub edx, eax
mov dword [ebx + 0x11c], edx
test edx, edx
jg 0x100a5d8e
mov dword [ebx + 0x11c], SysReAllocStringLen
mov edx, SysReAllocString
jmp 0x100a5d8e
mov edi, eax
sub edi, dword [ebx + 0xf8]
js 0x100a5d85
mov ecx, dword [ebx + 0xf4]
test ecx, ecx
jne 0x100a5c5b
mov eax, edi
and edi, 1
shr eax, 1
add edi, 2
inc eax
mov ecx, eax
mov dword [esp + 0x14], eax
shl edi, cl
mov ecx, dword [esi + 4]
cmp eax, 0x10
ja 0x100a5bae
cmp ecx, 0x10
jb 0x100a5b87
mov eax, dword [esi + 8]
xor ecx, 0x10
shr edx, 0x10
mov dword [esi], edx
mov dword [esi + 4], ecx
movzx ebp, word [eax]
add dword [esi + 0xc], 0xfffffffe
shl ebp, 0x10
or ebp, edx
add eax, 2
mov edx, ebp
mov dword [esp + 0x1c], ebp
mov ebp, dword [esp + 0x30]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x14]
mov dword [esi], edx
add eax, ecx
shr edx, cl
mov dword [esi + 4], eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax*4 + 0x1017cad0]
and eax, edx
lea ecx, [edi + eax]
mov eax, dword [ebx + 0xf8]
add eax, 0xfffffffc
add eax, ecx
jmp 0x100a5d85
cmp ecx, 0x10
jb 0x100a5bdf
mov eax, dword [esi + 8]
xor ecx, 0x10
shr edx, 0x10
mov dword [esi], edx
mov dword [esi + 4], ecx
movzx ebp, word [eax]
add dword [esi + 0xc], 0xfffffffe
shl ebp, 0x10
or ebp, edx
add eax, 2
mov edx, ebp
mov dword [esp + 0x1c], ebp
mov ebp, dword [esp + 0x30]
mov dword [esi], edx
mov dword [esi + 8], eax
mov eax, edx
shr eax, cl
movzx eax, ax
mov dword [esp + 0x18], eax
lea eax, [ecx + 0x10]
mov dword [esi + 4], eax
cmp eax, 0x10
jb 0x100a5c23
xor eax, 0x10
mov ecx, edx
mov dword [esp + 0x1c], eax
mov dword [esi + 4], 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
mov ecx, dword [esp + 0x1c]
add eax, 2
mov dword [esi], edx
mov dword [esi + 8], eax
jmp 0x100a5c26
mov ecx, dword [ebx + 0xc]
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
shr edx, cl
add eax, ecx
mov dword [esi + 4], eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax*4 + 0x1017ca90]
and eax, edx
shl eax, 0x10
or eax, dword [esp + 0x18]
lea ecx, [edi + eax]
mov eax, dword [ebx + 0xf8]
add eax, 0xfffffffc
add eax, ecx
jmp 0x100a5d85
mov eax, dword [ebx + 0xfc]
and eax, edi
sar edi, cl
mov ecx, dword [esi + 4]
mov dword [esp + 0x24], eax
mov eax, edi
shr eax, 1
inc eax
mov dword [esp + 0x20], eax
cmp eax, 0x10
ja 0x100a5cc8
cmp ecx, 0x10
jb 0x100a5caf
mov eax, dword [esi + 8]
xor ecx, 0x10
shr edx, 0x10
mov dword [esi], edx
mov dword [esi + 4], ecx
movzx ebp, word [eax]
add dword [esi + 0xc], 0xfffffffe
shl ebp, 0x10
or ebp, edx
add eax, 2
mov edx, ebp
mov dword [esp + 0x1c], ebp
mov ebp, dword [esp + 0x30]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x20]
mov dword [esi], edx
add eax, ecx
shr edx, cl
mov ecx, dword [esp + 0x20]
mov dword [esi + 4], eax
mov eax, dword [ecx*4 + 0x1017cad0]
and eax, edx
jmp 0x100a5d66
cmp ecx, 0x10
jb 0x100a5cf9
mov eax, dword [esi + 8]
xor ecx, 0x10
shr edx, 0x10
mov dword [esi], edx
mov dword [esi + 4], ecx
movzx ebp, word [eax]
add dword [esi + 0xc], 0xfffffffe
shl ebp, 0x10
or ebp, edx
add eax, 2
mov edx, ebp
mov dword [esp + 0x1c], ebp
mov ebp, dword [esp + 0x30]
mov dword [esi], edx
mov dword [esi + 8], eax
mov eax, edx
shr eax, cl
movzx eax, ax
mov dword [esp + 0x18], eax
lea eax, [ecx + 0x10]
mov dword [esi + 4], eax
cmp eax, 0x10
jb 0x100a5d3d
xor eax, 0x10
mov ecx, edx
mov dword [esp + 0x1c], eax
mov dword [esi + 4], 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
mov ecx, dword [esp + 0x1c]
add eax, 2
mov dword [esi], edx
mov dword [esi + 8], eax
jmp 0x100a5d40
mov ecx, dword [ebx + 0xc]
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
shr edx, cl
add eax, ecx
mov ecx, dword [esp + 0x20]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax*4 + 0x1017ca90]
and eax, edx
shl eax, 0x10
or eax, dword [esp + 0x18]
and edi, 1
add eax, 0xfffffffc
add edi, 2
shl edi, cl
mov ecx, dword [ebx + 0xf4]
add eax, edi
shl eax, cl
add eax, dword [esp + 0x24]
add eax, dword [ebx + 0xf8]
lea edx, [eax - 0xf]
mov dword [ebx + 0x11c], edx
dec dword [ebx + 0xcc]
mov ecx, dword [ebx + 0x3c]
mov eax, dword [ebx + 0x38]
cmp ecx, eax
je 0x100a5da8
cmp ebp, eax
mov ecx, eax
cmovl ecx, ebp
mov dword [ebx + 0x3c], ecx
mov edi, dword [ebx + 0x118]
cmp edx, ecx
jle 0x100a5eb3
cmp edx, 0x7ffffffc
jg 0x100a5ffe
lea eax, [edi - 4]
cmp eax, 0x14
ja 0x100a5ff1
sub edx, ecx
dec edx
mov dword [esp + 0x18], edx
mov edx, dword [ebx + 0x1374]
mov eax, dword [edx + edi*4 + 0x20]
movzx ecx, byte [edx + edi]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x18]
sar eax, cl
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 0xb8]
add dword [ebx + 0x48], eax
mov eax, dword [edx + 0xa4]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x14], eax
test eax, eax
je 0x100a5fe4
mov eax, dword [ebx + 0x1378]
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [eax + 0xc]
jge 0x100a5fd7
mov edx, dword [esp + 0x24]
mov eax, dword [ebx + 0x64]
add eax, ebp
mov edx, dword [edx*4 + 0x1017cad0]
and edx, dword [esp + 0x18]
imul edx, edi
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 0x1378]
add edx, dword [esp + 0x14]
movsx eax, word [eax + 0x14]
add edx, dword [esp + 0x28]
cmp ecx, eax
jne 0x100a5e63
push edi
push edx
push dword [esp + 0x20]
call fcn.10146160
mov eax, edi
jmp 0x100a5e75
mov eax, dword [ebx + 0x1378]
push ecx
mov ecx, dword [esp + 0x1c]
push eax
push edi
call fcn.100e7bc0
sub dword [ebx + 0xbc], eax
add ebp, eax
add esp, 0xc
mov dword [esp + 0x30], ebp
cmp ebp, dword [ebx + 0x40]
jge 0x100a5fbe
cmp dword [ebx + 0xbc], 0
jg 0x100a531a
mov dword [ebx], 0xe
mov eax, 1
mov dword [ebx + 0x34], ebp
mov dword [ebx + 4], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret
mov eax, dword [ebx + 0x64]
mov ecx, ebp
sub ecx, edx
and ecx, dword [ebx + 0x44]
lea esi, [eax + ebp]
mov dword [esp + 0x24], esi
lea esi, [eax + ecx]
lea eax, [edi + ebp]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 0x48]
and eax, 3
mov dword [ebx + eax*4 + 0x4c], edx
lea edx, [ecx + edi]
inc dword [ebx + 0x48]
sub dword [ebx + 0xbc], edi
mov eax, dword [esp + 0x24]
movups xmm0, xmmword [esi]
lea esi, [ebx + 8]
movups xmmword [eax], xmm0
mov eax, dword [esp + 0x18]
cmp edx, ebp
jle 0x100a5f01
cmp eax, ecx
jg 0x100a5f4c
mov ecx, dword [ebx + 0x40]
cmp eax, ecx
jge 0x100a5f4c
cmp edx, ecx
jge 0x100a5f4c
mov ebp, eax
mov dword [esp + 0x30], ebp
cmp edi, 0x10
jle 0x100a5e8d
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
add ecx, 0x10
add edx, 0x10
cmp edi, 0x20
jle 0x100a5f41
lea eax, [edi - 0x10]
push eax
push ecx
push edx
call fcn.10146160
add esp, 0xc
jmp 0x100a5e8d
movups xmm0, xmmword [ecx]
movups xmmword [edx], xmm0
jmp 0x100a5e8d
mov edx, dword [ebx + 0x40]
sub edx, ebp
sub edi, 1
js 0x100a5e8d
nop word [eax + eax]
mov ecx, dword [ebx + 0x64]
mov eax, ebp
sub eax, dword [ebx + 0x11c]
and eax, dword [ebx + 0x44]
mov al, byte [eax + ecx]
mov byte [ecx + ebp], al
inc ebp
mov dword [esp + 0x30], ebp
sub edx, 1
je 0x100a600b
sub edi, 1
jns 0x100a5f60
jmp 0x100a5e8d
mov dword [ebx], 0xd
mov eax, 1
mov dword [ebx + 0x34], ebp
mov dword [ebx + 4], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret
mov dword [ebx], 8
mov eax, 2
mov dword [ebx + 0x34], ebp
mov dword [ebx + 4], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret
mov dword [ebx], 0xf
mov eax, 1
mov dword [ebx + 0x34], ebp
mov dword [ebx + 4], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret
mov eax, 0xfffffff5
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret
mov eax, 0xffffffed
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret
mov eax, 0xfffffff4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret
mov eax, 0xfffffff0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret
mov dword [ebx], 0x10
mov eax, 1
mov dword [ebx + 0x34], ebp
mov dword [ebx + 4], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret
mov dword [ebx], 7
mov eax, 2
mov dword [ebx + 4], edi
pop edi
pop esi
mov dword [ebx + 0x34], ebp
pop ebp
pop ebx
add esp, 0x2c
ret