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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xc0
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x40]
test eax, eax
mov dword [esp + 0x3c], eax
je 0x10005ba0
mov eax, dword [esi + 0x44]
mov dword [esi + 0x40], 0
mov edi, dword [esi + 0x30]
test edi, edi
je 0x10005c2b
mov edx, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x9c], eax
movss xmm0, dword [0x100d5340]
movdqa xmm3, xmmword [0x100d5350]
movsd xmm4, qword [0x100d5360]
movss xmm5, dword [0x100d5368]
movss xmm6, dword [0x100d536c]
movss xmm7, dword [0x100d5394]
mov ebx, dword [edx]
add edx, 4
mov esi, dword [ecx + 4]
mov dword [esp + 0x7c], edx
mov edx, dword [ecx]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x70], edx
xor edx, edx
div edi
mov dword [esp + 0x24], 0
mov dword [esp + 0x98], esi
mov dword [esp + 0x34], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x78], ebx
cmp esi, eax
cmovb eax, esi
mov dword [esp + 0x5c], eax
lea eax, [edi - 1]
mov dword [esp + 0xa0], eax
jmp 0x100053e8
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0xc]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x20]
cmp dword [esp + 0x34], 0
jne 0x10005418
mov eax, dword [esp + 0x24]
cmp eax, dword [esp + 0x5c]
jae 0x10005b6b
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x70]
lea eax, [esi + 1]
mov edx, dword [edx + esi*4]
imul esi, edi
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
mov eax, edx
test eax, eax
je 0x10005b6b
test ecx, ecx
je 0x10005be2
mov dword [esp + 0xc], ecx
add ecx, eax
movzx edx, byte [eax]
mov dword [esp + 0x18], edi
mov edi, 1
xor ebx, ebx
mov dword [esp + 0x74], esi
mov dword [esp + 0x68], 0
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x60], ecx
xor ecx, ecx
mov dword [esp + 0x14], ecx
inc ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x68]
mov dh, dl
nop dword [eax]
cmp byte [ebp + 0x14], 0
je 0x100054a0
test bl, 1
je 0x100054c0
cmp eax, dword [esp + 0x38]
mov ebx, dword [esp + 0x78]
mov esi, ecx
jne 0x100054d8
jmp 0x100053d0
test bl, 1
je 0x10005540
cmp eax, dword [esp + 0x38]
jne 0x10005552
jmp 0x100053d0
mov esi, dword [esp + 0x38]
mov ebx, dword [esp + 0x78]
sub esi, eax
cmp esi, edi
jbe 0x100053d0
add ecx, edi
add eax, edi
mov esi, ecx
mov dl, byte [eax]
movzx edi, dl
cmp ebx, edi
jbe 0x10005bd1
inc eax
shl edi, 4
mov ecx, dword [esp + 0x7c]
ucomiss xmm0, dword [ecx + edi]
jbe 0x10005526
nop word cs:[eax + eax]
nop dword [eax]
cmp eax, dword [esp + 0x38]
je 0x100053d0
mov dl, byte [eax]
movzx edi, dl
cmp ebx, edi
jbe 0x10005bd1
inc eax
shl edi, 4
inc esi
mov ecx, dword [esp + 0x7c]
ucomiss xmm0, dword [ecx + edi]
ja 0x10005500
lea ecx, [esi + 1]
cmp esi, dword [esp + 0xa0]
jne 0x10005561
jmp 0x1000556d
mov esi, dword [esp + 0x38]
sub esi, eax
cmp esi, edi
jbe 0x100053d0
add eax, edi
add ecx, edi
mov dl, byte [eax]
mov esi, ecx
inc eax
inc ecx
cmp esi, dword [esp + 0xa0]
je 0x1000556d
xor edi, edi
mov bl, 1
cmp dl, dh
je 0x10005480
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x14]
mov edi, esi
sub edi, ecx
add edi, edi
cmp esi, ecx
lea ecx, [edi + edi*4]
jbe 0x10005617
cmp dword [esp + 0x1c], 0
je 0x10005620
mov ebx, dword [esp + 0x14]
cmp ebx, dword [esp + 0xc]
jae 0x10005c0c
lea edi, [ecx + 0xf]
mov dword [esp + 0x40], edi
mov edi, ecx
mov ecx, dword [esp + 0x1c]
cmp byte [ecx + ebx], dh
cmove edi, dword [esp + 0x40]
mov dword [esp + 0x40], edi
cmp dword [esp + 0x64], 0
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
je 0x10005633
test ecx, ecx
mov dword [esp + 0x18], edi
je 0x1000567e
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x14]
cmp ecx, dword [esp + 0xc]
jae 0x10005c15
mov edi, dword [esp + 0x40]
lea ebx, [edi + 0xf]
mov dword [esp + 0x80], ebx
mov ebx, dword [esp + 0x28]
cmp byte [ebx + ecx], dh
cmove edi, dword [esp + 0x80]
mov dword [esp + 0x40], edi
mov edi, dword [esp + 0x10]
cmp edi, esi
jne 0x10005725
jmp 0x100056f4
mov dword [esp + 0x40], ecx
jmp 0x100056f4
mov dword [esp + 0x40], ecx
cmp dword [esp + 0x64], 0
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
jne 0x100055c7
mov ebx, dword [esp + 0x60]
cmp ebx, dword [esp + 0x5c]
jae 0x10005694
lea ecx, [ebx + 1]
mov dword [esp + 0x34], 1
mov dword [esp + 0x64], 1
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x70]
mov ecx, dword [ecx + ebx*4]
imul ebx, edi
add ebx, dword [esp + 0x3c]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x60], ebx
test ecx, ecx
mov dword [esp + 0x18], edi
jne 0x100055d3
mov dword [esp + 0x28], 0
mov edi, dword [esp + 0x10]
cmp edi, esi
jne 0x10005725
jmp 0x100056f4
cmp ebx, dword [esp + 0x98]
mov dword [esp + 0x64], 1
jae 0x100056d4
inc dword [esp + 0x5c]
inc ebx
mov dword [esp + 0x34], 1
mov dword [esp + 0x20], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x60], ebx
mov dword [esp + 0x24], ebx
mov edi, dword [esp + 0x10]
cmp edi, esi
jne 0x10005725
jmp 0x100056f4
mov dword [esp + 0x34], 1
mov dword [esp + 0x20], 0
mov dword [esp + 0x28], 0
mov edi, dword [esp + 0x10]
cmp edi, esi
jne 0x10005725
mov ecx, esi
xor edi, edi
mov bl, 1
sub ecx, dword [esp + 0x14]
mov dword [esp + 0x80], ecx
mov ecx, dword [esp + 0x68]
jb 0x10005477
jmp 0x1000578b
inc edi
cmp esi, edi
je 0x100056f4
cmp dword [esp + 0x1c], 0
je 0x10005757
cmp edi, dword [esp + 0xc]
jae 0x10005c0e
mov ebx, dword [esp + 0x40]
lea ecx, [ebx + 0xf]
mov dword [esp + 0x80], ecx
mov ecx, dword [esp + 0x1c]
cmp byte [ecx + edi], dh
cmove ebx, dword [esp + 0x80]
mov dword [esp + 0x40], ebx
cmp dword [esp + 0x28], 0
je 0x10005720
cmp edi, dword [esp + 0xc]
jae 0x10005c17
mov ecx, dword [esp + 0x40]
lea ebx, [ecx + 0xf]
mov dword [esp + 0x80], ebx
mov ebx, dword [esp + 0x28]
cmp byte [ebx + edi], dh
cmove ecx, dword [esp + 0x80]
mov dword [esp + 0x40], ecx
jmp 0x10005720
mov ecx, dword [esp + 0x40]
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
movaps xmm2, xmm5
add ecx, 0x14
cmp ebx, edi
movd xmm1, ecx
cmova edi, ebx
por xmm1, xmm3
mov ecx, edi
mov dword [esp + 0x6c], edi
mov edi, dword [esp + 0x80]
subsd xmm1, xmm4
sub ecx, ebx
cvtsd2ss xmm1, xmm1
divss xmm2, xmm1
cmp edi, ecx
cmovb ecx, edi
inc ecx
cmp ecx, 0x10
addss xmm2, xmm6
movaps xmmword [esp + 0x80], xmm2
jbe 0x10005ae0
mov edi, ecx
mov dword [esp + 0x10], ecx
mov ecx, 0x10
shufps xmm2, xmm2, 0
and edi, 0xf
movaps xmmword [esp + 0x40], xmm2
cmove edi, ecx
mov ecx, dword [esp + 0x74]
sub dword [esp + 0x10], edi
lea edi, [ecx + ebx]
mov ecx, dword [esp + 0x10]
add ebx, ecx
mov dword [esp + 0x14], ebx
mov ebx, edi
nop word cs:[eax + eax]
nop dword [eax + eax]
movdqu xmm2, xmmword [ebx]
xorps xmm1, xmm1
pxor xmm3, xmm3
xorps xmm6, xmm6
xorps xmm7, xmm7
movdqa xmm5, xmm2
punpckhbw xmm2, xmm1
punpcklbw xmm5, xmm1
movdqa xmm1, xmmword [0x100d5370]
paddw xmm2, xmm1
paddw xmm5, xmm1
movdqa xmm1, xmm2
punpckhwd xmm2, xmm3
punpcklwd xmm1, xmm3
movaps xmm3, xmmword [0x100d5380]
cvtdq2ps xmm2, xmm2
cvtdq2ps xmm1, xmm1
mulps xmm2, xmm3
mulps xmm1, xmm3
movaps xmm3, xmmword [esp + 0x40]
mulps xmm2, xmm3
mulps xmm1, xmm3
movss xmm3, dword [0x100d5390]
movaps xmm4, xmm2
shufps xmm4, xmm2, 0xff
maxss xmm6, xmm4
movaps xmm4, xmm3
minss xmm4, xmm6
cvttss2si edi, xmm4
movaps xmm4, xmm2
unpckhpd xmm4, xmm2
movd xmm6, edi
maxss xmm7, xmm4
movaps xmm4, xmm3
minss xmm4, xmm7
movaps xmm7, xmm3
cvttss2si edi, xmm4
movd xmm4, edi
punpcklbw xmm4, xmm6
pxor xmm6, xmm6
maxss xmm6, xmm2
shufps xmm2, xmm2, 0x55
minss xmm7, xmm6
xorps xmm6, xmm6
maxss xmm6, xmm2
movaps xmm2, xmm3
cvttss2si edi, xmm7
minss xmm2, xmm6
movd xmm7, edi
xorps xmm6, xmm6
cvttss2si edi, xmm2
movd xmm2, edi
punpcklbw xmm7, xmm2
movaps xmm2, xmm1
punpcklwd xmm7, xmm4
shufps xmm2, xmm1, 0xff
pxor xmm4, xmm4
maxss xmm4, xmm2
movaps xmm2, xmm3
minss xmm2, xmm4
movaps xmm4, xmm1
unpckhpd xmm4, xmm1
cvttss2si edi, xmm2
maxss xmm6, xmm4
movaps xmm4, xmm3
movd xmm2, edi
minss xmm4, xmm6
cvttss2si edi, xmm4
xorps xmm4, xmm4
movd xmm6, edi
punpcklbw xmm6, xmm2
pxor xmm2, xmm2
maxss xmm2, xmm1
shufps xmm1, xmm1, 0x55
minss xmm3, xmm2
movdqa xmm2, xmm5
punpckhwd xmm5, xmm4
punpcklwd xmm2, xmm4
cvtdq2ps xmm4, xmm5
movaps xmm5, xmmword [0x100d5380]
cvttss2si edi, xmm3
xorps xmm3, xmm3
cvtdq2ps xmm2, xmm2
maxss xmm3, xmm1
movd xmm1, edi
mulps xmm4, xmm5
mulps xmm2, xmm5
movaps xmm5, xmmword [esp + 0x40]
mulps xmm2, xmm5
mulps xmm4, xmm5
movss xmm5, dword [0x100d5390]
minss xmm5, xmm3
cvttss2si edi, xmm5
xorps xmm5, xmm5
movd xmm3, edi
punpcklbw xmm1, xmm3
movaps xmm3, xmm4
shufps xmm3, xmm4, 0xff
punpcklwd xmm1, xmm6
pxor xmm6, xmm6
maxss xmm5, xmm3
movss xmm3, dword [0x100d5390]
punpckldq xmm1, xmm7
movss xmm7, dword [0x100d5390]
minss xmm3, xmm5
movaps xmm5, xmm4
unpckhpd xmm5, xmm4
cvttss2si edi, xmm3
maxss xmm6, xmm5
movaps xmm5, xmm7
movd xmm3, edi
minss xmm5, xmm6
cvttss2si edi, xmm5
movaps xmm5, xmm7
movd xmm6, edi
punpcklbw xmm6, xmm3
pxor xmm3, xmm3
maxss xmm3, xmm4
shufps xmm4, xmm4, 0x55
minss xmm5, xmm3
xorps xmm3, xmm3
maxss xmm3, xmm4
movaps xmm4, xmm7
cvttss2si edi, xmm5
minss xmm4, xmm3
movd xmm5, edi
cvttss2si edi, xmm4
xorps xmm4, xmm4
movd xmm3, edi
punpcklbw xmm5, xmm3
movaps xmm3, xmm2
shufps xmm3, xmm2, 0xff
punpcklwd xmm5, xmm6
pxor xmm6, xmm6
maxss xmm4, xmm3
movaps xmm3, xmm7
minss xmm3, xmm4
movaps xmm4, xmm2
unpckhpd xmm4, xmm2
cvttss2si edi, xmm3
maxss xmm6, xmm4
movaps xmm4, xmm7
movd xmm3, edi
minss xmm4, xmm6
movaps xmm6, xmm7
cvttss2si edi, xmm4
movd xmm4, edi
punpcklbw xmm4, xmm3
pxor xmm3, xmm3
maxss xmm3, xmm2
shufps xmm2, xmm2, 0x55
minss xmm6, xmm3
xorps xmm3, xmm3
maxss xmm3, xmm2
movaps xmm2, xmm7
cvttss2si edi, xmm6
minss xmm2, xmm3
movd xmm3, edi
cvttss2si edi, xmm2
movd xmm2, edi
punpcklbw xmm3, xmm2
punpcklwd xmm3, xmm4
punpckldq xmm3, xmm5
punpcklqdq xmm3, xmm1
movdqu xmmword [ebx], xmm3
add ebx, 0x10
add ecx, 0xfffffff0
jne 0x10005820
movdqa xmm3, xmmword [0x100d5350]
movsd xmm4, qword [0x100d5360]
movss xmm5, dword [0x100d5368]
movss xmm6, dword [0x100d536c]
movss xmm7, dword [0x100d5394]
movaps xmm2, xmmword [esp + 0x80]
lea ecx, [esi + 1]
mov edi, dword [esp + 0x14]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x6c]
sub esi, edi
sub ecx, edi
inc esi
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x74]
add ecx, edi
mov dword [esp + 0x40], ecx
nop word cs:[eax + eax]
nop dword [eax]
sub dword [esp + 0x10], 1
jb 0x10005bf5
mov ecx, dword [esp + 0x40]
movzx edi, byte [ecx]
sub edi, 0xffffff80
xorps xmm1, xmm1
cvtsi2ss xmm1, edi
xor edi, edi
mulss xmm1, xmm7
mulss xmm1, xmm2
xorps xmm2, xmm2
maxss xmm2, xmm1
movss xmm1, dword [0x100d5390]
minss xmm1, xmm2
movdqa xmm2, xmmword [esp + 0x80]
cvttss2si ebx, xmm1
mov byte [ecx], bl
inc ecx
dec esi
mov bl, 1
mov dword [esp + 0x40], ecx
jne 0x10005b10
mov ecx, dword [esp + 0x14]
jmp 0x1000546a
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x48]
test eax, eax
je 0x10005b88
mov ecx, dword [esi + 0x4c]
test ecx, ecx
je 0x10005b88
push 1
push ecx
push eax
call fcn.10004680
add esp, 0xc
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x9c]
mov dword [esi + 0x48], eax
mov dword [esi + 0x4c], ecx
mov eax, 0x6b
jmp 0x10005bc9
push esi
call fcn.10005e00
add esp, 4
cmp eax, 0x6b
jne 0x10005bc9
mov ecx, dword [esi + 0x40]
mov eax, dword [esi + 0x44]
mov dword [esi + 0x40], 0
test ecx, ecx
mov dword [esp + 0x3c], ecx
jne 0x1000532b
jmp 0x10005b99
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x100d5510
push ebx
push edi
call fcn.100b0f30
add esp, 0xc
ud2
push 0x100d5500
push 0
push 0
call fcn.100b0f30
add esp, 0xc
ud2
push 0x100d5520
push dword [esp + 0x1c]
push dword [esp + 0x74]
call fcn.100b0f30
add esp, 0xc
ud2
mov edi, ebx
push 0x100d5530
jmp 0x10005c1c
mov edi, ecx
push 0x100d5540
push dword [esp + 0x10]
push edi
call fcn.100b0f30
add esp, 0xc
ud2
mov dword [esp + 0xa4], 0x100d5454
mov dword [esp + 0xa8], 1
mov dword [esp + 0xb4], 0
mov dword [esp + 0xac], 0x100d5438
mov dword [esp + 0xb0], 0
lea eax, [esp + 0xa4]
push 0x100d54f0
push eax
call fcn.100b0d70
add esp, 8
ud2