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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xd0
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x24], ecx
mov ecx, dword [ebp + 0x1c]
mov dword [esp + 0xc], edx
xor ebx, ebx
mov esi, 1
mov byte [esp + 0x78], 2
movdqu xmm0, xmmword [esp + 0x68]
mov edx, eax
or edx, ecx
mov edx, dword [ebp + 0x14]
cmovne esi, dword [ebp + 0x10]
cmove edx, ebx
sub eax, 1
sbb ecx, 0
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], edx
cmovb eax, ebx
cmovb ecx, ebx
cmp eax, esi
mov dword [esp + 0x44], ecx
mov dword [esp + 0x40], eax
lea eax, [esp + 0x68]
mov byte [esp + 0x48], 0
sbb ecx, edx
lea ecx, [esp + 0x38]
movdqu xmm1, xmmword [esp + 0x38]
cmovb ecx, eax
mov edx, dword [ecx + 0x11]
mov ecx, dword [ecx + 0x14]
mov dword [esp + 0x30], edx
mov dword [esp + 0x33], ecx
setb cl
jb 0x100314c0
mov dl, 1
test dl, dl
je 0x100314c0
movzx ecx, cl
mov edx, dword [esp + 0x33]
movd xmm2, ecx
mov ecx, dword [esp + 0x30]
pshufd xmm2, xmm2, 0x44
psllq xmm2, 0x3f
psrad xmm2, 0x1f
mov dword [esp + 0x6b], edx
pshufd xmm2, xmm2, 0xf5
mov dword [esp + 0x68], ecx
pand xmm0, xmm2
pandn xmm2, xmm1
por xmm2, xmm0
movd edi, xmm2
test edi, 0xfff
jne 0x100314d1
movdqa xmm0, xmm2
pshufd xmm0, xmm2, 0xee
movdqa xmmword [esp + 0x50], xmm2
movd esi, xmm0
mov ecx, esi
not ecx
test ecx, 0xfff
jne 0x100314e2
mov edx, dword [esp + 0x6b]
mov ecx, dword [esp + 0x68]
mov ebx, dword [ebp + 0xc]
mov dword [esp + 0x2b], edx
mov dword [esp + 0x28], ecx
mov ecx, dword [ebx + 8]
cmp dword [ecx + 0x1940], 0
jne 0x100314f3
mov edx, dword [esp + 0xc]
mov dword [ecx + 0x1940], 0xffffffff
movdqa xmm0, xmmword [esp + 0x50]
shr edx, 4
and edx, 0xfc
mov ebx, dword [ecx + edx + 0x1944]
test ebx, ebx
je 0x10031509
inc dword [ebx]
inc dword [ecx + 0x1940]
mov dword [esp], esi
cmp dword [ebx + 8], 0
jne 0x10031522
pshufd xmm0, xmm0, 0x55
lea esi, [ebx + 0xc]
mov dword [ebx + 8], 0xffffffff
and edi, 0xfffff000
lea ecx, [esp + 0x68]
movd eax, xmm0
mov edx, esi
push eax
push edi
call fcn.10031550
add esp, 8
mov eax, dword [esp + 0x68]
test eax, eax
je 0x10031098
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x70]
mov esi, dword [esp + 0x74]
mov dword [edi], eax
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
mov dword [edi + 0xc], esi
inc dword [ebx + 8]
mov ecx, ebx
call fcn.1004d440
cmp dword [ebx], 0
jne 0x10031088
cmp dword [ebx + 4], 0
jne 0x10031088
mov eax, dword [0x157e000]
push 8
push 0x30
push ebx
push 0x157d260
call dword [eax + 0x10]
add esp, 0x10
mov ecx, dword [ebp + 0x20]
call fcn.10030940
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 8], esi
pshufd xmm0, xmmword [esp + 0x50], 0xff
mov esi, dword [esp]
mov ecx, dword [esp + 0x6c]
movd eax, xmm0
mov edx, esi
mov dword [esp + 4], ecx
and edx, eax
cmp edx, 0xffffffff
je 0x100310fa
mov edi, dword [esp + 8]
add esi, 1
lea ecx, [esp + 0x68]
adc eax, 0
and esi, 0xfffff000
mov edx, edi
push eax
push esi
call fcn.10031550
add esp, 8
mov eax, dword [esp + 0x68]
test eax, eax
jne 0x10031043
mov edx, dword [esp + 0x6c]
cmp dword [esp + 4], edx
mov dword [esp + 0x1c], ebx
jb 0x1003110f
jmp 0x100312d9
mov edx, dword [ebx + 0x10]
mov edi, dword [esp + 8]
cmp dword [esp + 4], edx
mov dword [esp + 0x1c], ebx
jae 0x100312d9
and dword [esp + 0xc], 0xffffffc0
mov esi, dword [esp + 4]
mov dword [esp + 0x10], edx
jmp 0x10031130
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
cmp esi, edx
je 0x100312d9
lea eax, [esi + 1]
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], eax
jmp 0x10031150
mov edx, ecx
mov ecx, ebx
call fcn.10047550
mov ecx, ebx
call fcn.1004d4c0
mov ebx, dword [esp + 0x1c]
mov eax, dword [ebx + 0x10]
mov edx, dword [ebx + 0x14]
cmp eax, edx
cmovb edx, eax
cmp esi, edx
jae 0x1003148f
mov eax, dword [edi]
lea edx, [esi + esi*2]
shl edx, 5
mov ecx, dword [eax + edx + 0x54]
mov esi, dword [eax + edx + 0x58]
cmp ecx, esi
cmovb esi, ecx
test esi, esi
je 0x10031120
lea esi, [eax + edx + 0x54]
mov eax, dword [eax + edx + 0x50]
dec ecx
mov dword [esi], ecx
lea ecx, [ecx + ecx*2]
mov edx, dword [eax + ecx*8 + 8]
cmp edx, 3
je 0x10031120
mov dword [esp], edx
lea edx, [eax + ecx*8]
mov edi, dword [edx]
mov dword [esp + 0x20], edx
mov edx, 0xfffff000
and edi, edx
or edi, dword [esp + 0xc]
mov ebx, edi
shr ebx, 0xc
movzx esi, bl
lea edx, [esi + esi*2]
mov esi, dword [ebp + 0xc]
mov esi, dword [esi]
mov ebx, dword [esi + edx*8 + 0x10]
and ebx, 0xffffffc0
xor ebx, edi
mov edi, dword [esp + 0x20]
mov edi, dword [edi + 4]
or edi, dword [ebp + 8]
xor edi, dword [esi + edx*8 + 0x14]
or ebx, edi
mov ebx, dword [eax + ecx*8 + 0xc]
mov ecx, dword [eax + ecx*8 + 0x10]
jne 0x1003128e
lea edi, [esi + edx*8 + 0x10]
mov dword [edi + 4], 0
mov dword [edi], 0
mov eax, dword [esi + edx*8]
cmp eax, 2
jb 0x1003120e
mov eax, dword [edi - 4]
mov dword [eax + 0x1020], 0xffffffff
mov eax, dword [edi - 0x10]
test eax, eax
je 0x10031280
cmp eax, 1
je 0x1003122a
cmp eax, 2
jne 0x10031248
mov eax, dword [edi - 8]
dec dword [eax]
mov eax, dword [edi - 4]
dec dword [eax]
jne 0x10031280
jmp 0x10031254
mov eax, dword [edi - 0xc]
dec dword [eax]
jne 0x10031280
cmp dword [eax + 4], 0
jne 0x10031280
mov esi, ecx
mov ecx, dword [0x157e000]
push 0x10
push 0x1010
jmp 0x10031269
mov eax, dword [edi - 8]
inc dword [eax]
mov eax, dword [edi - 4]
dec dword [eax]
jne 0x10031280
cmp dword [eax + 4], 0
jne 0x10031280
mov esi, ecx
mov ecx, dword [0x157e000]
push 0x10
push 0x1030
push eax
push 0x157d260
call dword [ecx + 0x10]
mov ecx, esi
add esp, 0x10
nop word [eax + eax]
mov dword [edi - 0x10], 0
mov dword [edi - 0xc], 0x157bef0
mov eax, dword [esp]
mov edi, dword [esp + 8]
mov esi, dword [esp + 0x18]
test eax, eax
je 0x10031150
cmp eax, 1
jne 0x10031140
dec dword [ebx]
jne 0x10031150
cmp dword [ebx + 4], 0
jne 0x10031150
mov eax, dword [0x157e000]
push 0x10
push 0x1010
push ebx
push 0x157d260
call dword [eax + 0x10]
add esp, 0x10
jmp 0x10031150
mov esi, dword [ebx + 0x10]
mov ecx, dword [ebx + 0x14]
mov eax, dword [esp + 4]
cmp esi, ecx
lea eax, [eax + 1]
cmovb ecx, esi
mov dword [esp], eax
cmp edx, ecx
mov dword [esp + 0x20], ecx
cmovae edx, ecx
mov ecx, edx
sub ecx, dword [esp]
jbe 0x1003138b
mov eax, dword [esp]
mov dword [esp + 0x10], edx
mov edx, dword [edi]
mov dword [esp + 0x18], esi
mov dword [esp + 0xc], ecx
lea ebx, [eax + eax*2]
mov dword [esp + 0x14], edx
shl ebx, 5
add ebx, edx
mov dword [esp + 8], ebx
nop word cs:[eax + eax]
nop dword [eax]
lea eax, [esp + 0x68]
mov dword [esp], ecx
mov ecx, 0x18
mov esi, ebx
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
call fcn.1002c630
mov ecx, dword [esp]
add ebx, 0x60
dec ecx
jne 0x10031330
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
lea eax, [ecx + ecx*2]
shl eax, 5
add edx, eax
mov eax, dword [esp + 0x20]
sub eax, ecx
shl eax, 5
lea eax, [eax + eax*2]
push eax
push edx
push dword [esp + 0x10]
call 0x10056480
add esp, 0xc
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
sub esi, dword [esp + 0xc]
mov dword [ebx + 0x10], esi
mov ecx, dword [esp + 4]
cmp ecx, esi
jae 0x100314a0
mov edx, dword [ebx + 0x14]
cmp esi, edx
cmovb edx, esi
cmp ecx, edx
jae 0x100314b1
mov edi, dword [ebx + 0xc]
lea ebx, [ecx + ecx*2]
shl ebx, 5
lea ecx, [edi + ebx + 0x50]
lea esi, [edi + ebx]
call fcn.1002c720
mov ecx, esi
call fcn.10030940
mov eax, dword [ebp + 0x20]
mov esi, dword [esp + 0x1c]
movsd xmm0, qword [eax + 0x30]
movsd qword [edi + ebx + 0x30], xmm0
movsd xmm0, qword [eax + 0x28]
movsd qword [edi + ebx + 0x28], xmm0
movsd xmm0, qword [eax + 0x20]
movsd qword [edi + ebx + 0x20], xmm0
movsd xmm0, qword [eax + 0x18]
movsd qword [edi + ebx + 0x18], xmm0
movsd xmm0, qword [eax + 0x10]
movsd qword [edi + ebx + 0x10], xmm0
movsd xmm1, qword [eax + 8]
movq xmm0, qword [eax]
movsd qword [edi + ebx + 8], xmm1
movdqa xmm1, xmmword [esp + 0x50]
movq qword [edi + ebx], xmm0
movdqu xmmword [edi + ebx + 0x38], xmm1
mov byte [edi + ebx + 0x48], 0
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2b]
mov dword [edi + ebx + 0x49], eax
mov dword [edi + ebx + 0x4c], ecx
mov ecx, dword [esp + 0x24]
mov dword [edi + ebx + 0x50], 8
mov dword [edi + ebx + 0x54], 0
mov dword [edi + ebx + 0x58], 0
mov dword [ecx], 0
inc dword [esi + 8]
mov ecx, esi
call fcn.1004d440
cmp dword [esi], 0
jne 0x10031090
cmp dword [esi + 4], 0
jne 0x10031090
mov eax, dword [0x157e000]
push 8
push 0x30
push esi
push 0x157d260
call dword [eax + 0x10]
add esp, 0x10
jmp 0x10031090
mov ecx, esi
push 0x15785d0
call fcn.10018ae0
add esp, 4
ud2
mov edx, esi
push 0x15785b0
call fcn.10018ae0
add esp, 4
ud2
push 0x15785c0
call fcn.10018ae0
add esp, 4
ud2
mov ecx, 0x157d3e4
mov edx, 0x2b
push 0x157aa3c
jmp 0x10031518
mov ecx, 0x157d2dc
mov edx, 0x36
push 0x157d31c
jmp 0x10031518
mov ecx, 0x157b735
mov edx, 0x45
push 0x157b77c
jmp 0x10031518
mov ecx, 0x157d334
mov edx, 0x10
push 0x1578818
push 0x15788c0
jmp 0x10031536
mov ecx, 0x157d3e4
mov edx, 0x2b
push 0x1578828
call fcn.100194a0
add esp, 4
ud2
mov ecx, 0x157d334
mov edx, 0x10
push 0x1578440
push 0x15785e0
push eax
call fcn.10019cf0
add esp, 0xc
ud2