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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x80
mov esi, esp
mov dword [esi + 0x68], ebp
mov dword [esi + 0x6c], esp
mov dword [esi + 0x78], 0xffffffff
mov dword [esi + 0x74], 0x1002a1f0
mov ebx, ecx
lea eax, [esi + 0x70]
mov ecx, dword fs:[0]
mov dword [esi + 0x70], ecx
mov dword fs:[0], eax
mov edi, dword [edx + 0x10]
inc edi
jne 0x100297ab
push 1
call fcn.100d2d60
add esp, 4
mov dword [ebx + 4], eax
mov dword [ebx + 8], edx
mov dword [ebx], 1
jmp 0x10029f85
push dword [edx]
mov dword [esi + 0x18], ebx
mov ebx, edx
call fcn.100d2df0
add esp, 4
mov ecx, eax
mov dword [esi + 0x10], ebx
shr ecx, 1
cmp edi, ecx
jbe 0x10029824
inc eax
cmp edi, eax
cmova eax, edi
test eax, eax
je 0x10029d76
push eax
call fcn.100d2da0
add esp, 4
test eax, eax
je 0x10029806
mov ecx, 0x110
mov eax, edx
mov dword [esi + 0x14], edx
mul ecx
jo 0x10029806
mov edx, dword [esi + 0x14]
mov edi, eax
lea ebx, [edx + 0x17]
lea ecx, [edx + 0x10]
and ebx, 0xfffffff8
sub ebx, ecx
add ebx, ecx
jae 0x10029f96
push 1
call fcn.100d2d60
add esp, 4
mov ecx, dword [esi + 0x18]
mov dword [ecx + 4], eax
mov dword [ecx + 8], edx
mov dword [ecx], 1
jmp 0x10029f85
mov eax, dword [ebx]
movdqa xmm0, xmmword [0x100fef70]
xor ebx, ebx
xor ecx, ecx
inc eax
test bl, 1
jne 0x10029861
jmp 0x10029880
mov edi, dword [esi + 0x10]
pxor xmm1, xmm1
mov bl, 1
mov edi, dword [edi + 4]
pcmpgtb xmm1, xmmword [edi + ecx]
por xmm1, xmm0
movdqa xmmword [edi + ecx], xmm1
mov ecx, edx
test bl, 1
je 0x10029880
lea edx, [ecx + 0xf]
mov edi, ecx
inc edx
add edi, 0xf
cmovb edx, eax
cmp edi, eax
cmovae edx, eax
add ecx, 0xf
jb 0x10029889
cmp ecx, eax
jb 0x10029840
jmp 0x10029889
cmp ecx, eax
jae 0x10029889
lea edx, [ecx + 1]
jmp 0x10029840
mov edi, dword [esi + 0x10]
mov ecx, 0x10
mov eax, dword [edi]
inc eax
cmp eax, 0x10
mov edx, eax
cmovb edx, ecx
cmovae eax, ecx
mov ecx, dword [edi + 4]
add edx, ecx
push eax
push ecx
push edx
call fcn.100f1b60
mov edx, edi
add esp, 0xc
mov eax, dword [ebp + 8]
mov dword [esi + 0x30], edi
mov ecx, dword [edi]
xor edi, edi
mov eax, dword [eax]
inc ecx
mov dword [esi + 0x14], ecx
mov dword [esi + 0x2c], eax
nop word cs:[eax + eax]
nop
cmp edi, ecx
jae 0x10029d4d
mov eax, dword [edx + 4]
mov ebx, edi
inc edi
cmp byte [eax + ebx], 0x80
jne 0x100298d0
mov dword [esi + 0x20], edi
mov dword [esi + 0x78], 1
mov dword [esi + 4], ebx
mov eax, dword [edx + 8]
imul ecx, ebx, 0x110
mov dword [esi + 0x44], ecx
mov dword [esi + 0x28], eax
add eax, ecx
mov dword [esi + 0x1c], eax
push eax
push dword [esi + 0x2c]
call fcn.10020f80
add esp, 8
mov ecx, dword [esi + 0x10]
xor ebx, ebx
mov dword [esi + 0xc], eax
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esi + 8], ecx
nop word cs:[eax + eax]
nop dword [eax + eax]
mov edi, eax
mov eax, dword [esi + 8]
and edi, edx
movdqu xmm0, xmmword [eax + edi]
lea eax, [ebx + edi + 0x10]
add ebx, 0x10
pmovmskb ecx, xmm0
test cx, cx
je 0x10029930
bsf ax, cx
mov ecx, edx
movzx eax, ax
add edi, eax
and edi, edx
mov edx, dword [esi + 8]
cmp byte [edx + edi], 0
jns 0x10029ccd
mov eax, ecx
mov edx, ecx
mov ecx, dword [esi + 0xc]
mov ebx, dword [esi + 4]
and eax, ecx
sub ebx, eax
mov dword [esi + 0x24], ebx
mov ebx, edi
sub ebx, eax
xor ebx, dword [esi + 0x24]
and ebx, edx
cmp ebx, 0xf
jbe 0x10029cf0
mov ebx, dword [esi + 8]
lea eax, [edi - 0x10]
shr ecx, 0x19
and eax, edx
mov dl, byte [ebx + edi]
mov byte [ebx + edi], cl
mov byte [eax + ebx + 0x10], cl
cmp dl, 0xff
je 0x10029d18
imul eax, edi, 0x110
mov edx, dword [esi + 0x10]
mov edi, dword [esi + 0x1c]
mov ebx, dword [esi + 0x44]
mov ecx, dword [edx + 8]
movsd xmm2, qword [edi + 0x18]
movups xmm0, xmmword [ecx + eax]
movups xmm1, xmmword [ecx + eax + 0x10]
movsd qword [ecx + eax + 0x18], xmm2
movsd xmm2, qword [edi + 0x10]
movsd qword [ecx + eax + 0x10], xmm2
movsd xmm2, qword [edi]
movsd xmm3, qword [edi + 8]
movsd qword [ecx + eax + 8], xmm3
movsd qword [ecx + eax], xmm2
movups xmmword [edi], xmm0
movups xmmword [edi + 0x10], xmm1
mov edi, dword [esi + 0x28]
movups xmm0, xmmword [ecx + eax + 0x20]
movups xmm1, xmmword [ecx + eax + 0x30]
movsd xmm2, qword [edi + ebx + 0x38]
movsd qword [ecx + eax + 0x38], xmm2
movsd xmm2, qword [edi + ebx + 0x30]
movsd qword [ecx + eax + 0x30], xmm2
movsd xmm2, qword [edi + ebx + 0x20]
movsd xmm3, qword [edi + ebx + 0x28]
movsd qword [ecx + eax + 0x28], xmm3
movsd qword [ecx + eax + 0x20], xmm2
movups xmmword [edi + ebx + 0x20], xmm0
movups xmmword [edi + ebx + 0x30], xmm1
movsd xmm2, qword [edi + ebx + 0x58]
movups xmm0, xmmword [ecx + eax + 0x40]
movups xmm1, xmmword [ecx + eax + 0x50]
movsd qword [ecx + eax + 0x58], xmm2
movsd xmm2, qword [edi + ebx + 0x50]
movsd qword [ecx + eax + 0x50], xmm2
movsd xmm2, qword [edi + ebx + 0x40]
movsd xmm3, qword [edi + ebx + 0x48]
movsd qword [ecx + eax + 0x48], xmm3
movsd qword [ecx + eax + 0x40], xmm2
movups xmmword [edi + ebx + 0x50], xmm1
movups xmmword [edi + ebx + 0x40], xmm0
movsd xmm2, qword [edi + ebx + 0x78]
movups xmm0, xmmword [ecx + eax + 0x60]
movups xmm1, xmmword [ecx + eax + 0x70]
movsd qword [ecx + eax + 0x78], xmm2
movsd xmm2, qword [edi + ebx + 0x70]
movsd qword [ecx + eax + 0x70], xmm2
movsd xmm2, qword [edi + ebx + 0x60]
movsd xmm3, qword [edi + ebx + 0x68]
movsd qword [ecx + eax + 0x68], xmm3
movsd qword [ecx + eax + 0x60], xmm2
movups xmmword [edi + ebx + 0x70], xmm1
movups xmmword [edi + ebx + 0x60], xmm0
movsd xmm3, qword [edi + ebx + 0x88]
movups xmm0, xmmword [ecx + eax + 0x80]
movups xmm1, xmmword [ecx + eax + 0x90]
movsd xmm2, qword [edi + ebx + 0x80]
movsd qword [ecx + eax + 0x88], xmm3
movsd xmm3, qword [edi + ebx + 0x98]
movsd qword [ecx + eax + 0x98], xmm3
movsd xmm3, qword [edi + ebx + 0x90]
movsd qword [ecx + eax + 0x80], xmm2
movsd qword [ecx + eax + 0x90], xmm3
movups xmmword [edi + ebx + 0x90], xmm1
movups xmmword [edi + ebx + 0x80], xmm0
movsd xmm2, qword [edi + ebx + 0xb8]
movups xmm0, xmmword [ecx + eax + 0xa0]
movups xmm1, xmmword [ecx + eax + 0xb0]
movsd qword [ecx + eax + 0xb8], xmm2
movsd xmm2, qword [edi + ebx + 0xb0]
movsd qword [ecx + eax + 0xb0], xmm2
movsd xmm2, qword [edi + ebx + 0xa0]
movsd xmm3, qword [edi + ebx + 0xa8]
movsd qword [ecx + eax + 0xa8], xmm3
movsd qword [ecx + eax + 0xa0], xmm2
movups xmmword [edi + ebx + 0xa0], xmm0
movups xmmword [edi + ebx + 0xb0], xmm1
movsd xmm2, qword [edi + ebx + 0xd8]
movups xmm0, xmmword [ecx + eax + 0xc0]
movups xmm1, xmmword [ecx + eax + 0xd0]
movsd qword [ecx + eax + 0xd8], xmm2
movsd xmm2, qword [edi + ebx + 0xd0]
movsd qword [ecx + eax + 0xd0], xmm2
movsd xmm2, qword [edi + ebx + 0xc0]
movsd xmm3, qword [edi + ebx + 0xc8]
movsd qword [ecx + eax + 0xc8], xmm3
movsd qword [ecx + eax + 0xc0], xmm2
movups xmmword [edi + ebx + 0xc0], xmm0
movups xmmword [edi + ebx + 0xd0], xmm1
movsd xmm2, qword [edi + ebx + 0xf8]
movups xmm0, xmmword [ecx + eax + 0xe0]
movups xmm1, xmmword [ecx + eax + 0xf0]
movsd qword [ecx + eax + 0xf8], xmm2
movsd xmm2, qword [edi + ebx + 0xf0]
movsd qword [ecx + eax + 0xf0], xmm2
movsd xmm2, qword [edi + ebx + 0xe0]
movsd xmm3, qword [edi + ebx + 0xe8]
movsd qword [ecx + eax + 0xe8], xmm3
movsd qword [ecx + eax + 0xe0], xmm2
movups xmmword [edi + ebx + 0xe0], xmm0
movups xmmword [edi + ebx + 0xf0], xmm1
movsd xmm0, qword [ecx + eax + 0x100]
movsd xmm1, qword [ecx + eax + 0x108]
movsd qword [esi + 0x50], xmm1
movsd qword [esi + 0x48], xmm0
movsd xmm0, qword [edi + ebx + 0x100]
movsd xmm1, qword [edi + ebx + 0x108]
movsd qword [ecx + eax + 0x108], xmm1
movsd qword [ecx + eax + 0x100], xmm0
movq xmm0, qword [esi + 0x48]
movq xmm1, qword [esi + 0x50]
movq qword [edi + ebx + 0x108], xmm1
movq qword [edi + ebx + 0x100], xmm0
mov ebx, dword [esi + 4]
mov dword [esi + 0x78], 1
jmp 0x100298f1
movdqa xmm0, xmmword [edx]
mov eax, edx
pmovmskb eax, xmm0
bsf ax, ax
movzx edi, ax
jmp 0x10029966
mov edi, dword [esi + 4]
shr ecx, 0x19
lea eax, [edi - 0x10]
and edx, eax
mov eax, dword [esi + 8]
mov byte [eax + edi], cl
mov byte [edx + eax + 0x10], cl
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
mov edi, dword [esi + 0x20]
cmp edi, ecx
jb 0x100298d8
jmp 0x10029d4d
mov edx, dword [esi + 4]
mov ebx, dword [esi + 0x10]
lea eax, [edx - 0x10]
mov ecx, dword [ebx + 4]
and eax, dword [ebx]
mov byte [ecx + edx], 0xff
mov byte [eax + ecx + 0x10], 0xff
imul eax, edi, 0x110
add eax, dword [ebx + 8]
push 0x110
push dword [esi + 0x1c]
push eax
call fcn.100f0640
mov edx, ebx
add esp, 0xc
jmp 0x10029d08
mov eax, dword [edx]
mov dword [esi + 0x78], 1
push eax
call fcn.100d2df0
add esp, 4
mov ecx, dword [esi + 0x10]
sub eax, dword [ecx + 0x10]
mov dword [ecx + 0xc], eax
mov ecx, dword [esi + 0x18]
mov dword [ecx], 0
jmp 0x10029f85
call fcn.100d2e10
xor ebx, ebx
xor edi, edi
mov dword [esi + 4], 8
mov ecx, dword [esi + 0x10]
mov dword [esi + 0x14], ebx
mov edx, dword [ecx + 0x10]
mov dword [esi + 0x30], ebx
mov ebx, dword [esi + 4]
mov dword [esi + 0x34], eax
sub edi, edx
mov dword [esi + 0x38], ebx
mov ebx, eax
mov dword [esi + 0x3c], edi
mov dword [esi + 0x40], edx
mov dword [esi + 8], ebx
mov edx, dword [ecx + 4]
mov edi, dword [ecx]
mov ecx, dword [ecx + 8]
movdqa xmm0, xmmword [edx]
lea eax, [edi + edx + 1]
add edx, 0x10
mov dword [esi + 4], ecx
mov dword [esi + 0x1c], eax
pmovmskb eax, xmm0
not eax
mov dword [esi + 0xc], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov dword [esi + 0x28], eax
cmp word [esi + 0xc], 0
mov eax, dword [esi + 0x1c]
je 0x10029df0
nop dword [eax]
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x24], edx
jmp 0x10029e1c
cmp edx, eax
jae 0x10029ee5
movdqa xmm0, xmmword [edx]
add dword [esi + 4], 0x1100
add edx, 0x10
pmovmskb ecx, xmm0
cmp cx, 0xffff
je 0x10029df0
not ecx
mov dword [esi + 0x24], edx
mov dword [esi + 0x78], 0
bsf ax, cx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x78], 0
movzx eax, ax
imul eax, eax, 0x110
add eax, dword [esi + 4]
mov dword [esi + 0x20], eax
push eax
push dword [esi + 0x28]
call fcn.10020f80
add esp, 8
mov edx, dword [esi + 0xc]
mov dword [esi + 0x2c], eax
mov edi, eax
mov eax, dword [esi + 0x14]
lea ecx, [edx - 1]
and ecx, edx
xor edx, edx
mov dword [esi + 0xc], ecx
nop word [eax + eax]
mov ecx, edi
mov edi, dword [esi + 8]
and ecx, eax
movdqu xmm0, xmmword [edi + ecx]
lea edi, [edx + ecx + 0x10]
add edx, 0x10
pmovmskb ebx, xmm0
test bx, bx
je 0x10029e60
bsf dx, bx
mov ebx, dword [esi + 8]
mov edi, eax
movzx edx, dx
add ecx, edx
and ecx, eax
cmp byte [ebx + ecx], 0
jns 0x10029ed4
mov eax, dword [esi + 0x2c]
lea edx, [ecx - 0x10]
and edx, edi
shr eax, 0x19
mov byte [ebx + ecx], al
mov byte [edx + ebx + 0x10], al
imul eax, ecx, 0x110
add eax, dword [esi + 0x38]
push 0x110
push dword [esi + 0x20]
push eax
call fcn.100f0640
add esp, 0xc
mov edx, dword [esi + 0x24]
cmp word [esi + 0xc], 0
mov eax, dword [esi + 0x1c]
jne 0x10029de0
jmp 0x10029df0
movdqa xmm0, xmmword [ebx]
pmovmskb ecx, xmm0
bsf cx, cx
movzx ecx, cx
jmp 0x10029e92
mov edx, dword [esi + 0x10]
mov eax, dword [edx + 0x10]
mov dword [esi + 0x58], eax
mov eax, dword [esi + 0x40]
movsd xmm0, qword [edx]
movsd xmm1, qword [edx + 8]
movsd qword [esi + 0x50], xmm1
movsd qword [esi + 0x48], xmm0
mov dword [edx + 0x10], eax
movsd xmm0, qword [esi + 0x30]
movsd xmm1, qword [esi + 0x38]
movsd qword [edx + 8], xmm1
movsd qword [edx], xmm0
mov eax, dword [esi + 0x58]
movsd xmm0, qword [esi + 0x48]
movsd xmm1, qword [esi + 0x50]
mov dword [esi + 0x40], eax
movsd qword [esi + 0x38], xmm1
movsd qword [esi + 0x30], xmm0
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x30]
mov dword [eax], 0
test ecx, ecx
je 0x10029f85
lea eax, [ecx + 1]
mov edx, 0x110
xor edi, edi
mul edx
jno 0x10029f54
jmp 0x10029f78
lea edx, [ecx + 0x11]
add ecx, 0x18
and ecx, 0xfffffff8
sub ecx, edx
add ecx, edx
jb 0x10029f78
lea edi, [ecx + eax]
xor edx, edx
cmp edi, 0xfffffff1
setb dl
xor edi, edi
shl edx, 4
add ecx, eax
cmovae edi, edx
push edi
push ecx
push dword [esi + 0x34]
call fcn.10017710
add esp, 0xc
mov eax, dword [esi + 0x70]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
add edi, ebx
jb 0x10029806
cmp edi, 0xfffffff0
ja 0x10029806
mov dword [esi + 0xc], ecx
push 0x10
push edi
call fcn.100176f0
add esp, 8
test eax, eax
je 0x10029fed
mov ecx, dword [esi + 0x14]
add ebx, eax
mov dword [esi + 4], ebx
dec ecx
mov ebx, ecx
push ecx
mov dword [esi + 8], eax
call fcn.100d2df0
add esp, 4
mov edi, eax
push dword [esi + 0xc]
push 0xff
push dword [esi + 8]
call fcn.100f20e0
mov eax, dword [esi + 8]
add esp, 0xc
jmp 0x10029d86
push 0x10
push edi
push 1
call fcn.100d2d80
add esp, 0xc
jmp 0x10029810