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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x18
mov esi, ecx
mov eax, dword [esp + 0x2c]
mov cl, byte [esp + 0x34]
mov edi, dword [esp + 0x30]
mov ebx, 0x70
mov dword [esi + 8], edx
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], edi
mov byte [esi + 0x48], cl
mov ecx, 0x10
cmp dword [esi], 0
cmove ecx, ebx
mov ebx, dword [esi + 4]
cmp dword [ebx + ecx + 0x48], 0x3b9aca00
je 0x60799c
lea ebp, [ebx + ecx + 8]
mov ecx, edx
xor ebx, ebx
mov edx, eax
push 0xf423f
push ebx
push ebx
push edi
call fcn.005bcc70
add esp, 0x10
mov edi, edx
mov edx, dword [ebp + 0x3c]
mov ebx, ecx
mov ecx, dword [ebp + 0x38]
push ebx
push edi
push eax
push dword [ebp + 0x40]
call fcn.006060c0
add esp, 0x10
mov ebx, eax
lea eax, [esi + 0x18]
mov edi, 0xfffffffd
mov ecx, 0xfffffffd
mov ebp, edx
mov dword [esp + 8], eax
cmp ebx, edi
movq xmm0, qword [esi + 0x30]
cmovb ecx, ebx
cmp edx, 0xffffffff
cmovne edi, ebx
cmove edi, ecx
movd eax, xmm0
pshufd xmm0, xmm0, 0x55
movd edx, xmm0
cmp edi, eax
mov ecx, ebp
sbb ecx, edx
jb 0x6076ea
mov ecx, ebp
lock cmpxchg8b qword [esi + 0x30]
jne 0x6076d4
jmp 0x60796e
cmp byte [esp + 0x34], 0
je 0x60796e
mov ecx, dword [esi + 4]
cmp dword [esi], 0
mov edi, 0x18
lea eax, [ecx + 0x78]
lea edx, [ecx + 0x18]
mov dword [esp], eax
mov eax, 0x78
cmove edx, dword [esp]
cmove edi, eax
cmp dword [edx + 0x40], 0x3b9aca00
mov dword [esp], edx
je 0x60799c
mov dl, 1
xor eax, eax
mov dword [esp + 0x14], edi
lock cmpxchg byte [ecx + edi], dl
mov edi, ecx
jne 0x607976
movq xmm0, qword [esi + 0x30]
movd eax, xmm0
pshufd xmm0, xmm0, 0x55
movd ecx, xmm0
and ecx, eax
cmp ecx, 0xffffffff
je 0x607762
mov eax, dword [esp]
mov edx, dword [esp + 8]
lea ecx, [eax + 0x10]
call fcn.00607abd
mov eax, dword [esp]
mov al, byte [eax + 0x30]
test al, al
je 0x6077ac
movq xmm0, qword [esi + 0x30]
xor ebp, ebp
movd eax, xmm0
pshufd xmm0, xmm0, 0x55
movd ecx, xmm0
and ecx, eax
cmp ecx, 0xffffffff
je 0x607952
pcmpeqd xmm0, xmm0
mov byte [esi + 0x44], 1
movq qword [esi + 0x30], xmm0
mov eax, dword [esi + 0x40]
mov ecx, eax
or ecx, 2
lock cmpxchg dword [esi + 0x40], ecx
jne 0x60779b
jmp 0x607936
movd xmm0, ebx
movd xmm1, ebp
mov dword [esp + 4], edi
punpckldq xmm0, xmm1
movq qword [esi + 0x30], xmm0
movq qword [esi + 0x20], xmm0
movq xmm0, qword [esi + 0x30]
movd edi, xmm0
pshufd xmm0, xmm0, 0x55
movd ebx, xmm0
mov eax, edi
and eax, ebx
cmp eax, 0xffffffff
je 0x6079b2
movd xmm0, edi
movd xmm1, ebx
punpckldq xmm0, xmm1
movq qword [esi + 0x20], xmm0
mov eax, dword [esp]
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
cmp ecx, edi
mov edx, eax
sbb edx, ebx
jae 0x6078fb
xor ecx, edi
xor eax, ebx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edi
or ecx, 0x3f
mov edx, eax
cmp ecx, 0xfffffffe
sbb edx, 0xf
mov edx, 0xfffffffe
cmovb edx, ecx
mov ecx, 0xf
cmovb ecx, eax
bsr edx, edx
xor edx, 0x1f
bsr eax, ecx
or dl, 0x20
xor eax, 0x1f
test ecx, ecx
movzx ecx, dl
mov edx, dword [esp]
cmovne ecx, eax
xor cl, 0x3e
movzx eax, cl
mov edx, dword [edx + 0x28]
imul ecx, eax, 0x2b
shr ecx, 8
cmp edx, ecx
jbe 0x60798d
mov eax, dword [esp]
imul ecx, ecx, 0x210
mov edi, dword [eax + 0x20]
movq xmm0, qword [esi + 0x20]
mov esi, ecx
mov edx, dword [esp + 8]
mov ecx, dword [edi + ecx + 0x208]
movd eax, xmm0
pshufd xmm0, xmm0, 0x55
movd ebx, xmm0
add ecx, ecx
lea ecx, [ecx + ecx*2]
shrd eax, ebx, cl
shr ebx, cl
test cl, 0x20
lea ecx, [edi + esi]
cmove ebx, eax
mov eax, ebx
and eax, 0x3f
lea ecx, [ecx + eax*8]
call fcn.0060699a
xor eax, eax
xor edx, edx
mov ecx, ebx
xor ebp, ebp
inc eax
shld edx, eax, cl
shl eax, cl
mov ecx, esi
mov ecx, dword [esp]
test bl, 0x20
cmovne edx, eax
cmovne eax, ebp
or dword [edi + esi + 0x204], edx
or dword [edi + esi + 0x200], eax
mov eax, dword [ecx + 0xc]
mov ecx, dword [ecx + 8]
add ecx, 0xffffffff
adc eax, 0xffffffff
cmp ecx, dword [esp + 0x10]
sbb eax, dword [esp + 0xc]
jb 0x60794e
mov eax, dword [esp]
lea ecx, [eax + 0x48]
call fcn.00605410
jmp 0x60794e
movq xmm0, qword [esi + 0x30]
xor ebp, ebp
movd eax, xmm0
pshufd xmm0, xmm0, 0x55
movd ecx, xmm0
and ecx, eax
cmp ecx, 0xffffffff
je 0x60794e
pcmpeqd xmm0, xmm0
mov byte [esi + 0x44], 0
movq qword [esi + 0x30], xmm0
mov eax, dword [esi + 0x40]
mov edi, dword [esp + 4]
mov ecx, eax
or ecx, 2
lock cmpxchg dword [esi + 0x40], ecx
jne 0x60792a
test eax, eax
jne 0x607952
mov ebp, dword [esi + 0x38]
mov ebx, dword [esi + 0x3c]
mov dword [esi + 0x38], 0
lock and dword [esi + 0x40], 0xfffffffd
jmp 0x607952
mov edi, dword [esp + 4]
mov esi, dword [esp + 0x14]
xor ecx, ecx
mov al, 1
lock cmpxchg byte [edi + esi], cl
jne 0x607983
test ebp, ebp
je 0x60796e
push ebx
call dword [ebp + 4]
add esp, 0x1c
jmp 0x607971
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [esp]
call fcn.0065481c
jmp 0x60773a
mov ecx, dword [esp]
call fcn.006545f5
jmp 0x607961
push 0x7ca42c
call fcn.006521f0
add esp, 4
ud2
mov ecx, 0x7c9820
mov edx, 0x73
push 0x7ca320
call fcn.00652640
jmp 0x607997
mov ecx, 0x7ca2e4
mov edx, 0x13
push 0x7ca2f8
jmp 0x6079ab