Function at 0x1002d710
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 + 0x14], ecx
mov ecx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
pxor xmm0, xmm0
mov eax, edx
lea edi, [esp + 0x90]
lea edx, [esp + 0x10]
movdqa xmmword [esp + 0xc0], xmm0
movdqa xmmword [esp + 0xb0], xmm0
movdqa xmmword [esp + 0xa0], xmm0
movdqa xmmword [esp + 0x90], xmm0
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0x18]
push edi
push 1
push 0x3e8528c
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push eax
call fcn.10064f10
add esp, 0x1c
xor ebx, ebx
lea esi, [0x3e85215]
lea edx, [0x3e85216]
mov eax, 0xfffffff9
mov dword [esp + 0x50], 0
nop word [eax + eax]
movzx ecx, byte [esi]
mov esi, edx
mov edx, ecx
add dl, 0xd0
cmp dl, 0xa
jb 0x1002d7c5
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1002e2aa
add cl, 0xa9
mov edx, ecx
mov ecx, ebx
movzx edi, dl
lea edx, [esi + 1]
shl ecx, 4
or edi, ecx
test eax, eax
cmove edx, esi
je 0x1002d7e6
shld dword [esp + 0x50], ebx, 4
inc eax
test esi, esi
mov ebx, edi
jne 0x1002d7a0
cmp dword [esp + 0x18], 0
je 0x1002d848
mov esi, dword [esp + 0x24]
movsd xmm0, qword [esp + 0x1c]
mov ebx, dword [esp + 0x28]
mov eax, dword [0x3e8b000]
xor edi, 0xf7
mov dword [esp + 0x30], esi
movaps xmmword [esp + 0x50], xmm0
mov dword [esp + 0x34], ebx
push 4
push 8
push 0x3e8a968
lea ecx, [esp + 0x9c]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x90], 0
je 0x1002d8c2
lea ecx, [esp + 0x30]
call fcn.10003710
xor eax, eax
jmp 0x1002d8ce
mov eax, dword [esp + 0x20]
or eax, dword [esp + 0x24]
je 0x1002e307
mov eax, dword [esp + 0x10]
mov dword [esp + 0x4c], 0
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x28]
lea esi, [esp + 0x4c]
lea ecx, [esp + 0x90]
mov edx, dword [eax]
push 1
push 4
push esi
push edi
mov dword [esp + 0xe4], ebx
push ebx
push dword [eax + 8]
push dword [eax + 4]
call fcn.10036470
add esp, 0x1c
mov eax, dword [esp + 0x90]
mov dword [esp + 0xd8], edi
test eax, eax
je 0x1002d8e7
movq xmm0, qword [esp + 0x94]
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0xc], eax
mov dword [esp + 0x48], ecx
jmp 0x1002d98a
mov eax, dword [esp + 0x94]
mov dword [eax], esi
mov dword [eax + 4], ebx
mov ecx, dword [esp + 0x14]
movdqa xmm0, xmmword [esp + 0x50]
movq qword [ecx], xmm0
mov dword [ecx + 8], edi
mov dword [ecx + 0xc], eax
jmp 0x1002e315
cmp dword [esp + 0x94], 4
jne 0x1002d906
mov dword [esp + 0xc], 0
mov dword [esp + 0x48], 0
jmp 0x1002d98a
xor ecx, ecx
lea edx, [0x3e8911d]
lea edi, [0x3e8911e]
mov eax, 0xfffffff9
xor esi, esi
nop dword [eax + eax]
movzx ebx, byte [edx]
mov edx, edi
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
jb 0x1002d945
or bl, 0x20
mov bh, bl
add bh, 0x9f
cmp bh, 6
jae 0x1002e2aa
add bl, 0xa9
mov bh, bl
mov edi, ecx
movzx ebx, bh
shl edi, 4
or ebx, edi
lea edi, [edx + 1]
test eax, eax
cmove edi, edx
je 0x1002d964
shld esi, ecx, 4
inc eax
test edx, edx
mov ecx, ebx
jne 0x1002d920
movdqa xmm0, xmmword [0x3e81420]
xor ebx, 0x91
mov dword [esp + 0x48], 0
mov dword [esp + 0xc], 0xc76970a8
movd xmm1, ebx
punpckldq xmm0, xmm1
xor ebx, ebx
lea eax, [0x3e85215]
lea edi, [0x3e85216]
mov ecx, 0xfffffff9
mov dword [esp + 0x50], 0
nop word cs:[eax + eax]
nop
movzx edx, byte [eax]
mov eax, edi
mov dh, dl
add dh, 0xd0
cmp dh, 0xa
jb 0x1002d9d5
or dl, 0x20
mov dh, dl
add dh, 0x9f
cmp dh, 6
jae 0x1002e2aa
add dl, 0xa9
mov dh, dl
mov edi, ebx
movzx esi, dh
shl edi, 4
or esi, edi
lea edi, [eax + 1]
test ecx, ecx
cmove edi, eax
je 0x1002d9f6
shld dword [esp + 0x50], ebx, 4
inc ecx
test eax, eax
mov ebx, esi
jne 0x1002d9b0
mov eax, dword [esp + 0xc]
lea edi, [esp + 0x18]
test eax, eax
je 0x1002daa4
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x90], eax
mov eax, dword [0x3e8b000]
movq qword [esp + 0x94], xmm0
pshufd xmm0, xmm0, 0x55
movd dword [esp + 0x30], xmm0
movdqa xmmword [esp + 0x50], xmm0
mov dword [esp + 0x34], ebx
push 4
push 8
push 0x3e8a968
push edi
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x18], 0
je 0x1002da80
lea ecx, [esp + 0x30]
call fcn.10003710
xor eax, eax
movq xmm0, qword [esp + 0x90]
movd ecx, xmm0
test ecx, ecx
je 0x1002daa4
mov ecx, dword [esp + 0x14]
xor esi, 0xfd
mov dword [ecx + 8], esi
mov dword [ecx + 0xc], eax
movq qword [ecx], xmm0
jmp 0x1002e315
movdqa xmm0, xmmword [esp + 0x50]
mov eax, dword [esp + 0x1c]
movd ecx, xmm0
mov dword [eax], ecx
mov dword [eax + 4], ebx
movq xmm0, qword [esp + 0x90]
movd ecx, xmm0
test ecx, ecx
jne 0x1002da67
mov edx, dword [esp + 0xd4]
mov ecx, dword [esp + 0xd8]
xor eax, eax
mov byte [esp + 0xa0], 2
movd xmm0, edx
movd xmm1, ecx
xor edx, 0xffffffe8
not ecx
or ecx, edx
punpckldq xmm0, xmm1
sete al
pshufd xmm1, xmm0, 0x44
movd xmm0, eax
paddq xmm1, xmmword [0x3e81430]
pshufd xmm0, xmm0, 0x44
psllq xmm0, 0x3f
psrad xmm0, 0x1f
pshufd xmm0, xmm0, 0xf5
movdqa xmm2, xmm0
pand xmm0, xmmword [0x3e81440]
pandn xmm2, xmm1
por xmm0, xmm2
pshufd xmm2, xmm0, 0xee
pshufd xmm1, xmm0, 0x55
movd eax, xmm0
movdqu xmmword [esp + 0x18], xmm0
mov byte [esp + 0x28], 0
movd ecx, xmm2
cmp ecx, eax
movd eax, xmm1
pshufd xmm1, xmm0, 0xff
movd ecx, xmm1
sbb ecx, eax
lea eax, [esp + 0x90]
cmovb edi, eax
mov eax, dword [edi + 0x11]
movsd xmm0, qword [edi]
movsd xmm1, qword [edi + 8]
mov ecx, dword [edi + 0x14]
mov dword [esp + 0x78], eax
mov dword [esp + 0x7b], ecx
movsd qword [esp + 0x80], xmm0
movsd qword [esp + 0x88], xmm1
jb 0x1002e31d
movq xmm0, qword [esp + 0x80]
movq xmm1, qword [esp + 0x88]
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x7b]
lea edx, [esp + 0x30]
movq qword [esp + 0x38], xmm1
movq qword [esp + 0x30], xmm0
mov byte [esp + 0x40], 0
mov dword [esp + 0x41], eax
mov dword [esp + 0x44], ecx
lea ecx, [esp + 0x60]
push dword [esp + 0x10]
push 4
lea eax, [esp + 0x54]
push eax
call fcn.1002ced0
add esp, 0xc
xor ecx, ecx
lea edx, [0x3e85215]
lea edi, [0x3e85216]
mov eax, 0xfffffff9
xor esi, esi
nop word cs:[eax + eax]
nop
movzx ebx, byte [edx]
mov edx, edi
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
jb 0x1002dc05
or bl, 0x20
mov bh, bl
add bh, 0x9f
cmp bh, 6
jae 0x1002e2aa
add bl, 0xa9
mov bh, bl
mov edi, ecx
movzx ebx, bh
shl edi, 4
or ebx, edi
lea edi, [edx + 1]
test eax, eax
cmove edi, edx
je 0x1002dc24
shld esi, ecx, 4
inc eax
test edx, edx
mov ecx, ebx
jne 0x1002dbe0
cmp dword [esp + 0x60], 0
je 0x1002dc86
xor ebx, 0x107
mov esi, dword [esp + 0x6c]
movsd xmm0, qword [esp + 0x64]
mov edi, dword [esp + 0x70]
mov eax, dword [0x3e8b000]
mov dword [esp + 0x18], esi
movaps xmmword [esp + 0x50], xmm0
mov dword [esp + 0x1c], edi
push 4
push 8
push 0x3e8a968
lea ecx, [esp + 0x9c]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x90], 0
je 0x1002dd9b
lea ecx, [esp + 0x18]
call fcn.10003710
xor eax, eax
jmp 0x1002dda7
mov eax, dword [esp + 0x68]
or eax, dword [esp + 0x6c]
je 0x1002e307
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x70]
mov esi, dword [esp + 0x74]
lea ecx, [esp + 0x18]
mov edx, dword [edi]
mov dword [esp + 0xc], eax
add eax, 0xfffffffa
mov dword [esp + 0x48], esi
adc esi, 0xffffffff
push esi
push eax
push dword [edi + 8]
push dword [edi + 4]
call fcn.10036c80
add esp, 0x10
xor ebx, ebx
lea esi, [0x3e85215]
lea edx, [0x3e85216]
mov eax, 0xfffffff9
mov dword [esp + 0x50], 0
nop
movzx ecx, byte [esi]
mov esi, edx
mov edx, ecx
add dl, 0xd0
cmp dl, 0xa
jb 0x1002dd05
or cl, 0x20
mov edx, ecx
add dl, 0x9f
cmp dl, 6
jae 0x1002e2aa
add cl, 0xa9
mov edx, ecx
mov ecx, ebx
movzx edi, dl
lea edx, [esi + 1]
shl ecx, 4
or edi, ecx
test eax, eax
cmove edx, esi
je 0x1002dd26
shld dword [esp + 0x50], ebx, 4
inc eax
test esi, esi
mov ebx, edi
jne 0x1002dce0
mov eax, dword [esp + 0x18]
test eax, eax
je 0x1002ddc0
movsd xmm0, qword [esp + 0x1c]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x90], eax
mov eax, dword [0x3e8b000]
xor edi, 0x10c
movsd qword [esp + 0x94], xmm0
shufps xmm0, xmm0, 0x55
movss dword [esp + 0x80], xmm0
movaps xmmword [esp + 0x50], xmm0
mov dword [esp + 0x84], esi
push 4
push 8
push 0x3e8a968
lea ecx, [esp + 0x6c]
push ecx
call dword [eax + 0xc]
add esp, 0x10
cmp byte [esp + 0x60], 0
je 0x1002ddc7
lea ecx, [esp + 0x80]
call fcn.10003710
xor ecx, ecx
jmp 0x1002ddda
mov eax, dword [esp + 0x94]
mov dword [eax], esi
mov dword [eax + 4], edi
mov ecx, dword [esp + 0x14]
movdqa xmm0, xmmword [esp + 0x50]
movq qword [ecx], xmm0
mov dword [ecx + 8], ebx
mov dword [ecx + 0xc], eax
jmp 0x1002e315
movzx eax, word [esp + 0x1c]
jmp 0x1002de26
movdqa xmm0, xmmword [esp + 0x50]
mov ecx, dword [esp + 0x64]
movd eax, xmm0
mov dword [ecx], eax
mov dword [ecx + 4], esi
movq xmm0, qword [esp + 0x90]
movd eax, xmm0
movq qword [esp + 0x30], xmm0
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], ecx
test eax, eax
je 0x1002de21
movzx ecx, word [esp + 0x34]
movzx edx, word [esp + 0x3e]
mov esi, dword [esp + 0x14]
movq xmm0, qword [esp + 0x36]
mov word [esi + 0xe], dx
movq qword [esi + 6], xmm0
mov dword [esi], eax
mov word [esi + 4], cx
jmp 0x1002e315
pextrw eax, xmm0, 2
movzx eax, ax
mov cl, 1
cmp eax, 0x8580
jle 0x1002de49
cmp eax, 0x8581
je 0x1002de59
cmp eax, 0xa5c1
je 0x1002de59
cmp eax, 0xb581
je 0x1002de59
jmp 0x1002de57
cmp eax, 0x65c1
je 0x1002de59
cmp eax, 0x856b
je 0x1002de59
xor ecx, ecx
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x50], ecx
mov byte [esp + 0xa0], 2
mov edx, eax
mov esi, ebx
mov ecx, ebx
xor edx, 0xfffffff0
add eax, 0xf
not esi
adc ecx, 0
xor edi, edi
or esi, edx
mov edx, 1
cmovne edx, dword [esp + 0xc]
cmove ecx, edi
cmove eax, edi
cmove ebx, edi
mov esi, ecx
mov dword [esp + 0x1c], ebx
cmp eax, edx
mov dword [esp + 0x18], edx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], eax
lea eax, [esp + 0x90]
lea ecx, [esp + 0x18]
mov byte [esp + 0x28], 0
sbb esi, ebx
cmovb ecx, eax
mov eax, dword [ecx + 0x11]
movsd xmm0, qword [ecx]
movsd xmm1, qword [ecx + 8]
mov ecx, dword [ecx + 0x14]
mov dword [esp + 0x78], eax
mov dword [esp + 0x7b], ecx
movsd qword [esp + 0x80], xmm0
movsd qword [esp + 0x88], xmm1
jb 0x1002e31d
movq xmm0, qword [esp + 0x80]
movq xmm1, qword [esp + 0x88]
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x7b]
lea edx, [esp + 0x41]
movq qword [esp + 0x38], xmm1
movq qword [esp + 0x30], xmm0
mov byte [esp + 0x40], 0
mov dword [edx + 3], ecx
mov dword [edx], eax
lea ecx, [esp + 0x60]
lea edx, [esp + 0x30]
push dword [esp + 0x10]
push 4
lea eax, [esp + 0x54]
push eax
call fcn.1002ced0
add esp, 0xc
lea ecx, [0x3e85215]
lea esi, [0x3e85216]
mov eax, 0xfffffff9
xor edx, edx
nop
movzx ebx, byte [ecx]
mov ecx, esi
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
jb 0x1002df75
or bl, 0x20
mov bh, bl
add bh, 0x9f
cmp bh, 6
jae 0x1002e2aa
add bl, 0xa9
mov bh, bl
mov esi, edx
movzx ebx, bh
shl esi, 4
or ebx, esi
lea esi, [ecx + 1]
test eax, eax
cmove esi, ecx
je 0x1002df94
shld edi, edx, 4
inc eax
test ecx, ecx
mov edx, ebx
jne 0x1002df50
cmp dword [esp + 0x60], 0
jne 0x1002dc2b
mov eax, dword [esp + 0x68]
or eax, dword [esp + 0x6c]
je 0x1002e307
mov edi, dword [esp + 0x70]
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x74]
lea ecx, [esp + 0x18]
mov eax, edi
mov edx, dword [esi]
mov dword [esp + 0xc], ebx
add eax, 0xfffffffa
adc ebx, 0xffffffff
push ebx
push eax
push dword [esi + 8]
push dword [esi + 4]
call fcn.10036c80
add esp, 0x10
mov ecx, 0x3e85214
mov edx, 0x10c
call fcn.10009b40
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x1002e03a
mov edx, dword [esp + 0x24]
movq xmm0, qword [esp + 0x1c]
mov dword [esp + 0x90], ecx
lea ecx, [esp + 0x30]
movq qword [esp + 0x94], xmm0
mov dword [esp + 0x9c], edx
lea edx, [esp + 0x90]
push eax
call fcn.100031f0
add esp, 4
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x1002ddf9
movzx eax, word [esp + 0x34]
jmp 0x1002e03f
movzx eax, word [esp + 0x1c]
mov ecx, dword [esp + 0x50]
movzx eax, ax
cmp eax, 0x8580
jle 0x1002e064
cmp eax, 0x8581
je 0x1002e072
cmp eax, 0xb581
je 0x1002e072
cmp eax, 0xa5c1
je 0x1002e072
jmp 0x1002e085
cmp eax, 0x65c1
je 0x1002e072
cmp eax, 0x856b
jne 0x1002e085
test cl, cl
mov cl, 1
je 0x1002e085
mov eax, dword [esp + 0x14]
mov byte [eax + 4], 1
jmp 0x1002e30f
mov ebx, dword [esp + 0xc]
mov eax, edi
mov dword [esp + 0x50], ecx
lea ecx, [esp + 0x30]
mov edx, edi
add eax, 0x10
mov esi, ebx
adc esi, 0
push esi
push eax
push ebx
call fcn.10058ba0
add esp, 0xc
lea ecx, [esp + 0x60]
lea edx, [esp + 0x30]
push dword [esp + 0x10]
push 4
lea eax, [esp + 0x54]
push eax
call fcn.1002ced0
add esp, 0xc
mov ecx, 0x3e85214
mov edx, 0x107
call fcn.10009b40
cmp dword [esp + 0x60], 0
je 0x1002e0e0
mov ebx, eax
jmp 0x1002dc31
mov eax, dword [esp + 0x68]
or eax, dword [esp + 0x6c]
je 0x1002e307
mov edi, dword [esp + 0x70]
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x74]
lea ecx, [esp + 0x18]
mov eax, edi
mov edx, dword [esi]
mov dword [esp + 0xc], ebx
add eax, 0xfffffffa
adc ebx, 0xffffffff
push ebx
push eax
push dword [esi + 8]
push dword [esi + 4]
call fcn.10036c80
add esp, 0x10
mov ecx, 0x3e85214
mov edx, 0x10c
call fcn.10009b40
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x1002e17b
mov edx, dword [esp + 0x24]
movq xmm0, qword [esp + 0x1c]
mov dword [esp + 0x90], ecx
lea ecx, [esp + 0x30]
movq qword [esp + 0x94], xmm0
mov dword [esp + 0x9c], edx
lea edx, [esp + 0x90]
push eax
call fcn.100031f0
add esp, 4
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x1002ddf9
movzx eax, word [esp + 0x34]
jmp 0x1002e180
movzx eax, word [esp + 0x1c]
mov ecx, dword [esp + 0x50]
movzx eax, ax
cmp eax, 0x8580
jle 0x1002e1a5
cmp eax, 0x8581
je 0x1002e1b3
cmp eax, 0xb581
je 0x1002e1b3
cmp eax, 0xa5c1
je 0x1002e1b3
jmp 0x1002e1bd
cmp eax, 0x65c1
je 0x1002e1b3
cmp eax, 0x856b
jne 0x1002e1bd
test cl, cl
mov cl, 1
jne 0x1002e078
mov ebx, dword [esp + 0xc]
mov eax, edi
mov dword [esp + 0x50], ecx
lea ecx, [esp + 0x30]
mov edx, edi
add eax, 0x10
mov esi, ebx
adc esi, 0
push esi
push eax
push ebx
call fcn.10058ba0
add esp, 0xc
lea ecx, [esp + 0x60]
lea edx, [esp + 0x30]
push dword [esp + 0x10]
push 4
lea eax, [esp + 0x54]
push eax
call fcn.1002ced0
add esp, 0xc
mov ecx, 0x3e85214
mov edx, 0x107
call fcn.10009b40
cmp dword [esp + 0x60], 0
jne 0x1002e0d9
mov eax, dword [esp + 0x68]
or eax, dword [esp + 0x6c]
je 0x1002e307
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x70]
mov eax, dword [esp + 0x74]
lea ecx, [esp + 0x18]
mov edx, dword [edi]
add esi, 0xfffffffa
adc eax, 0xffffffff
push eax
push esi
push dword [edi + 8]
push dword [edi + 4]
call fcn.10036c80
add esp, 0x10
mov ecx, 0x3e85214
mov edx, 0x10c
call fcn.10009b40
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x1002e2c3
mov edx, dword [esp + 0x24]
movq xmm0, qword [esp + 0x1c]
mov dword [esp + 0x90], ecx
lea ecx, [esp + 0x30]
movq qword [esp + 0x94], xmm0
mov dword [esp + 0x9c], edx
lea edx, [esp + 0x90]
push eax
call fcn.100031f0
add esp, 4
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x1002ddf9
movzx eax, word [esp + 0x34]
jmp 0x1002e2c8
mov ecx, 0x3e8a5f4
mov edx, 0xe
push 0x3e82e44
call fcn.10006dd0
add esp, 4
ud2
movzx eax, word [esp + 0x1c]
movzx eax, ax
cmp eax, 0x8580
jle 0x1002e2ed
mov ecx, dword [esp + 0x50]
cmp eax, 0x8581
je 0x1002e2ff
cmp eax, 0xb581
je 0x1002e2ff
cmp eax, 0xa5c1
je 0x1002e2ff
jmp 0x1002e307
mov ecx, dword [esp + 0x50]
cmp eax, 0x65c1
je 0x1002e2ff
cmp eax, 0x856b
jne 0x1002e307
test cl, cl
jne 0x1002e078
mov eax, dword [esp + 0x14]
mov byte [eax + 4], 0
mov dword [eax], 0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, 0x3e8ab8c
mov edx, 0x2b
push 0x3e88298
call fcn.10006dd0
add esp, 4
ud2