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

Disassembly:
push ebp
pxor xmm0, xmm0
push edi
push esi
push ebx
mov ebx, edx
sub esp, 0x6c
mov dword [esp + 0x54], eax
mov eax, dword [eax + 4]
mov ecx, dword [eax + 0x103]
movsd qword [eax + 0x28], xmm0
movsd qword [eax + 0x30], xmm0
and ecx, 0xaffffffd
movsd qword [eax + 0x38], xmm0
mov dword [eax + 0x103], ecx
mov edx, ecx
and ecx, 4
mov ecx, 0
cmove ebx, ecx
movzx ecx, byte [eax + 0x107]
and edx, 0x3b
movsd qword [eax + 0x40], xmm0
mov byte [eax + 0x103], dl
mov esi, ecx
and esi, 0xfffffff9
mov edx, esi
mov byte [eax + 0x107], dl
movzx edx, byte [eax + 0x108]
and edx, 1
mov edi, edx
mov edx, esi
test dl, dl
js 0x66716ee8
mov ecx, edi
test cl, cl
je 0x66716ec4
mov dword [esp + 0x5c], 8
and byte [eax + 0x108], 0xfe
test bl, bl
je 0x66716f0b
mov ecx, dword [eax + 0x78]
mov edx, dword [ecx + 8]
mov ebx, dword [ecx + 0xc]
sub ebx, edx
test ebx, ebx
jle 0x66716f0b
mov dword [esp + 0x48], 0
add edx, dword [esp + 0x48]
mov eax, dword [ecx + edx*4 + 0x10]
mov dword [esp + 0x4c], eax
mov eax, dword [eax + 4]
mov ecx, dword [eax + 0x103]
movsd qword [eax + 0x28], xmm0
movsd qword [eax + 0x30], xmm0
and ecx, 0xaffffffd
movsd qword [eax + 0x38], xmm0
mov dword [eax + 0x103], ecx
mov edx, ecx
mov ebx, ecx
movzx ecx, byte [eax + 0x107]
and edx, 0x3b
and ebx, 4
movsd qword [eax + 0x40], xmm0
mov esi, ecx
mov byte [eax + 0x103], dl
and esi, 0xfffffff9
mov edx, esi
mov byte [eax + 0x107], dl
movzx edx, byte [eax + 0x108]
and edx, 1
mov edi, edx
mov edx, esi
test dl, dl
js 0x66717290
mov ecx, edi
test cl, cl
jne 0x667172dd
test bl, bl
je 0x66716e91
mov ecx, dword [eax + 0x78]
mov dword [esp + 0x58], 0
mov edx, dword [ecx + 8]
mov eax, dword [ecx + 0xc]
sub eax, edx
test eax, eax
jle 0x66716e91
mov dword [esp + 0x3c], 0
add edx, dword [esp + 0x3c]
mov eax, dword [ecx + edx*4 + 0x10]
mov dword [esp + 0x40], eax
mov eax, dword [eax + 4]
mov ecx, dword [eax + 0x103]
movsd qword [eax + 0x28], xmm0
movsd qword [eax + 0x30], xmm0
and ecx, 0xaffffffd
movsd qword [eax + 0x38], xmm0
mov dword [eax + 0x103], ecx
mov edx, ecx
mov ebx, ecx
movzx ecx, byte [eax + 0x107]
and edx, 0x3b
and ebx, 4
movsd qword [eax + 0x40], xmm0
mov esi, ecx
mov byte [eax + 0x103], dl
and esi, 0xfffffff9
mov edx, esi
mov byte [eax + 0x107], dl
movzx edx, byte [eax + 0x108]
and edx, 1
mov edi, edx
mov edx, esi
test dl, dl
js 0x66717210
mov ecx, edi
test cl, cl
jne 0x66717258
test bl, bl
je 0x66716e62
mov ecx, dword [eax + 0x78]
mov dword [esp + 0x50], 0
mov edx, dword [ecx + 8]
mov eax, dword [ecx + 0xc]
sub eax, edx
test eax, eax
jle 0x66716e62
mov dword [esp + 0x30], 0
add edx, dword [esp + 0x30]
mov eax, dword [ecx + edx*4 + 0x10]
mov dword [esp + 0x38], eax
mov eax, dword [eax + 4]
mov ecx, dword [eax + 0x103]
movsd qword [eax + 0x28], xmm0
movsd qword [eax + 0x30], xmm0
and ecx, 0xaffffffd
movsd qword [eax + 0x38], xmm0
mov dword [eax + 0x103], ecx
mov edx, ecx
mov ebx, ecx
movzx ecx, byte [eax + 0x107]
and edx, 0x3b
and ebx, 4
movsd qword [eax + 0x40], xmm0
mov esi, ecx
mov byte [eax + 0x103], dl
and esi, 0xfffffff9
mov edx, esi
mov byte [eax + 0x107], dl
movzx edx, byte [eax + 0x108]
and edx, 1
mov edi, edx
mov edx, esi
test dl, dl
js 0x66717160
mov ecx, edi
test cl, cl
jne 0x667171a8
test bl, bl
je 0x66716e33
mov ecx, dword [eax + 0x78]
mov dword [esp + 0x44], 0
mov edx, dword [ecx + 8]
mov eax, dword [ecx + 0xc]
sub eax, edx
test eax, eax
jle 0x66716e33
mov dword [esp + 0x24], 0
add edx, dword [esp + 0x24]
mov eax, dword [ecx + edx*4 + 0x10]
mov dword [esp + 0x2c], eax
mov eax, dword [eax + 4]
mov ecx, dword [eax + 0x103]
movsd qword [eax + 0x28], xmm0
movsd qword [eax + 0x30], xmm0
and ecx, 0xaffffffd
movsd qword [eax + 0x38], xmm0
mov dword [eax + 0x103], ecx
mov edx, ecx
mov ebx, ecx
movzx ecx, byte [eax + 0x107]
and edx, 0x3b
and ebx, 4
movsd qword [eax + 0x40], xmm0
mov esi, ecx
mov byte [eax + 0x103], dl
and esi, 0xfffffff9
mov edx, esi
mov byte [eax + 0x107], dl
movzx edx, byte [eax + 0x108]
and edx, 1
mov edi, edx
mov edx, esi
test dl, dl
js 0x667170b0
mov ecx, edi
test cl, cl
jne 0x667170f8
test bl, bl
je 0x66716e04
mov ecx, dword [eax + 0x78]
mov dword [esp + 0x34], 0
mov edx, dword [ecx + 8]
mov eax, dword [ecx + 0xc]
sub eax, edx
test eax, eax
jle 0x66716e04
mov dword [esp + 0x18], 0
add edx, dword [esp + 0x18]
mov eax, dword [ecx + edx*4 + 0x10]
mov dword [esp + 0x20], eax
mov eax, dword [eax + 4]
mov ecx, dword [eax + 0x103]
movsd qword [eax + 0x28], xmm0
movsd qword [eax + 0x30], xmm0
and ecx, 0xaffffffd
movsd qword [eax + 0x38], xmm0
mov dword [eax + 0x103], ecx
mov edx, ecx
mov ebx, ecx
movzx ecx, byte [eax + 0x107]
and edx, 0x3b
and ebx, 4
movsd qword [eax + 0x40], xmm0
mov esi, ecx
mov byte [eax + 0x103], dl
and esi, 0xfffffff9
mov edx, esi
mov byte [eax + 0x107], dl
movzx edx, byte [eax + 0x108]
and edx, 1
mov edi, edx
mov edx, esi
test dl, dl
js 0x66717000
mov ecx, edi
test cl, cl
jne 0x66717048
test bl, bl
je 0x66716dd5
mov ecx, dword [eax + 0x78]
mov dword [esp + 0x28], 0
mov edx, dword [ecx + 8]
mov eax, dword [ecx + 0xc]
sub eax, edx
test eax, eax
jle 0x66716dd5
xor ebp, ebp
add edx, ebp
mov esi, dword [ecx + edx*4 + 0x10]
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0x103]
movsd qword [eax + 0x28], xmm0
movsd qword [eax + 0x30], xmm0
and ecx, 0xaffffffd
movsd qword [eax + 0x38], xmm0
mov dword [eax + 0x103], ecx
mov edx, ecx
mov ebx, ecx
movzx ecx, byte [eax + 0x107]
and edx, 0x3b
and ebx, 4
movsd qword [eax + 0x40], xmm0
mov edi, ecx
mov byte [eax + 0x103], dl
and edi, 0xfffffff9
mov edx, edi
mov byte [eax + 0x107], dl
movzx edx, byte [eax + 0x108]
and edx, 1
mov byte [esp + 0x1c], dl
mov edx, edi
test dl, dl
js 0x66716f60
cmp byte [esp + 0x1c], 0
jne 0x66716f98
test bl, bl
je 0x66716dac
mov ecx, dword [eax + 0x78]
mov dword [esp + 0x1c], 0
mov edx, dword [ecx + 8]
mov eax, dword [ecx + 0xc]
sub eax, edx
test eax, eax
jle 0x66716dac
xor ebx, ebx
add edx, ebx
add ebx, 1
mov eax, dword [ecx + edx*4 + 0x10]
mov edx, 1
call fcn.66716900
mov eax, dword [esi + 4]
pxor xmm0, xmm0
mov ecx, dword [eax + 0x78]
mov edx, dword [ecx + 8]
mov edi, dword [ecx + 0xc]
sub edi, edx
cmp edi, ebx
jg 0x66716d77
mov edx, dword [esp + 0x1c]
test edx, edx
jne 0x66716f38
mov eax, dword [esp + 0x20]
add ebp, 1
mov eax, dword [eax + 4]
mov ecx, dword [eax + 0x78]
mov edx, dword [ecx + 8]
mov ebx, dword [ecx + 0xc]
sub ebx, edx
cmp ebx, ebp
jg 0x66716ce4
mov ebp, dword [esp + 0x28]
test ebp, ebp
jne 0x66716fd0
mov eax, dword [esp + 0x2c]
add dword [esp + 0x18], 1
mov esi, dword [esp + 0x18]
mov eax, dword [eax + 4]
mov ecx, dword [eax + 0x78]
mov edx, dword [ecx + 8]
mov ebx, dword [ecx + 0xc]
sub ebx, edx
cmp ebx, esi
jg 0x66716c46
mov edi, dword [esp + 0x34]
test edi, edi
jne 0x66717088
mov eax, dword [esp + 0x38]
add dword [esp + 0x24], 1
mov esi, dword [esp + 0x24]
mov eax, dword [eax + 4]
mov ecx, dword [eax + 0x78]
mov edx, dword [ecx + 8]
mov ebx, dword [ecx + 0xc]
sub ebx, edx
cmp ebx, esi
jg 0x66716ba2
mov esi, dword [esp + 0x44]
test esi, esi
jne 0x6671712f
mov eax, dword [esp + 0x40]
add dword [esp + 0x30], 1
mov edi, dword [esp + 0x30]
mov eax, dword [eax + 4]
mov ecx, dword [eax + 0x78]
mov edx, dword [ecx + 8]
mov ebx, dword [ecx + 0xc]
sub ebx, edx
cmp ebx, edi
jg 0x66716afe
mov ebx, dword [esp + 0x50]
test ebx, ebx
jne 0x667171df
mov eax, dword [esp + 0x4c]
add dword [esp + 0x3c], 1
mov edi, dword [esp + 0x3c]
mov eax, dword [eax + 4]
mov ecx, dword [eax + 0x78]
mov edx, dword [ecx + 8]
mov ebx, dword [ecx + 0xc]
sub ebx, edx
cmp ebx, edi
jg 0x66716a5a
mov ecx, dword [esp + 0x58]
test ecx, ecx
jne 0x667172ab
mov eax, dword [esp + 0x54]
add dword [esp + 0x48], 1
mov esi, dword [esp + 0x48]
mov eax, dword [eax + 4]
mov ecx, dword [eax + 0x78]
mov edx, dword [ecx + 8]
mov ebx, dword [ecx + 0xc]
sub ebx, edx
cmp ebx, esi
jg 0x667169b6
mov edx, dword [esp + 0x5c]
test edx, edx
jne 0x66716f0b
add esp, 0x6c
pop ebx
pop esi
pop edi
pop ebp
ret
test bl, bl
je 0x66716ebc
mov ecx, dword [eax + 0x78]
mov dword [esp + 0x5c], 0
mov edx, dword [ecx + 8]
mov eax, dword [ecx + 0xc]
sub eax, edx
test eax, eax
jg 0x667169ae
jmp 0x66716ebc
and ecx, 0x79
mov byte [eax + 0x107], cl
mov ecx, edi
test cl, cl
jne 0x6671730f
test bl, bl
jne 0x6671733c
mov dword [esp + 0x5c], 4
mov ecx, dword [eax + 0x80]
test ecx, ecx
je 0x66716ebc
mov eax, dword [ecx]
mov edi, dword [esp + 0x5c]
mov eax, dword [eax + 0x38]
mov dword [esp], edi
call eax
sub esp, 4
add esp, 0x6c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x1c], 4
mov ecx, dword [eax + 0x80]
test ecx, ecx
je 0x66716dac
mov eax, dword [ecx]
mov edi, dword [esp + 0x1c]
mov eax, dword [eax + 0x38]
mov dword [esp], edi
call eax
pxor xmm0, xmm0
sub esp, 4
jmp 0x66716dac
and ecx, 0x79
mov byte [eax + 0x107], cl
cmp byte [esp + 0x1c], 0
jne 0x66717038
test bl, bl
je 0x66716f30
mov ecx, dword [eax + 0x78]
mov dword [esp + 0x1c], 4
mov edx, dword [ecx + 8]
mov ebx, dword [ecx + 0xc]
sub ebx, edx
test ebx, ebx
jg 0x66716d75
jmp 0x66716f38
mov dword [esp + 0x1c], 8
and byte [eax + 0x108], 0xfe
test bl, bl
je 0x66716f38
mov ecx, dword [eax + 0x78]
mov edx, dword [ecx + 8]
mov ebx, dword [ecx + 0xc]
sub ebx, edx
test ebx, ebx
jg 0x66716d75
jmp 0x66716f38
mov dword [esp + 0x28], 4
mov ecx, dword [eax + 0x80]
test ecx, ecx
je 0x66716dd5
mov eax, dword [ecx]
mov esi, dword [esp + 0x28]
mov eax, dword [eax + 0x38]
mov dword [esp], esi
call eax
pxor xmm0, xmm0
sub esp, 4
jmp 0x66716dd5
and ecx, 0x79
mov byte [eax + 0x107], cl
mov ecx, edi
test cl, cl
jne 0x667170e8
test bl, bl
je 0x66716fc8
mov ecx, dword [eax + 0x78]
mov dword [esp + 0x28], 4
mov edx, dword [ecx + 8]
mov ebx, dword [ecx + 0xc]
sub ebx, edx
test ebx, ebx
jg 0x66716ce2
jmp 0x66716fd0
mov dword [esp + 0x1c], 0xc
jmp 0x66716fa0
mov dword [esp + 0x28], 8
and byte [eax + 0x108], 0xfe
test bl, bl
je 0x66716fd0
mov ecx, dword [eax + 0x78]
mov edx, dword [ecx + 8]
mov ebx, dword [ecx + 0xc]
sub ebx, edx
test ebx, ebx
jg 0x66716ce2
jmp 0x66716fd0
mov dword [esp + 0x34], 4
mov ecx, dword [eax + 0x80]
test ecx, ecx
je 0x66716e04
mov eax, dword [ecx]
mov edi, dword [esp + 0x34]
mov eax, dword [eax + 0x38]
mov dword [esp], edi
call eax
pxor xmm0, xmm0
sub esp, 4
jmp 0x66716e04
and ecx, 0x79
mov byte [eax + 0x107], cl
mov ecx, edi
test cl, cl
jne 0x66717198
test bl, bl
je 0x66717080
mov ecx, dword [eax + 0x78]
mov dword [esp + 0x34], 4
mov edx, dword [ecx + 8]
mov ebx, dword [ecx + 0xc]
sub ebx, edx
test ebx, ebx
jg 0x66716c3e
jmp 0x66717088
mov dword [esp + 0x28], 0xc
jmp 0x66717050
mov dword [esp + 0x34], 8
and byte [eax + 0x108], 0xfe
test bl, bl
je 0x66717088
mov ecx, dword [eax + 0x78]
mov edx, dword [ecx + 8]
mov ebx, dword [ecx + 0xc]
sub ebx, edx
test ebx, ebx
jg 0x66716c3e
jmp 0x66717088
mov dword [esp + 0x44], 4
mov ecx, dword [eax + 0x80]
test ecx, ecx
je 0x66716e33
mov eax, dword [ecx]
mov edi, dword [esp + 0x44]
mov eax, dword [eax + 0x38]
mov dword [esp], edi
call eax
pxor xmm0, xmm0
sub esp, 4
jmp 0x66716e33
and ecx, 0x79
mov byte [eax + 0x107], cl
mov ecx, edi
test cl, cl
jne 0x66717248
test bl, bl
je 0x66717127
mov ecx, dword [eax + 0x78]
mov dword [esp + 0x44], 4
mov edx, dword [ecx + 8]
mov ebx, dword [ecx + 0xc]
sub ebx, edx
test ebx, ebx
jg 0x66716b9a
jmp 0x6671712f
mov dword [esp + 0x34], 0xc
jmp 0x66717100
mov dword [esp + 0x44], 8
and byte [eax + 0x108], 0xfe
test bl, bl
je 0x6671712f
mov ecx, dword [eax + 0x78]
mov edx, dword [ecx + 8]
mov ebx, dword [ecx + 0xc]
sub ebx, edx
test ebx, ebx
jg 0x66716b9a
jmp 0x6671712f
mov dword [esp + 0x50], 4
mov ecx, dword [eax + 0x80]
test ecx, ecx
je 0x66716e62
mov eax, dword [ecx]
mov edi, dword [esp + 0x50]
mov eax, dword [eax + 0x38]
mov dword [esp], edi
call eax
pxor xmm0, xmm0
sub esp, 4
jmp 0x66716e62
and ecx, 0x79
mov byte [eax + 0x107], cl
mov ecx, edi
test cl, cl
jne 0x667172d3
test bl, bl
je 0x667171d7
mov ecx, dword [eax + 0x78]
mov dword [esp + 0x50], 4
mov edx, dword [ecx + 8]
mov ebx, dword [ecx + 0xc]
sub ebx, edx
test ebx, ebx
jg 0x66716af6
jmp 0x667171df
mov dword [esp + 0x44], 0xc
jmp 0x667171b0
mov dword [esp + 0x50], 8
and byte [eax + 0x108], 0xfe
test bl, bl
je 0x667171df
mov ecx, dword [eax + 0x78]
mov edx, dword [ecx + 8]
mov ebx, dword [ecx + 0xc]
sub ebx, edx
test ebx, ebx
jg 0x66716af6
jmp 0x667171df
and ecx, 0x79
mov byte [eax + 0x107], cl
mov ecx, edi
test cl, cl
jne 0x66717305
test bl, bl
jne 0x6671731c
mov dword [esp + 0x58], 4
mov ecx, dword [eax + 0x80]
test ecx, ecx
je 0x66716e91
mov eax, dword [ecx]
mov edi, dword [esp + 0x58]
mov eax, dword [eax + 0x38]
mov dword [esp], edi
call eax
pxor xmm0, xmm0
sub esp, 4
jmp 0x66716e91
mov dword [esp + 0x50], 0xc
jmp 0x66717260
mov dword [esp + 0x58], 8
and byte [eax + 0x108], 0xfe
test bl, bl
je 0x667172ab
mov ecx, dword [eax + 0x78]
mov edx, dword [ecx + 8]
mov ebx, dword [ecx + 0xc]
sub ebx, edx
test ebx, ebx
jg 0x66716a52
jmp 0x667172ab
mov dword [esp + 0x58], 0xc
jmp 0x667172e5
mov dword [esp + 0x5c], 0xc
jmp 0x6671698c
mov ecx, dword [eax + 0x78]
mov dword [esp + 0x58], 4
mov edx, dword [ecx + 8]
mov ebx, dword [ecx + 0xc]
sub ebx, edx
test ebx, ebx
jg 0x66716a52
jmp 0x667172ab
mov ecx, dword [eax + 0x78]
mov dword [esp + 0x5c], 4
mov edx, dword [ecx + 8]
mov ebx, dword [ecx + 0xc]
sub ebx, edx
test ebx, ebx
jg 0x667169ae
jmp 0x66716f0b