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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xe0
mov dword [esp + 0x2c], ecx
mov eax, dword [0x102b0014]
xor eax, ebp
mov dword [esp + 0xd8], eax
pcmpeqd xmm0, xmm0
lea ecx, [esp + 0x30]
movdqu xmmword [ecx + 0x2c], xmm0
movdqa xmmword [ecx + 0x20], xmm0
movdqa xmmword [ecx + 0x10], xmm0
movdqa xmmword [ecx], xmm0
sub esp, 0x14
xor eax, eax
mov dword [esp + 0x10], eax
xor esi, esi
movaps xmm0, xmmword [0x1025e7e0]
movups xmmword [esp], xmm0
call fcn.10188e50
lea ebx, [esp + 0x34]
mov edi, 0x10
mov ecx, ebx
push edi
call fcn.101883b0
mov ecx, dword [ebx + 8]
mov dword [ecx + eax], edi
mov dword [esp + 0x28], eax
mov dword [ecx + eax + 4], esi
mov esi, 0x58
mov ecx, ebx
push esi
call fcn.101883b0
mov edi, eax
mov eax, dword [ebx + 8]
mov dword [eax + edi], esi
xor ecx, ecx
mov dword [eax + edi + 4], ecx
mov esi, dword [ebx + 8]
lea eax, [ebp + 8]
push eax
call fcn.1008ced4
add esp, 4
mov dword [esi + edi + 8], eax
lea edx, [ebp + 8]
mov eax, dword [edx]
mov eax, dword [eax + 0x50]
mov ecx, dword [ebx + 8]
mov dword [ecx + edi + 0xc], eax
xor eax, eax
dec eax
lea esi, [esp + 0xa8]
mov dword [esi + 4], eax
mov dword [esi], eax
push edx
push esi
call fcn.1008cef4
add esp, 8
mov ecx, ebx
mov eax, 0x10
push eax
call fcn.101883b0
mov ecx, dword [ebx + 8]
mov edx, 0x10
mov dword [ecx + eax], edx
xor edx, edx
mov dword [ecx + eax + 4], edx
movsd xmm0, qword [esi]
mov ecx, dword [ebx + 8]
movsd qword [ecx + eax + 8], xmm0
mov ecx, dword [ebx + 8]
lea edx, [ecx + edi]
mov esi, 0x10
add edx, esi
lea esi, [ecx + eax]
xor ebx, ebx
dec ebx
cmp eax, ebx
mov eax, 0
cmove esi, eax
mov eax, esi
sub eax, edx
mov edx, eax
sar edx, 0x1f
test esi, esi
cmove edx, esi
cmove eax, esi
mov dword [ecx + edi + 0x10], eax
mov dword [esp + 0xc], edi
mov dword [ecx + edi + 0x14], edx
lea eax, [ebp + 8]
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
mov esi, 0x38
lea ebx, [esp + 0x34]
mov ecx, ebx
push esi
call fcn.101883b0
mov ecx, dword [ebx + 8]
mov dword [ecx + eax], esi
mov dword [esp + 0x24], eax
xor edx, edx
mov dword [ecx + eax + 4], edx
mov dword [esp + 0xb4], 0xffffff00
mov esi, 0x14
push esi
call fcn.1020d865
add esp, 4
mov edi, eax
xor eax, eax
mov dword [edi], eax
mov byte [edi + 4], al
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
mov dword [edi + 0x10], eax
push esi
call fcn.1020d865
add esp, 4
xor ecx, ecx
mov dword [eax], ecx
mov byte [eax + 4], cl
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], 0x10086b60
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], edi
mov dword [esp + 0xc0], ecx
xor esi, esi
mov ecx, ebx
mov edi, 0x18
push edi
call fcn.101883b0
mov ecx, ebx
mov ebx, dword [esp + 0x1c]
mov edx, dword [ecx + 8]
mov dword [edx + eax], edi
mov dword [esp + 0x18], eax
mov dword [edx + eax + 4], esi
mov edi, dword [ebx + 0x1c]
mov esi, dword [ebx + 0x20]
sub esi, edi
js 0x10081aae
mov edi, esi
shr esi, 4
shr edi, 2
add edi, 8
push edi
call fcn.101883b0
mov ecx, dword [esp + 0x3c]
mov dword [ecx + eax], edi
mov dword [ecx + eax + 4], esi
mov edi, dword [ebx + 0x1c]
mov esi, dword [ebx + 0x20]
mov ecx, dword [esp + 0x3c]
sub esi, edi
mov dword [esp + 8], eax
je 0x10081af0
add ecx, eax
jmp 0x10081aba
mov ecx, dword [esp + 0x3c]
dec ecx
xor eax, eax
dec eax
mov dword [esp + 8], eax
sar esi, 4
xor eax, eax
inc eax
cmp esi, 1
cmova eax, esi
mov dword [esp + 0x14], eax
xor esi, esi
push dword [edi]
add edi, 0x10
mov ebx, ecx
call fcn.1018e446
mov ecx, ebx
add esp, 4
mov dword [ebx + esi*4 + 8], eax
inc esi
cmp dword [esp + 0x14], esi
jne 0x10081acc
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x1c]
mov eax, 0x18
add eax, ebx
mov dword [esp + 0x20], eax
mov esi, dword [esp + 0x18]
lea eax, [ecx + esi]
add eax, 8
mov edi, dword [esp + 8]
add edi, ecx
mov edx, edi
sub edx, eax
mov eax, edx
sar eax, 0x1f
test edi, edi
cmove eax, edi
cmove edx, edi
mov dword [ecx + esi + 8], edx
mov dword [ecx + esi + 0xc], eax
mov esi, dword [ebx + 0x20]
mov edi, dword [ebx + 0x1c]
sub esi, edi
js 0x10081b5e
mov edi, esi
shr edi, 4
shr esi, 1
add esi, 8
lea ecx, [esp + 0x34]
push esi
call fcn.101883b0
mov edx, eax
mov eax, dword [esp + 0x3c]
mov dword [eax + edx], esi
mov dword [eax + edx + 4], edi
mov edi, dword [ebx + 0x1c]
mov esi, dword [ebx + 0x20]
sub esi, edi
jne 0x10081b61
jmp 0x10081bfc
xor edx, edx
dec edx
sar esi, 4
xor eax, eax
inc eax
cmp esi, 1
cmova eax, esi
mov dword [esp + 0x10], eax
add edi, 8
mov ebx, 0xfffffff8
sub ebx, edx
xor esi, esi
mov dword [esp + 8], edx
mov dword [esp + 0x14], edi
lea ecx, [esp + 0x34]
mov eax, 0x10
push eax
call fcn.101883b0
mov ecx, dword [esp + 0x3c]
mov edx, 0x10
mov dword [ecx + eax], edx
xor edx, edx
mov dword [ecx + eax + 4], edx
movsd xmm0, qword [edi]
mov ecx, dword [esp + 0x3c]
movsd qword [ecx + eax + 8], xmm0
mov ecx, dword [esp + 0x3c]
lea edx, [ecx + eax]
cmp eax, 0xffffffff
mov eax, 0
cmove edx, eax
mov eax, edx
sub eax, ecx
add eax, ebx
mov edi, eax
sar edi, 0x1f
test edx, edx
cmove edi, edx
cmove eax, edx
mov edx, dword [esp + 8]
add ecx, edx
mov dword [ecx + esi*8 + 8], eax
mov dword [ecx + esi*8 + 0xc], edi
mov edi, dword [esp + 0x14]
inc esi
mov eax, 0x10
add edi, eax
add ebx, 0xfffffff8
cmp dword [esp + 0x10], esi
jne 0x10081b81
mov eax, dword [esp + 0x3c]
mov ebx, dword [esp + 0x18]
lea ecx, [eax + ebx]
add ecx, 0x10
add edx, eax
mov esi, edx
sub edx, ecx
mov ecx, edx
sar ecx, 0x1f
test esi, esi
cmove ecx, esi
cmove edx, esi
mov dword [eax + ebx + 0x10], edx
mov dword [eax + ebx + 0x14], ecx
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x24]
lea ecx, [eax + edi]
add ecx, 8
lea edx, [eax + ebx]
xor esi, esi
cmp ebx, 0xffffffff
cmove edx, esi
mov esi, edx
sub esi, ecx
mov ecx, esi
sar ecx, 0x1f
test edx, edx
cmove ecx, edx
cmove esi, edx
mov dword [eax + edi + 8], esi
mov dword [eax + edi + 0xc], ecx
mov ebx, dword [esp + 0x1c]
movsd xmm0, qword [ebx + 0x28]
mov eax, dword [esp + 0x3c]
movsd qword [eax + edi + 0x10], xmm0
movsd xmm0, qword [ebx + 0x30]
mov eax, dword [esp + 0x3c]
movsd qword [eax + edi + 0x18], xmm0
mov eax, dword [esp + 0x3c]
mov cl, byte [eax + edi + 0x20]
and cl, 0xfe
or cl, byte [ebx + 0x38]
mov byte [eax + edi + 0x20], cl
mov al, byte [ebx + 0x39]
mov ecx, dword [esp + 0x3c]
mov dl, byte [ecx + edi + 0x20]
add al, al
and dl, 0xfd
or dl, al
mov byte [ecx + edi + 0x20], dl
mov al, byte [ebx + 0x3a]
mov ecx, dword [esp + 0x3c]
mov dl, byte [ecx + edi + 0x20]
shl al, 2
and dl, 0xfb
or dl, al
mov byte [ecx + edi + 0x20], dl
mov al, byte [ebx + 0x3b]
mov ecx, dword [esp + 0x3c]
mov dl, byte [ecx + edi + 0x20]
shl al, 3
and dl, 0xf7
or dl, al
mov byte [ecx + edi + 0x20], dl
mov esi, dword [esp + 0x3c]
push dword [esp + 0x20]
call fcn.1018e430
add esp, 4
mov dword [esi + edi + 0x24], eax
movss xmm0, dword [ebx + 0x40]
mov eax, dword [esp + 0x3c]
movss dword [eax + edi + 0x28], xmm0
movss xmm0, dword [ebx + 0x44]
mov eax, dword [esp + 0x3c]
movss dword [eax + edi + 0x2c], xmm0
movq xmm0, qword [ebx + 0x48]
mov eax, dword [esp + 0x3c]
movq qword [eax + edi + 0x30], xmm0
lea ecx, [esp + 0xb0]
call fcn.10033178
mov eax, dword [esp + 0x3c]
mov ebx, dword [esp + 0xc]
lea ecx, [eax + ebx]
add ecx, 0x18
lea edx, [eax + edi]
cmp edi, 0xffffffff
mov edi, 0
cmove edx, edi
mov esi, edx
sub esi, ecx
mov ecx, esi
sar ecx, 0x1f
test edx, edx
cmove ecx, edx
cmove esi, edx
mov dword [eax + ebx + 0x18], esi
mov dword [eax + ebx + 0x1c], ecx
pcmpeqd xmm0, xmm0
lea ecx, [esp + 0xb0]
movdqa xmmword [ecx], xmm0
mov dword [ecx + 0x10], 0xffffffff
lea eax, [ebp + 8]
push eax
push ecx
mov esi, ecx
call fcn.1008cf0a
add esp, 8
cmp dword [esi + 0x10], 0
je 0x10081dec
mov esi, 0x18
lea ecx, [esp + 0x34]
push esi
call fcn.101883b0
mov ecx, dword [esp + 0x3c]
mov dword [ecx + eax], esi
mov dword [ecx + eax + 4], 0
mov ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0x3c]
mov dword [edx + eax + 8], ecx
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0x3c]
mov dword [edx + eax + 0xc], ecx
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0x3c]
mov dword [edx + eax + 0x10], ecx
mov ecx, dword [esp + 0x3c]
mov dl, byte [ecx + eax + 0x14]
and dl, 0xfe
or dl, byte [esp + 0xbc]
mov byte [ecx + eax + 0x14], dl
mov ecx, dword [esp + 0x3c]
cmp eax, 0xffffffff
je 0x10081df0
add eax, ecx
mov edi, eax
jmp 0x10081df0
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0xc]
lea eax, [ecx + esi]
add eax, 0x20
mov edx, edi
sub edx, eax
mov eax, edx
sar eax, 0x1f
test edi, edi
cmove eax, edi
cmove edx, edi
mov dword [ecx + esi + 0x20], edx
mov dword [ecx + esi + 0x24], eax
lea esi, [esp + 0xa4]
mov dword [esi], 0xffffffff
lea eax, [ebp + 8]
push eax
push esi
call fcn.1008cfa0
add esp, 8
cmp dword [esi], 0
je 0x10081e8a
mov edi, 0x18
lea ebx, [esp + 0x34]
mov ecx, ebx
push edi
call fcn.101883b0
mov esi, eax
mov eax, dword [esp + 0x3c]
mov dword [eax + esi], edi
mov dword [eax + esi + 4], 0
mov eax, dword [esp + 0xa4]
cmp dword [eax + 4], 0
je 0x10081e95
mov edi, 8
mov ecx, ebx
push edi
call fcn.101883b0
mov ecx, dword [esp + 0x3c]
mov dword [ecx + eax], edi
mov dword [ecx + eax + 4], 0
mov ecx, dword [esp + 0x3c]
cmp eax, 0xffffffff
je 0x10081e9d
add eax, ecx
jmp 0x10081e9f
xor esi, esi
mov eax, dword [esp + 0x3c]
jmp 0x10081f40
xor eax, eax
mov ecx, dword [esp + 0x3c]
jmp 0x10081e9f
xor eax, eax
lea edx, [ecx + esi]
add edx, 8
mov edi, eax
sub edi, edx
mov edx, edi
sar edx, 0x1f
test eax, eax
cmove edx, eax
cmove edi, eax
mov dword [ecx + esi + 8], edi
mov dword [ecx + esi + 0xc], edx
mov edi, dword [esp + 0xa4]
cmp dword [edi + 0xc], 0
je 0x10081f08
mov ebx, 0x10
lea ecx, [esp + 0x34]
push ebx
call fcn.101883b0
mov ecx, dword [esp + 0x3c]
mov dword [ecx + eax], ebx
mov dword [ecx + eax + 4], 0
mov ecx, dword [esp + 0x3c]
mov dl, byte [ecx + eax + 8]
and dl, 0xfe
or dl, byte [edi + 8]
mov byte [ecx + eax + 8], dl
mov ecx, dword [esp + 0x3c]
cmp eax, 0xffffffff
je 0x10081f10
add eax, ecx
jmp 0x10081f12
xor eax, eax
mov ecx, dword [esp + 0x3c]
jmp 0x10081f12
xor eax, eax
lea edx, [ecx + esi]
add edx, 0x10
mov edi, eax
sub edi, edx
mov edx, edi
sar edx, 0x1f
test eax, eax
cmove edx, eax
cmove edi, eax
mov dword [ecx + esi + 0x10], edi
mov dword [ecx + esi + 0x14], edx
mov eax, dword [esp + 0x3c]
cmp esi, 0xffffffff
je 0x10081f3e
add esi, eax
jmp 0x10081f40
xor esi, esi
mov edi, dword [esp + 0xc]
lea ecx, [eax + edi]
add ecx, 0x28
mov edx, esi
sub edx, ecx
mov ecx, edx
sar ecx, 0x1f
test esi, esi
cmove ecx, esi
cmove edx, esi
mov dword [eax + edi + 0x28], edx
mov dword [eax + edi + 0x2c], ecx
lea esi, [esp + 0xa0]
mov dword [esi], 0xffffffff
lea eax, [ebp + 8]
push eax
push esi
call fcn.1008d130
add esp, 8
cmp dword [esi], 0
je 0x10082042
mov edi, 0x18
lea ecx, [esp + 0x34]
push edi
call fcn.101883b0
mov esi, eax
mov eax, dword [esp + 0x3c]
mov dword [eax + esi], edi
mov dword [eax + esi + 4], 0
mov ecx, dword [esp + 0xa0]
lea edi, [esp + 0x6c]
lea eax, [esp + 0x30]
mov dword [edi], eax
mov dword [edi + 4], 0xffffffff
mov edx, edi
call fcn.10086b84
mov eax, dword [esp + 0x3c]
lea ecx, [eax + esi]
add ecx, 8
mov edi, dword [edi + 4]
xor eax, eax
mov edx, 0
cmp edi, 0xffffffff
je 0x10081fe7
mov edx, dword [esp + 0x6c]
add edi, dword [edx + 0xc]
mov edx, edi
mov edi, edx
sub edi, ecx
mov ebx, edi
sar ebx, 0x1f
test edx, edx
cmove ebx, edx
cmove edi, edx
mov dword [ecx], edi
mov dword [ecx + 4], ebx
mov ecx, dword [esp + 0xa0]
mov ecx, dword [ecx + 4]
xor edx, edx
cmp ecx, 1
sete dl
cmp ecx, 2
cmove edx, ecx
mov ecx, dword [esp + 0x3c]
mov dword [ecx + esi + 0x10], edx
mov ecx, dword [esp + 0xa0]
movd xmm0, dword [ecx + 8]
mov ecx, dword [esp + 0x3c]
movd dword [ecx + esi + 0x14], xmm0
mov ecx, dword [esp + 0x3c]
cmp esi, 0xffffffff
je 0x10082048
add esi, ecx
mov eax, esi
jmp 0x10082048
xor eax, eax
mov ecx, dword [esp + 0x3c]
mov edi, dword [esp + 0xc]
lea edx, [ecx + edi]
add edx, 0x30
mov esi, eax
sub esi, edx
mov edx, esi
sar edx, 0x1f
test eax, eax
cmove edx, eax
cmove esi, eax
mov dword [ecx + edi + 0x30], esi
mov dword [ecx + edi + 0x34], edx
lea esi, [esp + 0x9c]
mov dword [esi], 0xffffffff
lea eax, [ebp + 8]
push eax
push esi
call fcn.1008d1de
add esp, 8
cmp dword [esi], 0
je 0x100821b4
mov edi, 0x30
lea ecx, [esp + 0x34]
push edi
call fcn.101883b0
mov esi, eax
mov eax, dword [esp + 0x3c]
mov dword [eax + esi], edi
mov dword [eax + esi + 4], 0
mov ecx, dword [esp + 0x9c]
lea edi, [esp + 0x6c]
lea eax, [esp + 0x30]
mov dword [edi], eax
mov dword [edi + 4], 0xffffffff
mov edx, edi
call fcn.10086b84
mov eax, dword [esp + 0x3c]
lea ecx, [eax + esi]
add ecx, 8
mov edi, dword [edi + 4]
xor eax, eax
mov edx, 0
cmp edi, 0xffffffff
je 0x100820ef
mov edx, dword [esp + 0x6c]
add edi, dword [edx + 0xc]
mov edx, edi
mov edi, edx
sub edi, ecx
mov ebx, edi
sar ebx, 0x1f
test edx, edx
cmove ebx, edx
cmove edi, edx
mov dword [ecx], edi
mov dword [ecx + 4], ebx
mov ecx, dword [esp + 0x9c]
movss xmm0, dword [ecx + 4]
mov ecx, dword [esp + 0x3c]
movss dword [ecx + esi + 0x10], xmm0
mov ecx, dword [esp + 0x9c]
movss xmm0, dword [ecx + 8]
mov ecx, dword [esp + 0x3c]
movss dword [ecx + esi + 0x14], xmm0
mov ecx, dword [esp + 0x9c]
movss xmm0, dword [ecx + 0xc]
mov ecx, dword [esp + 0x3c]
movss dword [ecx + esi + 0x18], xmm0
mov ecx, dword [esp + 0x9c]
movd xmm0, dword [ecx + 0x10]
mov ecx, dword [esp + 0x3c]
movd dword [ecx + esi + 0x1c], xmm0
mov ecx, dword [esp + 0x9c]
mov ecx, dword [ecx + 0x14]
mov edx, dword [esp + 0x3c]
mov dword [edx + esi + 0x20], ecx
mov ecx, dword [esp + 0x9c]
mov ecx, dword [ecx + 0x18]
lea edx, [ecx - 1]
cmp edx, 5
cmovae ecx, eax
mov edx, dword [esp + 0x3c]
mov dword [edx + esi + 0x24], ecx
mov ecx, dword [esp + 0x9c]
mov ecx, dword [ecx + 0x1c]
lea edx, [ecx - 1]
cmp edx, 3
cmovae ecx, eax
mov edx, dword [esp + 0x3c]
mov dword [edx + esi + 0x28], ecx
mov ecx, dword [esp + 0x3c]
cmp esi, 0xffffffff
je 0x100821ba
add esi, ecx
mov eax, esi
jmp 0x100821ba
xor eax, eax
mov ecx, dword [esp + 0x3c]
mov edi, dword [esp + 0xc]
lea edx, [ecx + edi]
add edx, 0x38
mov esi, eax
sub esi, edx
mov edx, esi
sar edx, 0x1f
test eax, eax
cmove edx, eax
cmove esi, eax
mov dword [ecx + edi + 0x38], esi
mov dword [ecx + edi + 0x3c], edx
lea esi, [esp + 0x98]
mov dword [esi], 0xffffffff
lea eax, [ebp + 8]
push eax
push esi
call fcn.1008d2b0
add esp, 8
cmp dword [esi], 0
je 0x10082313
mov edi, 0x20
lea ecx, [esp + 0x34]
push edi
call fcn.101883b0
mov esi, eax
mov eax, dword [esp + 0x3c]
mov dword [eax + esi], edi
mov dword [eax + esi + 4], 0
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x3c]
mov dl, byte [ecx + esi + 8]
and dl, 0xfe
or dl, byte [eax]
mov byte [ecx + esi + 8], dl
mov eax, dword [esp + 0x98]
mov al, byte [eax + 1]
mov ecx, dword [esp + 0x3c]
mov dl, byte [ecx + esi + 8]
add al, al
and dl, 0xfd
or dl, al
mov byte [ecx + esi + 8], dl
mov ecx, dword [esp + 0x98]
add ecx, 4
lea edi, [esp + 0x6c]
lea eax, [esp + 0x30]
mov dword [edi], eax
mov dword [edi + 4], 0xffffffff
mov edx, edi
call fcn.10086b84
mov eax, dword [esp + 0x3c]
add eax, esi
add eax, 0x10
mov edx, dword [edi + 4]
xor ebx, ebx
mov ecx, 0
cmp edx, 0xffffffff
je 0x10082298
mov ecx, dword [esp + 0x6c]
add edx, dword [ecx + 0xc]
mov ecx, edx
mov edx, ecx
sub edx, eax
mov edi, edx
sar edi, 0x1f
test ecx, ecx
cmove edi, ecx
cmove edx, ecx
mov dword [eax], edx
mov dword [eax + 4], edi
mov ecx, dword [esp + 0x98]
add ecx, 8
lea edi, [esp + 0x80]
lea eax, [esp + 0x30]
mov dword [edi], eax
mov dword [edi + 4], 0xffffffff
mov edx, edi
call fcn.10086ca8
mov eax, dword [esp + 0x3c]
add eax, esi
add eax, 0x18
mov ecx, dword [edi + 4]
cmp ecx, 0xffffffff
je 0x100822f0
mov edx, dword [esp + 0x80]
add ecx, dword [edx + 0xc]
mov ebx, ecx
mov ecx, ebx
sub ecx, eax
mov edx, ecx
sar edx, 0x1f
test ebx, ebx
cmove edx, ebx
cmove ecx, ebx
mov dword [eax], ecx
mov dword [eax + 4], edx
mov eax, dword [esp + 0x3c]
cmp esi, 0xffffffff
je 0x1008231b
add esi, eax
jmp 0x1008231d
xor esi, esi
mov eax, dword [esp + 0x3c]
jmp 0x1008231d
xor esi, esi
mov edi, dword [esp + 0xc]
lea ecx, [eax + edi]
add ecx, 0x40
mov edx, esi
sub edx, ecx
mov ecx, edx
sar ecx, 0x1f
test esi, esi
cmove ecx, esi
cmove edx, esi
mov dword [eax + edi + 0x40], edx
mov dword [eax + edi + 0x44], ecx
lea esi, [esp + 0x94]
mov dword [esi], 0xffffffff
lea eax, [ebp + 8]
push eax
push esi
call fcn.1008d028
add esp, 8
cmp dword [esi], 0
je 0x10082521
mov edi, 0x30
lea ecx, [esp + 0x34]
push edi
call fcn.101883b0
mov esi, eax
mov eax, dword [esp + 0x3c]
mov dword [eax + esi], edi
mov dword [eax + esi + 4], 0
mov eax, dword [esp + 0x94]
mov eax, dword [eax]
mov ecx, dword [esp + 0x3c]
mov dword [ecx + esi + 8], eax
mov ecx, dword [esp + 0x94]
add ecx, 4
lea edi, [esp + 0x6c]
lea eax, [esp + 0x30]
mov dword [edi], eax
mov dword [edi + 4], 0xffffffff
mov edx, edi
call fcn.10086b84
mov eax, dword [esp + 0x3c]
add eax, esi
add eax, 0x10
mov edx, dword [edi + 4]
xor ebx, ebx
mov ecx, 0
cmp edx, 0xffffffff
je 0x100823d7
mov ecx, dword [esp + 0x6c]
add edx, dword [ecx + 0xc]
mov ecx, edx
mov edx, ecx
sub edx, eax
mov edi, edx
sar edi, 0x1f
test ecx, ecx
cmove edi, ecx
cmove edx, ecx
mov dword [eax], edx
mov dword [eax + 4], edi
mov ecx, dword [esp + 0x94]
add ecx, 8
lea edi, [esp + 0x80]
lea eax, [esp + 0x30]
mov dword [edi], eax
mov dword [edi + 4], 0xffffffff
mov edx, edi
call fcn.10086ca8
mov eax, dword [esp + 0x3c]
add eax, esi
add eax, 0x18
mov ecx, dword [edi + 4]
cmp ecx, 0xffffffff
je 0x1008242f
mov edx, dword [esp + 0x80]
add ecx, dword [edx + 0xc]
mov ebx, ecx
mov ecx, ebx
sub ecx, eax
mov edx, ecx
sar edx, 0x1f
test ebx, ebx
cmove edx, ebx
cmove ecx, ebx
mov dword [eax], ecx
mov dword [eax + 4], edx
mov ebx, dword [esp + 0x94]
mov edi, 0x10
lea ecx, [esp + 0x34]
push edi
call fcn.101883b0
mov ecx, dword [esp + 0x3c]
mov dword [ecx + eax], edi
xor edi, edi
mov dword [ecx + eax + 4], edi
mov ecx, dword [ebx + 0x34]
mov edx, dword [esp + 0x3c]
mov dword [edx + eax + 8], ecx
mov ecx, dword [ebx + 0x38]
mov edx, dword [esp + 0x3c]
mov dword [edx + eax + 0xc], ecx
mov ecx, dword [esp + 0x3c]
lea edx, [ecx + eax]
cmp eax, 0xffffffff
cmove edx, edi
lea eax, [ecx + esi]
add eax, 0x20
mov ebx, edx
sub ebx, eax
mov eax, ebx
sar eax, 0x1f
test edx, edx
cmove eax, edx
cmove ebx, edx
mov dword [ecx + esi + 0x20], ebx
mov dword [ecx + esi + 0x24], eax
mov ebx, dword [esp + 0x94]
lea ecx, [esp + 0x34]
mov eax, 0x10
push eax
call fcn.101883b0
mov ecx, dword [esp + 0x3c]
mov edx, 0x10
mov dword [ecx + eax], edx
mov dword [ecx + eax + 4], edi
mov ecx, dword [ebx + 0x3c]
mov edx, dword [esp + 0x3c]
mov dword [edx + eax + 8], ecx
mov ecx, dword [ebx + 0x40]
mov edx, dword [esp + 0x3c]
mov dword [edx + eax + 0xc], ecx
mov ecx, dword [esp + 0x3c]
lea edx, [ecx + eax]
cmp eax, 0xffffffff
cmove edx, edi
lea eax, [ecx + esi]
add eax, 0x28
mov ebx, edx
sub ebx, eax
mov eax, ebx
sar eax, 0x1f
test edx, edx
cmove eax, edx
cmove ebx, edx
mov dword [ecx + esi + 0x28], ebx
mov dword [ecx + esi + 0x2c], eax
mov eax, dword [esp + 0x3c]
cmp esi, 0xffffffff
je 0x10082527
add esi, eax
mov edi, esi
jmp 0x10082527
xor edi, edi
mov eax, dword [esp + 0x3c]
mov esi, dword [esp + 0xc]
lea ecx, [eax + esi]
add ecx, 0x48
mov edx, edi
sub edx, ecx
mov ecx, edx
sar ecx, 0x1f
test edi, edi
cmove ecx, edi
cmove edx, edi
mov dword [eax + esi + 0x48], edx
mov dword [eax + esi + 0x4c], ecx
pcmpeqd xmm0, xmm0
lea ecx, [esp + 0x80]
movdqa xmmword [ecx], xmm0
lea eax, [ebp + 8]
push eax
push ecx
call fcn.1008d386
add esp, 8
mov dword [esp + 0x70], 0xffffff00
mov edi, 0x14
push edi
call fcn.1020d865
add esp, 4
mov esi, eax
push edi
mov edi, 0x14
call fcn.1020d865
add esp, 4
xor ebx, ebx
mov dword [eax], ebx
mov byte [eax + 4], bl
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov dword [esi], ebx
mov byte [esi + 4], bl
mov dword [esi + 8], ebx
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], ebx
push edi
call fcn.1020d865
add esp, 4
mov edi, eax
mov eax, 0x14
push eax
call fcn.1020d865
add esp, 4
mov dword [eax], ebx
mov byte [eax + 4], bl
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov dword [edi], ebx
mov byte [edi + 4], bl
mov dword [edi + 8], ebx
mov dword [edi + 0xc], eax
mov dword [edi + 0x10], ebx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x74], edi
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], ebx
mov esi, 0x18
lea edi, [esp + 0x34]
mov ecx, edi
push esi
call fcn.101883b0
mov ecx, dword [esp + 0x3c]
mov dword [ecx + eax], esi
mov dword [esp + 0x18], eax
mov dword [ecx + eax + 4], ebx
lea eax, [esp + 0x80]
mov ebx, dword [eax + 4]
mov eax, dword [eax + 8]
sub eax, ebx
mov ecx, eax
sar ecx, 3
imul esi, ecx, 0xaaaaaaab
cmp esi, 0x1ffffffe
jbe 0x1008263a
xor ecx, ecx
dec ecx
mov dword [esp + 0x10], ecx
jmp 0x10082668
mov ecx, edi
lea edi, [esi*8 + 8]
push edi
call fcn.101883b0
mov ecx, dword [esp + 0x3c]
mov dword [ecx + eax], edi
mov dword [esp + 0x10], eax
mov dword [ecx + eax + 4], esi
mov ebx, dword [esp + 0x84]
mov eax, dword [esp + 0x88]
sub eax, ebx
test eax, eax
je 0x10082709
sar eax, 3
imul eax, eax, 0xaaaaaaab
xor ecx, ecx
inc ecx
cmp eax, 1
cmova ecx, eax
mov edi, 0xfffffff8
mov esi, dword [esp + 0x10]
sub edi, esi
mov dword [esp + 8], ecx
lea eax, [esp + 0x30]
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], 0xffffffff
lea eax, [esp + 0xd0]
push eax
push ebx
call fcn.1008660e
add esp, 8
mov eax, dword [esp + 0xd4]
cmp eax, 0xffffffff
je 0x100826d0
mov ecx, dword [esp + 0xd0]
add eax, dword [ecx + 0xc]
jmp 0x100826d2
xor eax, eax
add ebx, 0x18
mov dword [esp + 0x14], ebx
mov ecx, dword [esp + 0x3c]
mov edx, eax
sub edx, ecx
add edx, edi
mov ebx, edx
sar ebx, 0x1f
test eax, eax
cmove ebx, eax
cmove edx, eax
mov dword [ecx + esi + 8], edx
mov dword [ecx + esi + 0xc], ebx
mov ebx, dword [esp + 0x14]
add edi, 0xfffffff8
add esi, 8
mov ecx, dword [esp + 8]
dec ecx
jne 0x1008268d
mov eax, dword [esp + 0x3c]
mov esi, dword [esp + 0x18]
lea ecx, [eax + esi]
add ecx, 8
mov edi, dword [esp + 0x10]
add edi, eax
mov edx, edi
sub edx, ecx
mov ecx, edx
sar ecx, 0x1f
test edi, edi
cmove ecx, edi
cmove edx, edi
mov dword [eax + esi + 8], edx
mov dword [eax + esi + 0xc], ecx
mov eax, dword [esp + 0x88]
mov esi, dword [esp + 0x84]
sub eax, esi
mov ecx, eax
sar ecx, 3
imul edi, ecx, 0xaaaaaaab
cmp edi, 0x1ffffffe
jbe 0x10082762
xor ecx, ecx
dec ecx
mov dword [esp + 0x10], ecx
jmp 0x10082792
lea esi, [edi*8 + 8]
lea ecx, [esp + 0x34]
push esi
call fcn.101883b0
mov ecx, dword [esp + 0x3c]
mov dword [ecx + eax], esi
mov dword [esp + 0x10], eax
mov dword [ecx + eax + 4], edi
mov esi, dword [esp + 0x84]
mov eax, dword [esp + 0x88]
sub eax, esi
test eax, eax
je 0x10082879
sar eax, 3
imul eax, eax, 0xaaaaaaab
xor ecx, ecx
inc ecx
cmp eax, 1
cmova ecx, eax
mov dword [esp + 0x1c], ecx
xor eax, eax
mov dword [esp + 0x14], eax
mov edi, dword [esi + 0xc]
mov ebx, dword [esi + 0x10]
sub ebx, edi
cmp ebx, 0xfffffff7
jbe 0x100827c8
xor eax, eax
dec eax
jmp 0x100827ea
lea edi, [ebx + 8]
lea ecx, [esp + 0x34]
push edi
call fcn.101883b0
mov ecx, dword [esp + 0x3c]
mov dword [ecx + eax], edi
mov dword [ecx + eax + 4], ebx
mov edi, dword [esi + 0xc]
mov ebx, dword [esi + 0x10]
sub ebx, edi
je 0x10082834
mov ecx, dword [esp + 0x3c]
mov dword [esp + 8], eax
lea edx, [ecx + eax]
add edx, 8
test edi, edi
je 0x10082809
push ebx
push edi
push edx
call fcn.10208400
add esp, 0xc
jmp 0x10082830
mov al, byte [pe_dos_header]
mov byte [edx], al
cmp ebx, 1
je 0x10082830
mov eax, dword [esp + 8]
add eax, ecx
add eax, 9
dec ebx
xor ecx, ecx
mov edx, dword [esi + 0xc]
mov dl, byte [edx + ecx + 1]
mov byte [eax + ecx], dl
inc ecx
cmp ebx, ecx
jne 0x10082821
mov eax, dword [esp + 8]
add esi, 0x18
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x10]
add ecx, edi
add edi, eax
cmp eax, 0xffffffff
mov edx, 0
cmove edi, edx
mov eax, dword [esp + 0x14]
lea ecx, [ecx + eax*8]
add ecx, 8
mov edx, edi
sub edx, ecx
mov ebx, edx
sar ebx, 0x1f
test edi, edi
cmove ebx, edi
cmove edx, edi
mov dword [ecx], edx
mov dword [ecx + 4], ebx
inc eax
cmp eax, dword [esp + 0x1c]
jne 0x100827b2
mov eax, dword [esp + 0x3c]
mov esi, dword [esp + 0x18]
lea ecx, [eax + esi]
add ecx, 0x10
mov edi, dword [esp + 0x10]
add edi, eax
mov edx, edi
sub edx, ecx
mov ecx, edx
sar ecx, 0x1f
test edi, edi
cmove ecx, edi
cmove edx, edi
mov dword [eax + esi + 0x10], edx
mov dword [eax + esi + 0x14], ecx
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0xc]
lea ecx, [eax + edi]
add ecx, 0x50
xor edx, edx
cmp esi, 0xffffffff
lea esi, [eax + esi]
cmovne edx, esi
mov esi, edx
sub esi, ecx
mov ecx, esi
sar ecx, 0x1f
test edx, edx
cmove ecx, edx
cmove esi, edx
mov dword [eax + edi + 0x50], esi
mov dword [eax + edi + 0x54], ecx
lea ecx, [esp + 0x6c]
call fcn.10033178
lea ecx, [esp + 0x84]
call fcn.10086e36
mov esi, dword [esp + 0x94]
mov dword [esp + 0x94], 0
test esi, esi
je 0x10082913
mov ecx, esi
call fcn.1008cdc0
push esi
call fcn.10205096
add esp, 4
mov esi, dword [esp + 0x98]
mov dword [esp + 0x98], 0
test esi, esi
je 0x10082939
mov ecx, esi
call fcn.1008cdc0
push esi
call fcn.10205096
add esp, 4
mov esi, dword [esp + 0x9c]
mov dword [esp + 0x9c], 0
test esi, esi
je 0x1008295f
mov ecx, esi
call fcn.1008cd80
push esi
call fcn.10205096
add esp, 4
mov esi, dword [esp + 0xa0]
mov dword [esp + 0xa0], 0
test esi, esi
je 0x10082985
mov ecx, esi
call fcn.1008cd80
push esi
call fcn.10205096
add esp, 4
mov eax, dword [esp + 0xa4]
mov dword [esp + 0xa4], 0
test eax, eax
je 0x100829a4
push eax
call fcn.10205096
add esp, 4
mov eax, dword [esp + 0x3c]
xor ecx, ecx
mov edx, dword [esp + 0xc]
cmp edx, 0xffffffff
lea edx, [eax + edx]
cmovne ecx, edx
mov edi, dword [esp + 0x28]
lea edx, [eax + edi]
add edx, 8
mov esi, ecx
sub esi, edx
mov edx, esi
sar edx, 0x1f
test ecx, ecx
cmove edx, ecx
cmove esi, ecx
mov dword [eax + edi + 8], esi
mov dword [eax + edi + 0xc], edx
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 4]
mov eax, dword [ecx]
lea esi, [esp + 0x30]
push esi
call dword [eax + 8]
mov ecx, esi
call fcn.10188af0
lea eax, [ebp + 8]
mov ecx, dword [eax]
mov dword [eax], 0
test ecx, ecx
je 0x10082a07
mov eax, dword [ecx]
push 1
call dword [eax]
mov ecx, dword [esp + 0xd8]
xor ecx, ebp
call fcn.10205d16
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 4