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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x1a0
mov esi, esp
mov dword [esi + 0x188], ebp
mov dword [esi + 0x18c], esp
mov dword [esi + 0x198], 0xffffffff
mov dword [esi + 0x194], 0x1001b9f0
call 0x10017f36
pop eax
lea ecx, [esi + 0x190]
mov edx, dword fs:[0]
mov dword [esi + 0xd8], eax
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x190], edx
mov dword fs:[0], ecx
mov edx, dword [ebp + 8]
mov ecx, dword [eax]
mov eax, dword [eax + 0xc]
add edx, 0x10
movdqa xmm0, xmmword [ecx]
lea edi, [ecx + 0x10]
mov dword [esi + 0x44], edx
mov dword [esi + 0x40], edi
pmovmskb ebx, xmm0
not ebx
jmp 0x10017f9d
lea eax, [esi + 0x160]
push eax
call fcn.10002660
add esp, 4
mov eax, dword [esi + 0x48]
mov ecx, dword [esi + 0x34]
mov ebx, eax
mov eax, dword [esi + 0xcc]
sub eax, 1
jb 0x10018f03
test bx, bx
mov dword [esi + 0xcc], eax
je 0x10017fd0
test ecx, ecx
je 0x10018f03
lea eax, [ebx - 1]
mov dword [esi + 0x34], ecx
and eax, ebx
mov dword [esi + 0x48], eax
jmp 0x10018017
mov eax, dword [esi + 0x40]
nop word cs:[eax + eax]
nop dword [eax]
movdqa xmm0, xmmword [eax]
add ecx, 0xfffff880
add eax, 0x10
pmovmskb ebx, xmm0
cmp bx, 0xffff
je 0x10017fe0
mov edx, 0xfffffffe
mov dword [esi + 0x34], ecx
mov dword [esi + 0x40], eax
mov dword [esi + 0x198], 0xffffffff
sub edx, ebx
not ebx
mov ecx, ebx
and ecx, edx
mov dword [esi + 0x48], ecx
mov dword [esi + 8], ebx
mov dword [esi + 0x198], 0xffffffff
push 0
call fcn.1016f860
add esp, 4
test eax, eax
je 0x10018f19
movdqu xmm0, xmmword [eax]
movd edx, xmm0
pshufd xmm1, xmm0, 0x55
add edx, 1
movd ecx, xmm1
adc ecx, 0
mov dword [eax], edx
mov dword [eax + 4], ecx
mov dword [esi + 0xe0], 0x101b1b80
mov dword [esi + 0xe4], 0
mov dword [esi + 0xe8], 0
mov dword [esi + 0xec], 0
movdqu xmmword [esi + 0xf0], xmm0
mov byte [esi + 0xf], 1
mov dword [esi + 0x198], 0
push 0
call fcn.1016f860
add esp, 4
mov ecx, dword [esi + 8]
test eax, eax
je 0x10018f38
movdqu xmm0, xmmword [eax]
mov edx, dword [esi + 0x34]
tzcnt ecx, ecx
mov dword [esi + 8], 0
neg ecx
imul ecx, ecx, 0x78
lea edi, [edx + ecx - 0x74]
movd edx, xmm0
pshufd xmm1, xmm0, 0x55
add edx, 1
movd ecx, xmm1
mov dword [esi + 0x28], edi
adc ecx, 0
mov dword [eax], edx
xor edx, edx
mov dword [eax + 4], ecx
mov dword [esi + 0x50], 0x101b1b80
mov dword [esi + 0x54], 0
mov dword [esi + 0x58], 0
mov dword [esi + 0x5c], 0
movdqu xmmword [esi + 0x60], xmm0
mov ecx, dword [edi + 0x48]
mov eax, dword [edi + 0x40]
mov ebx, dword [edi + 0x34]
shl ecx, 4
add ecx, eax
mov dword [esi + 0xd0], ecx
mov ecx, dword [edi + 0x3c]
mov dword [esi + 0x4c], eax
mov dword [esi + 0x30], ebx
shl ecx, 4
add ecx, ebx
mov dword [esi + 0xd4], ecx
jmp 0x10018182
mov eax, dword [esi + 8]
mov byte [esi + 6], 0
mov byte [esi + 7], 1
mov dword [esi + 0x198], 1
mov dword [esi + 0x78], eax
mov eax, dword [esi + 0x24]
mov dword [esi + 0x7c], eax
mov eax, dword [esi + 0x14]
mov dword [esi + 0x80], eax
lea eax, [esi + 0x60]
push eax
lea eax, [esi + 0x78]
push eax
push dword [esi + 0x3c]
push dword [esi + 0x38]
lea eax, [esi + 0x50]
push eax
call fcn.100040f0
add esp, 0x14
nop dword [eax]
mov eax, dword [esi + 0xdc]
mov ebx, dword [esi + 0x30]
mov edi, dword [esi + 0x28]
mov edx, dword [esi + 0x2c]
mov dword [esi + 8], eax
test ebx, ebx
je 0x10018198
cmp ebx, dword [esi + 0xd4]
lea eax, [esi + 0x30]
jne 0x100181b2
mov dword [esi + 0x30], 0
mov ebx, dword [esi + 0x4c]
test ebx, ebx
je 0x10018a90
cmp ebx, dword [esi + 0xd0]
lea eax, [esi + 0x4c]
je 0x10018a90
lea ecx, [ebx + 0x10]
movzx edx, dl
mov dword [eax], ecx
mov ecx, 1
movzx eax, byte [ebx + 0xc]
cmp eax, 7
cmove edx, ecx
cmp byte [edi + 0x66], 0x12
mov ecx, dword [esi + 8]
mov dword [esi + 0x18], ecx
je 0x100181eb
mov ecx, edi
mov edi, dword [esi + 8]
sub edi, dword [ecx + 0x48]
mov dword [esi + 0x18], edi
jae 0x100181eb
mov edi, dword [ecx + 0x3c]
add edi, dword [esi + 8]
mov dword [esi + 0x18], edi
cmp eax, 6
mov dword [esi + 0x2c], edx
mov dword [esi + 0x24], ebx
ja 0x10018246
mov eax, dword [eax*4 + 0x10018fcc]
add eax, dword [esi + 0xd8]
jmp eax
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
jmp 0x10018283
movdqu xmm0, xmmword [esi + 0xf0]
mov ecx, dword [esi + 8]
lea edx, [esi + 0x140]
pshufd xmm1, xmm0, 0x44
pshufd xmm2, xmm0, 0xee
lea eax, [ecx + 1]
mov dword [esi + 0x140], ecx
lea ecx, [esi + 0x78]
pxor xmm1, xmmword [str.uespemosarenegylmodnarodsetybdet]
pxor xmm2, xmmword [0x101b1020]
mov dword [esi + 0xdc], eax
lea eax, [esi + 0xa8]
movdqu xmmword [esi + 0x78], xmm1
movdqu xmmword [esi + 0x88], xmm2
movdqu xmmword [esi + 0x98], xmm0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [eax + 0xc], 0
mov dword [eax + 8], 0
push 4
call fcn.10015680
add esp, 4
mov eax, dword [esi + 0xb0]
mov ecx, dword [esi + 0xa8]
mov edx, dword [esi + 0x90]
mov edi, dword [esi + 0x94]
movups xmm0, xmmword [esi + 0x80]
movdqu xmm4, xmmword [esi + 0x78]
shl eax, 0x18
xor edx, ecx
or eax, dword [esi + 0xac]
movd xmm3, edx
movd xmm1, edx
xor edi, eax
movd xmm2, edi
punpckldq xmm1, xmm2
punpcklqdq xmm2, xmm3
shufps xmm2, xmm0, 0xe2
punpcklqdq xmm1, xmm4
movaps xmm4, xmm0
movaps xmm3, xmm2
paddq xmm1, xmm0
psrlq xmm4, 0x33
psllq xmm2, 0x10
psllq xmm0, 0xd
psrlq xmm3, 0x30
movsd xmm0, xmm2
movsd xmm4, xmm3
orpd xmm0, xmm4
xorpd xmm0, xmm1
pshufd xmm1, xmm1, 0x4b
movapd xmm2, xmm0
movapd xmm3, xmm0
paddq xmm1, xmm0
psrlq xmm2, 0x2b
psrlq xmm3, 0x2f
movsd xmm3, xmm2
movdqa xmm2, xmm0
psllq xmm0, 0x11
psllq xmm2, 0x15
movsd xmm0, xmm2
pshufd xmm2, xmm1, 0xff
movd edi, xmm2
pshufd xmm2, xmm1, 0x55
orpd xmm0, xmm3
movd edx, xmm2
xor edi, 0xff
xorpd xmm0, xmm1
xor edx, eax
movd eax, xmm1
movd xmm2, edi
xor eax, ecx
movd xmm4, edx
shufpd xmm1, xmm2, 1
movapd xmm2, xmm0
movd xmm3, eax
shufps xmm1, xmm0, 0xe2
psrlq xmm2, 0x30
punpcklqdq xmm4, xmm3
movaps xmm3, xmm0
shufps xmm3, xmm4, 0x24
paddq xmm1, xmm3
movaps xmm3, xmm0
psrlq xmm3, 0x33
movsd xmm3, xmm2
movaps xmm2, xmm0
psllq xmm0, 0xd
psllq xmm2, 0x10
movsd xmm0, xmm2
orpd xmm0, xmm3
xorpd xmm0, xmm1
pshufd xmm1, xmm1, 0x4b
movapd xmm2, xmm0
movapd xmm3, xmm0
paddq xmm1, xmm0
psrlq xmm2, 0x2b
psrlq xmm3, 0x2f
movsd xmm3, xmm2
movdqa xmm2, xmm0
psllq xmm0, 0x11
psllq xmm2, 0x15
movsd xmm0, xmm2
orpd xmm0, xmm3
xorpd xmm0, xmm1
pshufd xmm1, xmm1, 0x4b
movapd xmm2, xmm0
movapd xmm3, xmm0
paddq xmm1, xmm0
psrlq xmm2, 0x30
psrlq xmm3, 0x33
movsd xmm3, xmm2
movdqa xmm2, xmm0
psllq xmm0, 0xd
psllq xmm2, 0x10
movsd xmm0, xmm2
orpd xmm0, xmm3
xorpd xmm0, xmm1
pshufd xmm1, xmm1, 0x4b
movapd xmm2, xmm0
movapd xmm3, xmm0
paddq xmm1, xmm0
psrlq xmm2, 0x2b
psrlq xmm3, 0x2f
movsd xmm3, xmm2
movdqa xmm2, xmm0
psllq xmm0, 0x11
psllq xmm2, 0x15
movsd xmm0, xmm2
orpd xmm0, xmm3
xorpd xmm0, xmm1
pshufd xmm1, xmm1, 0x4b
movapd xmm2, xmm0
movapd xmm3, xmm0
paddq xmm1, xmm0
psrlq xmm2, 0x30
psrlq xmm3, 0x33
movsd xmm3, xmm2
movdqa xmm2, xmm0
psllq xmm0, 0xd
psllq xmm2, 0x10
movsd xmm0, xmm2
orpd xmm0, xmm3
xorpd xmm0, xmm1
movapd xmm2, xmm0
movapd xmm3, xmm0
movapd xmm4, xmm0
movapd xmm5, xmm0
psrlq xmm2, 0x2b
psrlq xmm3, 0x2f
psllq xmm4, 0x15
psllq xmm5, 0x11
movsd xmm3, xmm2
movsd xmm5, xmm4
orpd xmm5, xmm3
movapd xmm3, xmm5
shufpd xmm3, xmm1, 1
xorpd xmm5, xmm3
paddq xmm3, xmm0
pshufd xmm0, xmm3, 0xee
movd edi, xmm5
movd eax, xmm0
pshufd xmm0, xmm3, 0xff
movd ecx, xmm0
pshufd xmm0, xmm5, 0x55
xor edi, ecx
movd edx, xmm0
xor edi, eax
xor edx, eax
mov eax, edi
xor edx, ecx
mov ecx, edi
mov dword [esi + 0x38], edi
shr eax, 0x19
mov dword [esi + 0x3c], edx
mov edx, dword [esi + 0xe0]
movd xmm0, eax
mov eax, dword [esi + 0xe4]
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
mov dword [esi + 0x1c], edx
mov dword [esi + 0x20], eax
and ecx, eax
movdqa xmm2, xmm0
movdqu xmm1, xmmword [edx + ecx]
pcmpeqb xmm2, xmm1
pmovmskb eax, xmm2
nop word cs:[eax + eax]
test ax, ax
je 0x100185f0
tzcnt ebx, eax
mov edi, dword [esi + 0x1c]
lea edx, [eax - 1]
add ebx, ecx
and edx, eax
and ebx, dword [esi + 0x20]
lea eax, [ebx*8]
sub edi, eax
mov eax, dword [esi + 8]
cmp dword [edi - 8], eax
mov eax, edx
jne 0x100185c0
jmp 0x10018620
pcmpeqd xmm2, xmm2
pcmpeqb xmm1, xmm2
pmovmskb eax, xmm1
test eax, eax
jne 0x10018a45
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0x1c]
lea ecx, [ecx + eax + 0x10]
add eax, 0x10
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x20]
jmp 0x100185a3
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x1c]
neg ebx
mov byte [ecx + ebx*8 - 4], al
mov eax, dword [esi + 0x18]
mov byte [ecx + ebx*8 - 3], al
mov dword [esi + 0x198], 1
mov ecx, dword [esi + 0x24]
mov eax, dword [ecx]
mov ecx, dword [ecx + 8]
mov byte [esi + 6], 0
mov byte [esi + 7], 1
push ecx
push eax
call fcn.10052840
add esp, 8
mov ecx, dword [esi + 8]
mov dword [esi + 8], ecx
mov edi, edx
mov edx, eax
mov byte [esi + 6], 0
mov byte [esi + 7], 1
mov ecx, dword [esi + 8]
push dword [esi + 0x28]
push edi
call fcn.100176f0
mov ecx, dword [esi + 8]
add esp, 8
movdqu xmm0, xmmword [esi + 0x60]
mov dword [esi + 0x24], eax
mov dword [esi + 0x14], edx
mov dword [esi + 0x140], ecx
lea eax, [esi + 0xa8]
lea ecx, [esi + 0x78]
lea edx, [esi + 0x140]
pshufd xmm1, xmm0, 0x44
pshufd xmm2, xmm0, 0xee
pxor xmm1, xmmword [str.uespemosarenegylmodnarodsetybdet]
pxor xmm2, xmmword [0x101b1020]
movdqu xmmword [esi + 0x78], xmm1
movdqu xmmword [esi + 0x88], xmm2
movdqu xmmword [esi + 0x98], xmm0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [eax + 0xc], 0
mov dword [eax + 8], 0
push 4
call fcn.10015680
add esp, 4
mov eax, dword [esi + 0xb0]
mov ecx, dword [esi + 0xa8]
mov edx, dword [esi + 0x90]
mov edi, dword [esi + 0x94]
movups xmm0, xmmword [esi + 0x80]
movdqu xmm4, xmmword [esi + 0x78]
mov dword [esi + 0x18], 0
shl eax, 0x18
xor edx, ecx
or eax, dword [esi + 0xac]
movd xmm3, edx
movd xmm1, edx
xor edi, eax
movd xmm2, edi
punpckldq xmm1, xmm2
punpcklqdq xmm2, xmm3
shufps xmm2, xmm0, 0xe2
punpcklqdq xmm1, xmm4
movaps xmm4, xmm0
movaps xmm3, xmm2
paddq xmm1, xmm0
psrlq xmm4, 0x33
psllq xmm2, 0x10
psllq xmm0, 0xd
psrlq xmm3, 0x30
movsd xmm0, xmm2
movsd xmm4, xmm3
orpd xmm0, xmm4
xorpd xmm0, xmm1
pshufd xmm1, xmm1, 0x4b
movapd xmm2, xmm0
movapd xmm3, xmm0
paddq xmm1, xmm0
psrlq xmm2, 0x2b
psrlq xmm3, 0x2f
movsd xmm3, xmm2
movdqa xmm2, xmm0
psllq xmm0, 0x11
psllq xmm2, 0x15
movsd xmm0, xmm2
pshufd xmm2, xmm1, 0xff
movd edi, xmm2
pshufd xmm2, xmm1, 0x55
orpd xmm0, xmm3
movd edx, xmm2
xor edi, 0xff
xorpd xmm0, xmm1
xor edx, eax
movd eax, xmm1
movd xmm2, edi
mov edi, dword [esi + 0x54]
xor eax, ecx
movd xmm4, edx
shufpd xmm1, xmm2, 1
movapd xmm2, xmm0
movd xmm3, eax
shufps xmm1, xmm0, 0xe2
psrlq xmm2, 0x30
punpcklqdq xmm4, xmm3
movaps xmm3, xmm0
shufps xmm3, xmm4, 0x24
mov dword [esi + 0x1c], edi
paddq xmm1, xmm3
movaps xmm3, xmm0
psrlq xmm3, 0x33
movsd xmm3, xmm2
movaps xmm2, xmm0
psllq xmm0, 0xd
psllq xmm2, 0x10
movsd xmm0, xmm2
orpd xmm0, xmm3
xorpd xmm0, xmm1
pshufd xmm1, xmm1, 0x4b
movapd xmm2, xmm0
movapd xmm3, xmm0
paddq xmm1, xmm0
psrlq xmm2, 0x2b
psrlq xmm3, 0x2f
movsd xmm3, xmm2
movdqa xmm2, xmm0
psllq xmm0, 0x11
psllq xmm2, 0x15
movsd xmm0, xmm2
orpd xmm0, xmm3
xorpd xmm0, xmm1
pshufd xmm1, xmm1, 0x4b
movapd xmm2, xmm0
movapd xmm3, xmm0
paddq xmm1, xmm0
psrlq xmm2, 0x30
psrlq xmm3, 0x33
movsd xmm3, xmm2
movdqa xmm2, xmm0
psllq xmm0, 0xd
psllq xmm2, 0x10
movsd xmm0, xmm2
orpd xmm0, xmm3
xorpd xmm0, xmm1
pshufd xmm1, xmm1, 0x4b
movapd xmm2, xmm0
movapd xmm3, xmm0
paddq xmm1, xmm0
psrlq xmm2, 0x2b
psrlq xmm3, 0x2f
movsd xmm3, xmm2
movdqa xmm2, xmm0
psllq xmm0, 0x11
psllq xmm2, 0x15
movsd xmm0, xmm2
orpd xmm0, xmm3
xorpd xmm0, xmm1
pshufd xmm1, xmm1, 0x4b
movapd xmm2, xmm0
movapd xmm3, xmm0
paddq xmm1, xmm0
psrlq xmm2, 0x30
psrlq xmm3, 0x33
movsd xmm3, xmm2
movdqa xmm2, xmm0
psllq xmm0, 0xd
psllq xmm2, 0x10
movsd xmm0, xmm2
orpd xmm0, xmm3
xorpd xmm0, xmm1
movapd xmm2, xmm0
movapd xmm3, xmm0
movapd xmm4, xmm0
movapd xmm5, xmm0
psrlq xmm2, 0x2b
psrlq xmm3, 0x2f
psllq xmm4, 0x15
psllq xmm5, 0x11
movsd xmm3, xmm2
movsd xmm5, xmm4
orpd xmm5, xmm3
movapd xmm3, xmm5
shufpd xmm3, xmm1, 1
xorpd xmm5, xmm3
paddq xmm3, xmm0
pshufd xmm0, xmm3, 0xee
movd ebx, xmm5
movd eax, xmm0
pshufd xmm0, xmm3, 0xff
movd ecx, xmm0
pshufd xmm0, xmm5, 0x55
movd edx, xmm0
xor ebx, ecx
xor edx, eax
xor ebx, eax
xor edx, ecx
mov eax, ebx
mov ecx, ebx
mov dword [esi + 0x38], ebx
mov dword [esi + 0x3c], edx
mov edx, dword [esi + 0x50]
shr eax, 0x19
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
lea eax, [edx - 0xc]
mov dword [esi + 0x10], edx
mov dword [esi + 0x20], eax
and ecx, edi
movdqa xmm2, xmm0
movdqu xmm1, xmmword [edx + ecx]
pcmpeqb xmm2, xmm1
pmovmskb eax, xmm2
nop dword [eax]
test ax, ax
je 0x100189e0
lea ebx, [eax - 1]
mov edi, dword [esi + 0x20]
and ebx, eax
tzcnt eax, eax
add eax, ecx
and eax, dword [esi + 0x1c]
neg eax
lea edx, [eax + eax*2]
mov eax, dword [esi + 8]
cmp dword [edi + edx*4], eax
mov eax, ebx
jne 0x100189b0
jmp 0x10018a10
pcmpeqd xmm2, xmm2
pcmpeqb xmm1, xmm2
pmovmskb eax, xmm1
test eax, eax
jne 0x10018128
mov eax, dword [esi + 0x18]
mov edx, dword [esi + 0x10]
mov edi, dword [esi + 0x1c]
lea ecx, [ecx + eax + 0x10]
add eax, 0x10
mov dword [esi + 0x18], eax
jmp 0x10018999
mov ebx, dword [esi + 0x10]
mov edi, dword [esi + 0x24]
mov ecx, dword [ebx + edx*4 - 4]
mov eax, dword [ebx + edx*4 - 8]
mov dword [ebx + edx*4 - 8], edi
mov edi, dword [esi + 0x14]
test ecx, ecx
mov dword [ebx + edx*4 - 4], edi
mov byte [eax], 0
je 0x10018170
push 1
push ecx
push eax
call fcn.100985c0
add esp, 0xc
jmp 0x10018170
mov eax, dword [esi + 8]
mov byte [esi + 6], 0
mov byte [esi + 7], 1
mov dword [esi + 0x198], 1
mov dword [esi + 0x78], eax
mov eax, dword [esi + 0x14]
mov byte [esi + 0x7c], al
mov eax, dword [esi + 0x18]
mov byte [esi + 0x7d], al
lea eax, [esi + 0xf0]
push eax
lea eax, [esi + 0x78]
push eax
push dword [esi + 0x3c]
push dword [esi + 0x38]
lea eax, [esi + 0xe0]
push eax
call fcn.10005930
add esp, 0x14
jmp 0x1001863d
cmp dword [esi + 0x5c], 0
mov dword [esi + 0x2c], edx
jne 0x10018bbf
mov byte [esi + 6], 0
mov byte [esi + 7], 1
mov dword [esi + 0x198], 1
xor ecx, ecx
mov edx, 0x101b19b4
push edi
push 0
call fcn.100176f0
add esp, 8
mov dword [esi + 0x18], eax
mov dword [esi + 0x10], edx
lea eax, [esi + 0x140]
mov dword [esi + 0x140], 0
push eax
lea eax, [esi + 0x60]
push eax
call fcn.10091e60
add esp, 8
mov ecx, eax
mov dword [esi + 0x24], edx
mov edx, dword [esi + 0x50]
mov edi, dword [esi + 0x54]
mov dword [esi + 0x20], 0
mov dword [esi + 0x14], eax
shr ecx, 0x19
movd xmm0, ecx
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
lea ecx, [edx - 0xc]
mov dword [esi + 0x1c], edx
pshufd xmm0, xmm0, 0
mov dword [esi + 8], ecx
and eax, edi
movdqa xmm2, xmm0
movdqu xmm1, xmmword [edx + eax]
pcmpeqb xmm2, xmm1
pmovmskb edx, xmm2
nop word [eax + eax]
test dx, dx
je 0x10018b60
lea ebx, [edx - 1]
tzcnt ecx, edx
add ecx, eax
and ebx, edx
mov edx, dword [esi + 8]
and ecx, edi
neg ecx
lea ecx, [ecx + ecx*2]
cmp dword [edx + ecx*4], 0
mov edx, ebx
jne 0x10018b30
jmp 0x10018b90
pcmpeqd xmm2, xmm2
pcmpeqb xmm1, xmm2
pmovmskb ecx, xmm1
test ecx, ecx
jne 0x10018ead
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x1c]
lea eax, [eax + ecx + 0x10]
add ecx, 0x10
mov dword [esi + 0x20], ecx
jmp 0x10018b17
mov ebx, dword [esi + 0x1c]
mov edi, dword [esi + 0x18]
mov edx, dword [ebx + ecx*4 - 4]
mov eax, dword [ebx + ecx*4 - 8]
mov dword [ebx + ecx*4 - 8], edi
mov edi, dword [esi + 0x10]
mov dword [ebx + ecx*4 - 4], edi
mov edi, dword [esi + 0x28]
test edx, edx
mov byte [eax], 0
je 0x10018bbf
push 1
push edx
push eax
call fcn.100985c0
add esp, 0xc
test byte [esi + 0x2c], 1
mov al, 0xff
jne 0x10018bca
movzx eax, byte [edi]
movsd xmm1, qword [esi + 0xf0]
movsd xmm0, qword [esi + 0xf8]
movq xmm3, qword [esi + 0xe0]
movsd xmm2, qword [esi + 0x68]
mov byte [esi + 0x2c], al
lea eax, [esi + 0x120]
movsd qword [esi + 0x110], xmm1
movsd xmm1, qword [esi + 0xe8]
movsd qword [esi + 0x118], xmm0
movq qword [esi + 0x100], xmm3
movsd qword [esi + 0x108], xmm1
movsd xmm1, qword [esi + 0x60]
movsd qword [eax + 0x18], xmm2
movsd xmm2, qword [esi + 0x50]
movsd qword [eax + 0x10], xmm1
movsd xmm1, qword [esi + 0x58]
movsd qword [eax], xmm2
movsd qword [eax + 8], xmm1
mov eax, dword [ebp + 8]
movzx ecx, word [edi + 0x64]
cmp word [eax + 0x44], cx
jae 0x10018c4b
mov word [eax + 0x44], cx
mov word [esi + 0x1c], cx
mov word [esi + 0x30], cx
lea ecx, [esi + 0x30]
push ecx
push dword [esi + 0x44]
mov edi, eax
call fcn.10092140
add esp, 8
mov ecx, eax
mov dword [esi + 0x14], edx
mov edx, dword [edi]
mov edi, dword [edi + 4]
mov dword [esi + 0x18], 0
mov dword [esi + 0x28], eax
shr ecx, 0x19
movd xmm0, ecx
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
lea ecx, [edx - 0x50]
mov dword [esi + 0x10], edx
mov dword [esi + 8], edi
pshufd xmm0, xmm0, 0
mov dword [esi + 0x20], ecx
and eax, edi
movdqa xmm2, xmm0
movdqu xmm1, xmmword [edx + eax]
pcmpeqb xmm2, xmm1
pmovmskb edx, xmm2
nop dword [eax]
test dx, dx
je 0x10018ce0
lea ebx, [edx - 1]
mov ecx, dword [esi + 0x20]
and ebx, edx
tzcnt edx, edx
add edx, eax
and edx, dword [esi + 8]
neg edx
lea edi, [edx + edx*4]
movzx edx, word [esi + 0x1c]
shl edi, 4
cmp word [ecx + edi], dx
mov edx, ebx
jne 0x10018cb0
jmp 0x10018d10
pcmpeqd xmm2, xmm2
pcmpeqb xmm1, xmm2
pmovmskb edx, xmm1
test edx, edx
jne 0x10018df3
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x10]
mov edi, dword [esi + 8]
lea eax, [eax + ecx + 0x10]
add ecx, 0x10
mov dword [esi + 0x18], ecx
jmp 0x10018c99
mov ebx, dword [esi + 0x10]
lea eax, [ebx + edi - 0x48]
push 0x48
push eax
lea eax, [esi + 0x140]
push eax
call fcn.10193640
add esp, 0xc
movsd xmm0, qword [esi + 0x100]
movq xmm1, qword [esi + 0x108]
movzx eax, byte [esi + 0x2c]
movsd qword [ebx + edi - 0x48], xmm0
movq qword [ebx + edi - 0x40], xmm1
movsd xmm0, qword [esi + 0x110]
movsd qword [ebx + edi - 0x38], xmm0
movsd xmm0, qword [esi + 0x118]
movsd qword [ebx + edi - 0x30], xmm0
movsd xmm0, qword [esi + 0x120]
movsd qword [ebx + edi - 0x28], xmm0
movsd xmm0, qword [esi + 0x128]
movsd qword [ebx + edi - 0x20], xmm0
movsd xmm0, qword [esi + 0x130]
movsd qword [ebx + edi - 0x18], xmm0
movq xmm0, qword [esi + 0x138]
movq qword [ebx + edi - 0x10], xmm0
mov byte [ebx + edi - 8], al
mov eax, dword [esi + 0x71]
mov ecx, dword [esi + 0x74]
mov dword [ebx + edi - 4], ecx
mov dword [ebx + edi - 7], eax
mov eax, dword [esi + 0x140]
test eax, eax
je 0x10017f8f
mov ecx, dword [esi + 0x144]
test ecx, ecx
je 0x10017f80
lea edx, [ecx*8 + 0x17]
and edx, 0xfffffff0
add ecx, edx
add ecx, 0x11
je 0x10017f80
sub eax, edx
push 0x10
push ecx
push eax
call fcn.100985c0
add esp, 0xc
jmp 0x10017f80
movsd xmm1, qword [esi + 0x130]
lea edx, [esi + 0xa8]
movsd xmm2, qword [esi + 0x128]
movq xmm0, qword [esi + 0x138]
movzx eax, byte [esi + 0x2c]
mov ecx, dword [esi + 0x74]
mov byte [esi + 6], 1
mov byte [esi + 7], 0
mov dword [esi + 0x198], 1
movsd qword [edx + 8], xmm1
movsd xmm1, qword [esi + 0x120]
movsd qword [edx], xmm2
movsd xmm2, qword [esi + 0x118]
movq qword [edx + 0x10], xmm0
movsd qword [edx - 8], xmm1
movsd xmm1, qword [esi + 0x110]
movsd qword [edx - 0x10], xmm2
movq xmm2, qword [esi + 0x100]
movsd qword [edx - 0x18], xmm1
movq xmm1, qword [esi + 0x108]
movq qword [edx - 0x28], xmm2
movq qword [edx - 0x20], xmm1
mov byte [esi + 0xc0], al
mov eax, dword [esi + 0x71]
mov dword [edx + 0x1c], ecx
mov dword [edx + 0x19], eax
movzx eax, word [esi + 0x1c]
mov word [esi + 0x78], ax
push dword [esi + 0x44]
lea eax, [esi + 0x78]
push eax
push dword [esi + 0x14]
push dword [esi + 0x28]
push dword [ebp + 8]
call fcn.10004d70
add esp, 0x14
jmp 0x10017f8f
mov eax, dword [esi + 0x18]
mov dword [esi + 0x78], 0
mov byte [esi + 6], 0
mov byte [esi + 7], 1
mov dword [esi + 0x198], 1
mov dword [esi + 0x7c], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x80], eax
lea eax, [esi + 0x60]
push eax
lea eax, [esi + 0x78]
push eax
push dword [esi + 0x24]
push dword [esi + 0x14]
lea eax, [esi + 0x50]
push eax
call fcn.100040f0
add esp, 0x14
mov edi, dword [esi + 0x28]
test byte [esi + 0x2c], 1
mov al, 0xff
je 0x10018bc7
jmp 0x10018bca
mov eax, dword [esi + 0x190]
mov dword fs:[0], eax
mov al, 1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x101b18c8
push 0x101b1a34
lea eax, [esi + 0x78]
push eax
push 0x46
push 0x101b1830
call fcn.101af4e0
add esp, 0x14
ud2
mov byte [esi + 0xf], 1
push 0x101b18c8
push 0x101b1a34
lea eax, [esi + 0x78]
push eax
push 0x46
push 0x101b1830
call fcn.101af4e0
add esp, 0x14
ud2