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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xe0
cmp dword [ecx], 0
mov dword [esp + 0x48], ecx
je 0x6206b2
cmp dword [ecx + 0x1c], 0
je 0x621865
mov esi, dword [ecx + 0x20]
lea edi, [esi + 0x90]
push edi
call dword [sym.imp.kernel32.dll_AcquireSRWLockExclusive]
mov eax, dword [0x94bfbc]
test eax, 0x7fffffff
jne 0x620982
movzx eax, byte [esi + 0x94]
cmp byte [esi + 0xac], 0
je 0x6207ce
mov eax, dword [0x94bfbc]
test eax, 0x7fffffff
jne 0x6216a6
push edi
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
jmp 0x6209b6
mov edi, dword [ecx + 0x1c]
mov esi, dword [ecx + 0x20]
call fcn.00724480
test eax, eax
je 0x620826
cmp dword [eax], 0
jne 0x62189c
mov dword [eax], 0xffffffff
mov edx, 1
mov ecx, 1
lock xadd dword [esi], edx
test edi, edi
jne 0x6206e8
xor ecx, ecx
test edx, edx
js 0x621847
mov edx, dword [eax + 4]
mov edi, dword [eax + 8]
mov dword [eax + 4], ecx
mov dword [eax + 8], esi
inc dword [eax]
mov ecx, dword [eax + 0xc]
cmp ecx, 0xffffffff
je 0x6218a6
inc ecx
mov dword [eax + 0xc], ecx
mov dword [esp + 0x54], edx
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x48]
mov edi, dword [ecx + 0x1c]
test edi, edi
jne 0x62083a
lea eax, [ecx + 4]
xor esi, esi
xchg dword [eax], esi
test esi, esi
je 0x6216bf
lea ebx, [ecx + 0x20]
mov edi, dword [ebx]
lock inc dword [edi]
jle 0x621847
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 4
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], eax
call fcn.00724480
test eax, eax
je 0x6207ad
cmp dword [eax], 0x7fffffff
jae 0x6218d2
cmp dword [eax + 4], 2
jne 0x620850
add edi, 8
mov ecx, esi
mov edx, edi
call fcn.0072ffe0
lea ecx, [esp + 0x6c]
mov dword [esp + 0x78], esi
mov dword [esp + 0x74], 0
jmp 0x62094c
mov byte [esi + 0xac], 1
mov eax, dword [0x94bfbc]
test eax, 0x7fffffff
jne 0x621789
push edi
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
mov edi, dword [esi + 0xdc]
test edi, edi
je 0x6209b6
mov ebx, dword [esi + 0xd8]
add esi, 0x18
shl edi, 3
add ebx, 4
nop dword [eax]
mov ecx, dword [ebx]
mov edx, esi
call fcn.0072a320
add ebx, 8
add edi, 0xfffffff8
jne 0x620810
jmp 0x6209b6
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x54], 3
test edi, edi
je 0x620729
lea ecx, [esp + 0x20]
mov edx, 0x93761c
mov dword [esp + 0x20], 0x9375a0
jmp 0x6217d4
movq xmm0, qword [esp + 0x6c]
movsd xmm1, qword [esp + 0x74]
mov eax, dword [esp + 0x8c]
movsd xmm3, qword [esp + 0x84]
movsd xmm2, qword [esp + 0x7c]
movq qword [esp + 0x20], xmm0
mov dword [esp + 0x40], eax
movsd qword [esp + 0x38], xmm3
movsd qword [esp + 0x30], xmm2
movsd qword [esp + 0x28], xmm1
cmp dword [esp + 0x20], 0
jne 0x6218e8
cmp dword [esp + 0x28], 0
jne 0x621930
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x2c], 0
test esi, esi
je 0x62193a
lea ecx, [esp + 0x20]
lea eax, [esp + 0x24]
mov dword [esp + 0x28], 0
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], ebx
mov dword [esp + 0xb0], esi
mov dword [esp + 0xb4], eax
call fcn.00724480
test eax, eax
je 0x62194e
mov edi, eax
mov eax, dword [eax + 0x28]
mov ecx, esi
mov dword [esp + 4], eax
lea eax, [esp + 0x20]
mov dword [edi + 0x28], eax
mov edx, dword [ebx]
add edx, 8
call fcn.0072ffe0
mov eax, dword [esp + 4]
mov dword [edi + 0x28], eax
cmp dword [esp + 0x28], 0
jne 0x621978
mov dword [esp + 0x28], 0xffffffff
cmp dword [esp + 0x2c], 0
je 0x62093e
lea ecx, [esp + 0x2c]
call fcn.00727270
mov eax, dword [esp + 0x28]
inc eax
jmp 0x620940
xor eax, eax
mov dword [esp + 0x2c], esi
mov dword [esp + 0x28], eax
lea ecx, [esp + 0x20]
call fcn.00730250
cmp dword [esp + 0x54], 3
je 0x6209b6
lea ecx, [esp + 0x54]
call fcn.007255b0
mov eax, dword [esp + 0x54]
cmp eax, 2
je 0x6209b6
test eax, eax
lea ecx, [esp + 0x58]
je 0x6209a8
mov eax, dword [esp + 0x58]
lock dec dword [eax]
jne 0x6209b6
call fcn.00722e30
jmp 0x6209b6
call fcn.007d1b30
movzx ecx, byte [esi + 0x94]
cmp byte [esi + 0xac], 0
je 0x6216f6
test al, al
jne 0x620696
jmp 0x6206a6
mov eax, dword [esp + 0x58]
lock dec dword [eax]
jne 0x6209b6
call fcn.00722da0
mov esi, dword [esp + 0x48]
cmp dword [esi], 0
jne 0x6209cd
xor ecx, ecx
xchg dword [esi + 4], ecx
test ecx, ecx
je 0x6209cd
call fcn.0061fac0
cmp dword [esi + 0x1c], 0
lea ecx, [esi + 0x20]
je 0x6209e4
mov eax, dword [ecx]
lock dec dword [eax]
jne 0x6209f0
call fcn.006200f0
jmp 0x6209f0
mov eax, dword [ecx]
lock dec dword [eax]
jne 0x6209f0
call fcn.004a8800
mov edi, dword [esi + 0x24]
lea eax, [esi + 0x24]
mov dword [esp + 0x10], eax
lea esi, [edi + 0x28]
push esi
call dword [sym.imp.kernel32.dll_AcquireSRWLockExclusive]
mov eax, dword [0x94bfbc]
test eax, 0x7fffffff
jne 0x620f34
movzx eax, byte [edi + 0x2c]
cmp byte [edi + 0x78], 0
je 0x620a3a
mov eax, dword [0x94bfbc]
test eax, 0x7fffffff
jne 0x620f66
push esi
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
jmp 0x62163e
xor ebx, ebx
mov byte [edi + 0x78], 1
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0x64]
test eax, eax
je 0x620a5c
lock dec dword [eax]
jne 0x620a5c
lea ecx, [edi + 0x64]
call fcn.00723410
mov ecx, dword [esp + 0x10]
mov dword [edi + 0x64], 0
mov eax, 0x90
add eax, dword [ecx]
push eax
call dword [sym.imp.kernel32.dll_WakeAllConditionVariable]
mov eax, dword [edi + 0x70]
mov dword [esp + 0x98], eax
movq xmm0, qword [edi + 0x68]
movq qword [esp + 0x90], xmm0
mov dword [edi + 0x68], 0
call fcn.00721e50
test eax, eax
je 0x62195a
movdqu xmm0, xmmword [eax]
movsd xmm3, qword [0x93a5a0]
movd edx, xmm0
pshufd xmm1, xmm0, 0x55
add edx, 1
movd ecx, xmm1
adc ecx, 0
mov dword [eax], edx
test bl, bl
mov dword [eax + 4], ecx
movsd xmm1, qword [edi + 0x58]
movsd qword [esp + 0xc0], xmm1
movsd xmm1, qword [edi + 0x50]
movsd qword [esp + 0xb8], xmm1
movsd xmm2, qword [edi + 0x48]
movsd xmm1, qword [edi + 0x40]
movsd qword [esp + 0xb0], xmm2
movsd xmm2, qword [0x93a5a8]
movsd qword [esp + 0xa8], xmm1
movsd qword [edi + 0x40], xmm3
movsd qword [edi + 0x48], xmm2
movdqu xmmword [edi + 0x50], xmm0
jne 0x620b24
mov eax, dword [0x94bfbc]
test eax, 0x7fffffff
jne 0x6217a2
push esi
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
call fcn.00724480
test eax, eax
je 0x620b3e
cmp byte [eax + 0x3a], 2
jne 0x62170a
call fcn.00726a30
test eax, eax
je 0x620c03
mov eax, dword [eax]
lock inc dword [eax]
mov ecx, dword [esp + 0x48]
jle 0x621847
lea esi, [ecx + 0x28]
lea ecx, [esp + 0x20]
lea edi, [esp + 0x6c]
add eax, 8
mov dword [esp + 0x20], 0x9369ac
mov dword [esp + 0x24], eax
mov dword [esp + 0x6c], ecx
call fcn.00724480
test eax, eax
jne 0x620bc0
nop word cs:[eax + eax]
nop dword [eax + eax]
mov ecx, esi
mov edx, edi
call fcn.0072b0c0
mov ebx, eax
cmp bl, 2
jne 0x620bf5
call fcn.00726a30
test eax, eax
je 0x621815
mov ecx, dword [eax]
add ecx, 8
call fcn.00726d00
call fcn.00724480
test eax, eax
je 0x620b90
movzx ecx, byte [eax + 0x39]
mov bh, byte [eax + 0x38]
mov edx, edi
mov word [eax + 0x38], 0x8001
mov byte [esp + 4], cl
mov ecx, esi
call fcn.0072b0c0
mov bl, al
call fcn.00724480
test eax, eax
je 0x620bf0
movzx ecx, byte [esp + 4]
mov byte [eax + 0x38], bh
mov byte [eax + 0x39], cl
cmp bl, 2
je 0x620ba0
mov eax, dword [esp + 0x20]
push dword [esp + 0x24]
call dword [eax + 0xc]
add esp, 4
mov eax, dword [esp + 0x90]
test eax, eax
je 0x620c5d
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x98]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ecx
lea ecx, [esp + 0x20]
mov dword [esp + 0x28], edx
call fcn.00725450
test eax, eax
je 0x620c5d
mov esi, eax
mov edi, edx
push eax
call dword [edx]
add esp, 4
cmp dword [edi + 4], 0
je 0x620c5d
cmp dword [edi + 8], 9
jb 0x620c4e
mov esi, dword [esi - 4]
push esi
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esp + 0xa8]
mov esi, dword [esp + 0xac]
mov ecx, dword [esp + 0xb4]
movdqa xmm0, xmmword [eax]
test esi, esi
je 0x620caf
lea edx, [esi + 1]
mov dword [esp + 4], 0
cmp edx, 0xfffffff
ja 0x620ca5
mov edi, edx
add esi, 0x11
shl edi, 4
add esi, edi
jb 0x620ca5
cmp esi, 0x7ffffff1
jb 0x621699
mov ebx, eax
sub ebx, edi
mov edi, dword [esp + 4]
jmp 0x620cb6
xor edi, edi
mov edx, 1
mov dword [esp + 0x6c], edi
mov dword [esp + 0x70], esi
add edx, eax
lea edi, [eax + 0x10]
pmovmskb esi, xmm0
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], eax
test ecx, ecx
mov dword [esp + 0x7c], edi
mov dword [esp + 0x80], edx
mov edx, esi
not edx
mov word [esp + 0x84], dx
mov dword [esp + 0x88], ecx
je 0x620f26
cmp si, 0xffff
jne 0x620d24
nop dword [eax + eax]
movdqa xmm0, xmmword [edi]
add eax, 0xffffff00
add edi, 0x10
pmovmskb esi, xmm0
cmp esi, 0xffff
je 0x620d00
mov edx, esi
mov dword [esp + 0x7c], edi
mov dword [esp + 0x78], eax
not edx
mov edi, 0xfffffffe
dec ecx
sub edi, esi
and edi, edx
tzcnt edx, edx
shl edx, 4
mov word [esp + 0x84], di
mov dword [esp + 0x88], ecx
sub eax, edx
mov edi, dword [eax - 0xc]
test edi, edi
je 0x620f26
inc ecx
mov edx, 0xffffffff
mov esi, 4
cmovne edx, ecx
cmp edx, 5
cmovae esi, edx
cmp esi, 0x7ffffff
ja 0x621897
mov dword [esp + 0x64], esi
shl esi, 4
js 0x621897
mov ecx, dword [eax - 4]
mov ebx, dword [eax - 0x10]
mov eax, dword [eax - 8]
mov edx, esi
mov dword [esp + 4], ecx
mov dword [esp + 0x14], eax
xor ecx, ecx
movzx eax, byte [0x94bfc5]
call fcn.0071ee80
test eax, eax
je 0x6218dc
mov ecx, dword [esp + 0x14]
mov dword [eax], ebx
mov dword [eax + 4], edi
mov esi, eax
mov dword [eax + 8], ecx
mov ecx, dword [esp + 4]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x64]
movsd xmm1, qword [esp + 0x7c]
movq xmm0, qword [esp + 0x84]
movsd xmm2, qword [esp + 0x6c]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], 1
movsd qword [esp + 0x30], xmm1
movsd xmm1, qword [esp + 0x74]
movq qword [esp + 0x38], xmm0
movsd qword [esp + 0x20], xmm2
movsd qword [esp + 0x28], xmm1
mov edi, dword [esp + 0x3c]
test edi, edi
je 0x620f56
mov dword [esp + 0x1c], esi
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x30]
movzx edx, word [esp + 0x38]
mov dword [esp + 0xc], 1
nop dword [eax + eax]
test dx, dx
je 0x620e50
lea eax, [edx - 1]
dec edi
and eax, edx
test ebx, ebx
jne 0x620e77
jmp 0x620f84
movdqa xmm0, xmmword [esi]
add ebx, 0xffffff00
add esi, 0x10
pmovmskb edx, xmm0
cmp edx, 0xffff
je 0x620e50
mov ecx, 0xfffffffe
dec edi
sub ecx, edx
not edx
mov eax, edx
and eax, ecx
tzcnt ecx, edx
mov dword [esp + 4], eax
mov eax, ebx
shl ecx, 4
sub eax, ecx
mov ecx, dword [eax - 0xc]
test ecx, ecx
mov dword [esp + 8], ecx
je 0x620f7c
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0xc]
mov ecx, dword [eax - 0x10]
mov edx, dword [eax - 4]
mov eax, dword [eax - 8]
cmp edi, dword [esp + 0x54]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], eax
je 0x620f00
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x44]
mov eax, edi
inc edi
shl eax, 4
mov dword [esp + 0xc], edi
mov dword [ecx + eax], edx
mov edx, dword [esp + 8]
mov dword [ecx + eax + 4], edx
mov edx, dword [esp + 0x4c]
mov dword [ecx + eax + 0xc], edx
mov edx, dword [esp + 0x50]
mov dword [ecx + eax + 8], edx
mov dword [esp + 0x5c], edi
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 4]
test edi, edi
mov edx, eax
jne 0x620e30
jmp 0x620f82
mov eax, dword [esp + 0x14]
mov ecx, 0xffffffff
mov edx, edi
inc eax
cmove eax, ecx
lea ecx, [esp + 0x54]
push eax
call fcn.007d2f00
add esp, 4
mov eax, dword [esp + 0x58]
mov dword [esp + 0x1c], eax
jmp 0x620eb8
lea ecx, [esp + 0x6c]
call fcn.0072b250
jmp 0x62163e
call fcn.007d1b30
mov ebx, eax
movzx eax, byte [edi + 0x2c]
cmp byte [edi + 0x78], 0
je 0x6216ee
test bl, bl
jne 0x620a1e
jmp 0x620a2e
lea ecx, [esp + 0x20]
call fcn.0072b250
mov ebx, 1
jmp 0x620fce
call fcn.007d1b30
test al, al
jne 0x620a2e
mov byte [edi + 0x2c], 1
jmp 0x620a2e
mov eax, dword [esp + 4]
jmp 0x620f84
xor edi, edi
mov ecx, dword [esp + 0x54]
mov word [esp + 0x38], ax
mov dword [esp + 0x3c], edi
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0x58]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x64], ecx
lea ecx, [esp + 0x20]
call fcn.0072b250
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x1c], esi
cmp ebx, 0x15
jae 0x620fe0
cmp ebx, 1
jbe 0x621536
mov ecx, esi
mov edx, ebx
push 1
call fcn.0072b340
add esp, 4
mov ecx, dword [esp + 0x10]
shl ebx, 4
mov dword [esp + 0x1c], esi
add ebx, esi
jmp 0x621547
movzx eax, byte [0x94bfc5]
lea edx, [ebx*8]
xor ecx, ecx
and edx, 0x7ffffff0
call fcn.0071ee80
test eax, eax
mov dword [esp + 8], eax
je 0x621982
movzx eax, byte [0x94bfc5]
xor ecx, ecx
mov edx, 0x80
call fcn.0071ee80
test eax, eax
je 0x62198c
mov edi, eax
lea eax, [esi + 0x20]
mov dword [esp + 0xa0], 0x10
mov dword [esp + 0xc], ebx
mov dword [esp + 0x9c], eax
lea eax, [esi - 0x10]
xor esi, esi
mov dword [esp + 0xa4], eax
xor eax, eax
jmp 0x621061
mov esi, 1
mov eax, dword [esp + 0x68]
cmp eax, ebx
jae 0x621513
mov ecx, dword [esp + 0x1c]
mov edx, ebx
mov dword [esp + 0x44], esi
mov esi, eax
mov dword [esp + 0x60], edi
mov dword [esp + 4], eax
shl esi, 4
sub edx, eax
cmp edx, 2
lea ecx, [ecx + esi]
jae 0x621410
mov eax, edx
mov edx, dword [esp + 4]
lea edi, [eax + edx]
mov esi, edi
sub esi, edx
jb 0x621833
cmp edi, ebx
ja 0x621833
mov dword [esp + 0x68], edi
mov edi, dword [esp + 0x60]
jae 0x6210d9
cmp eax, 0xa
jae 0x6210d9
lea esi, [edx + 0xa]
cmp esi, ebx
cmovae esi, ebx
mov dword [esp + 0x68], esi
sub esi, edx
jb 0x621849
cmp eax, 1
mov edx, esi
adc eax, 0
push eax
call fcn.0072b340
add esp, 4
mov edx, dword [esp + 4]
mov ecx, dword [esp + 0x44]
cmp ecx, dword [esp + 0xa0]
jne 0x621140
movzx eax, byte [0x94bfc5]
mov edx, ecx
xor ecx, ecx
shl edx, 4
call fcn.0071ee80
test eax, eax
je 0x62185b
mov ecx, dword [esp + 0x44]
mov edi, eax
lea eax, [ecx + ecx]
mov dword [esp + 0xa0], eax
lea eax, [ecx*8]
push eax
push dword [esp + 0x64]
push edi
call fcn.007bd9b0
add esp, 0xc
push dword [esp + 0x60]
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
mov edx, dword [esp + 4]
mov ecx, dword [esp + 0x44]
mov dword [edi + ecx*8], esi
mov dword [edi + ecx*8 + 4], edx
inc ecx
mov dword [esp + 0x60], edi
cmp ecx, 2
mov esi, ecx
jae 0x6211ce
jmp 0x621055
mov eax, dword [esp + 8]
mov esi, dword [esp + 0x44]
sub ebx, eax
lea ecx, [esi - 1]
mov dword [esp + 4], ecx
push ebx
push eax
push edi
call fcn.007bd9b0
add esp, 0xc
mov eax, dword [esp + 0xd4]
mov edi, dword [esp + 0x60]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0xd0]
add eax, dword [esp + 0xcc]
mov dword [edi + ecx*8 + 8], eax
mov eax, dword [esp + 0xd8]
mov dword [edi + ecx*8 + 0xc], eax
not ecx
lea eax, [edx + 8]
add ecx, esi
shl ecx, 3
push ecx
push eax
push edx
call fcn.007bd9b0
add esp, 0xc
mov esi, dword [esp + 4]
mov ebx, dword [esp + 0xc]
cmp esi, 1
jbe 0x621050
mov eax, dword [edi + esi*8 - 8]
mov ecx, dword [edi + esi*8 - 4]
add ecx, eax
cmp ecx, ebx
je 0x621230
mov edx, dword [edi + esi*8 - 0x10]
cmp edx, eax
jbe 0x621230
cmp esi, 2
jbe 0x6214e9
lea ecx, [esi - 3]
mov ebx, esi
mov dword [esp + 0x50], ecx
mov ecx, dword [edi + esi*8 - 0x18]
lea esi, [edx + eax]
cmp ecx, esi
jbe 0x6213fd
cmp ebx, 3
jbe 0x6214fc
add edx, ecx
mov esi, ebx
cmp dword [edi + ebx*8 - 0x20], edx
mov ebx, dword [esp + 0x50]
jbe 0x62123c
jmp 0x62150a
cmp esi, 3
jb 0x621240
mov ecx, dword [edi + esi*8 - 0x18]
lea ebx, [esi - 3]
cmp ecx, eax
jb 0x621243
lea ebx, [esi - 2]
cmp esi, ebx
jbe 0x6217b8
lea eax, [ebx + 1]
mov dword [esp + 0x44], esi
cmp esi, eax
jbe 0x6217c3
mov ecx, dword [edi + ebx*8 + 4]
mov eax, dword [edi + ebx*8 + 8]
mov esi, edi
mov edi, dword [edi + ebx*8 + 0xc]
add edi, eax
mov edx, edi
sub edx, ecx
mov dword [esp + 0x4c], edx
jb 0x6217f9
cmp edi, dword [esp + 0xc]
ja 0x621805
mov dword [esp + 0xd4], eax
lea eax, [esi + ebx*8]
mov esi, dword [esi + ebx*8]
mov dword [esp + 0xd8], ecx
shl ecx, 4
mov dword [esp + 0x50], ebx
shl edi, 4
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x4c]
add ecx, dword [esp + 0x1c]
mov dword [esp + 4], edi
mov ebx, esi
mov dword [esp + 0xcc], esi
shl ebx, 4
sub eax, esi
mov dword [esp + 0x14], ecx
cmp eax, esi
lea edi, [ecx + ebx]
jae 0x621370
mov ebx, eax
mov dword [esp + 0x4c], eax
shl ebx, 4
push ebx
push edi
push dword [esp + 0x10]
call fcn.007bd9b0
add esp, 0xc
add ebx, dword [esp + 8]
test esi, esi
jle 0x621160
cmp dword [esp + 0x4c], 0
jle 0x621160
mov ecx, dword [esp + 4]
add ecx, dword [esp + 0xa4]
nop dword [eax]
mov dword [esp + 4], ecx
mov ecx, dword [ebx - 0x10]
mov edx, dword [edi - 0x10]
mov esi, edi
mov edi, 0
mov eax, ebx
mov ebx, 0
cmp ecx, edx
sbb edi, edi
cmp ecx, edx
adc ebx, 0xffffffff
shl edi, 4
shl ebx, 4
add edi, esi
add ebx, eax
cmp ecx, edx
mov ecx, dword [esp + 4]
mov eax, ebx
cmovb eax, edi
cmp edi, dword [esp + 0x14]
movq xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
movsd qword [ecx + 8], xmm1
movq qword [ecx], xmm0
jbe 0x621160
add ecx, 0xfffffff0
cmp ebx, dword [esp + 8]
ja 0x621310
jmp 0x621160
push ebx
push ecx
push dword [esp + 0x10]
call fcn.007bd9b0
add esp, 0xc
add ebx, dword [esp + 8]
test esi, esi
jle 0x6213f0
cmp dword [esp + 0x4c], esi
jle 0x6213f0
mov ecx, dword [esp + 4]
mov eax, dword [esp + 8]
add ecx, dword [esp + 0x1c]
mov dword [esp + 4], ecx
nop dword [eax]
mov edx, dword [edi]
mov esi, eax
xor eax, eax
xor ecx, ecx
cmp edx, dword [esi]
mov edx, esi
cmovb edx, edi
setae al
movq xmm0, qword [edx]
movsd xmm1, qword [edx + 8]
setb dl
shl eax, 4
add eax, esi
mov esi, dword [esp + 0x14]
movsd qword [esi + 8], xmm1
movq qword [esi], xmm0
add esi, 0x10
cmp eax, ebx
mov dword [esp + 0x14], esi
jae 0x6213f4
mov cl, dl
mov edx, dword [esp + 4]
shl ecx, 4
add edi, ecx
cmp edi, edx
jb 0x6213a0
jmp 0x6213f4
mov eax, dword [esp + 8]
mov edi, dword [esp + 0x14]
jmp 0x621164
mov esi, ebx
mov ebx, dword [esp + 0x50]
cmp ecx, eax
jae 0x621240
jmp 0x621243
mov edi, dword [ecx + 0x10]
cmp edi, dword [ecx]
jae 0x6214b0
mov eax, 2
cmp edx, 2
je 0x621446
add esi, dword [esp + 0x9c]
nop dword [eax]
mov ebx, edi
mov edi, dword [esi]
cmp edi, ebx
jae 0x621442
inc eax
add esi, 0x10
cmp edx, eax
jne 0x621430
mov eax, edx
mov ebx, dword [esp + 0xc]
mov edx, dword [esp + 4]
mov edi, eax
add edi, edx
jb 0x62187b
cmp edi, ebx
ja 0x621889
cmp eax, 2
jb 0x62108f
mov esi, edi
mov edx, eax
mov ebx, edi
mov edi, ecx
shl esi, 4
shr edx, 1
add esi, dword [esp + 0xa4]
nop dword [eax]
movdqu xmm0, xmmword [edi]
movups xmm1, xmmword [esi]
movups xmmword [edi], xmm1
movdqu xmmword [esi], xmm0
add edi, 0x10
add esi, 0xfffffff0
dec edx
jne 0x621480
mov edi, ebx
mov ebx, dword [esp + 0xc]
mov edx, dword [esp + 4]
jmp 0x62108f
mov eax, 2
cmp edx, 2
je 0x621088
add esi, dword [esp + 0x9c]
nop word cs:[eax + eax]
nop
mov ebx, edi
mov edi, dword [esi]
cmp edi, ebx
jb 0x6214f3
inc eax
add esi, 0x10
cmp edx, eax
jne 0x6214d0
mov ebx, dword [esp + 0xc]
jmp 0x621086
mov esi, 2
jmp 0x621055
mov ebx, dword [esp + 0xc]
jmp 0x621088
mov ebx, dword [esp + 0xc]
mov esi, 3
jmp 0x621055
mov ebx, dword [esp + 0xc]
jmp 0x621055
push edi
push 0
push dword [0x94bf18]
mov esi, dword [sym.imp.kernel32.dll_HeapFree]
call esi
push dword [esp + 8]
push 0
push dword [0x94bf18]
call esi
mov esi, dword [esp + 0x1c]
mov eax, ebx
mov ecx, dword [esp + 0x10]
shl eax, 4
add eax, esi
test ebx, ebx
mov ebx, eax
je 0x6215c6
mov esi, dword [esp + 0x1c]
mov dword [esp + 4], ebx
jmp 0x621582
push ebx
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
mov ebx, dword [esp + 4]
mov ecx, dword [esp + 0x10]
add esi, 0x10
cmp esi, ebx
je 0x621624
mov eax, dword [esi + 4]
test eax, eax
je 0x6215c3
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xc]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ecx
lea ecx, [esp + 0x20]
mov dword [esp + 0x28], edx
call fcn.00725450
test eax, eax
je 0x62156f
mov ebx, eax
mov edi, edx
push eax
call dword [edx]
add esp, 4
cmp dword [edi + 4], 0
je 0x62156f
cmp dword [edi + 8], 9
jb 0x621560
mov ebx, dword [ebx - 4]
jmp 0x621560
add esi, 0x10
sub ebx, esi
je 0x621624
mov edi, dword [sym.imp.kernel32.dll_CloseHandle]
shr ebx, 4
add esi, 8
jmp 0x6215e6
add esi, 0x10
dec ebx
je 0x621620
push dword [esi + 4]
call edi
mov eax, dword [esi - 4]
lock dec dword [eax]
jne 0x621610
mov ecx, dword [esi - 4]
call fcn.004c23a0
mov eax, dword [esi]
lock dec dword [eax]
jne 0x6215e0
jmp 0x621617
mov eax, dword [esi]
lock dec dword [eax]
jne 0x6215e0
mov ecx, esi
call fcn.004a8f70
jmp 0x6215e0
mov ecx, dword [esp + 0x10]
cmp dword [esp + 0x64], 0
mov eax, dword [esp + 0x1c]
je 0x621642
push eax
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx]
lock dec dword [eax]
mov esi, dword [esp + 0x48]
jne 0x621652
call fcn.004a8c50
mov esi, dword [esi + 0x28]
test esi, esi
je 0x621691
mov eax, dword [esi + 0x18]
nop dword [eax]
mov ecx, eax
or ecx, 4
lock cmpxchg dword [esi + 0x18], ecx
jne 0x621660
and eax, 0xa
cmp eax, 8
jne 0x621680
mov eax, dword [esi + 8]
push dword [esi + 0xc]
call dword [eax + 8]
add esp, 4
lock dec dword [esi]
jne 0x621691
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
call fcn.004a9040
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 4], 0x10
jmp 0x620ca5
call fcn.007d1b30
test al, al
jne 0x6206a6
mov byte [esi + 0x94], 1
jmp 0x6206a6
mov eax, dword [0x94bfbc]
test eax, 0x7fffffff
je 0x6216d8
call fcn.007d1b30
test al, al
je 0x620951
lea ecx, [esp + 0x20]
mov edx, 0x936eac
mov dword [esp + 0x20], 0x936e20
jmp 0x6217d4
xor bl, 1
jmp 0x620a3c
test al, al
mov byte [esi + 0xac], 1
jne 0x6207d5
jmp 0x6207e5
mov eax, dword [0x94bfbc]
test eax, 0x7fffffff
je 0x6218bc
call fcn.007d1b30
test al, al
jne 0x6218bc
lea ecx, [esp + 0xa8]
call fcn.00723490
mov esi, dword [esp + 0x90]
mov ecx, dword [esp + 0x10]
test esi, esi
je 0x621642
push dword [esp + 0x98]
call dword [sym.imp.kernel32.dll_CloseHandle]
lock dec dword [esi]
jne 0x621764
mov ecx, dword [esp + 0x90]
call fcn.004c23a0
mov eax, dword [esp + 0x94]
lock dec dword [eax]
mov ecx, dword [esp + 0x10]
jne 0x621642
lea ecx, [esp + 0x94]
call fcn.004a8f70
jmp 0x62163e
call fcn.007d1b30
test al, al
jne 0x6207e5
mov byte [esi + 0x94], 1
jmp 0x6207e5
call fcn.007d1b30
test al, al
jne 0x620b24
mov byte [edi + 0x2c], 1
jmp 0x620b24
lea ecx, [esp + 0x20]
mov edx, 0x936018
jmp 0x6217cc
lea ecx, [esp + 0x20]
mov edx, 0x936028
mov dword [esp + 0x20], 0x935dd0
mov dword [esp + 0x24], 1
mov dword [esp + 0x30], 0
mov dword [esp + 0x28], 0x93d1f8
mov dword [esp + 0x2c], 0
call fcn.007c1b50
mov edx, edi
push 0x936038
call fcn.007c1e60
mov edx, dword [esp + 0xc]
mov ecx, edi
push 0x936038
call fcn.007c1c40
lea eax, [esp + 0x1b]
mov ecx, 0x93b384
mov edx, 0x2b
push 0x93699c
push 0x936104
push eax
call fcn.007c1f60
mov ecx, str.assertion_failed:_end___start__end___len
mov edx, 0x2c
push 0x9360a4
call fcn.007c1ca0
ud2
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x68]
push 0x9360b4
call fcn.007c1e60
mov ecx, 0x936068
call fcn.007c1fe0
lea ecx, [esp + 0x20]
mov edx, 0x937574
mov dword [esp + 0x20], 0x9374ec
jmp 0x6217d4
mov ecx, edx
mov edx, edi
push 0x936008
call fcn.007c1e60
mov ecx, edi
mov edx, ebx
push 0x936008
call fcn.007c1c40
call fcn.00418cb0
mov ecx, 0x936a78
call fcn.007c1ec0
lea ecx, [esp + 0x20]
mov edx, 0x936a68
mov dword [esp + 0x20], 0x936a60
jmp 0x6217d4
lea ecx, [esp + 0x20]
mov edx, 0x9385d8
mov dword [esp + 0x20], 0x9385d0
jmp 0x6217d4
mov ecx, 0x936a34
call fcn.007c1f10
mov ecx, 4
mov edx, esi
call fcn.007c1490
lea ecx, [esp + 0xa8]
mov edx, 0x936f98
mov dword [esp + 0xa8], 0x937650
mov dword [esp + 0xac], 1
mov dword [esp + 0xb8], 0
mov dword [esp + 0xb0], 0x93d1f8
mov dword [esp + 0xb4], 0
call fcn.007c1b50
mov ecx, 0x936fc8
call fcn.007c1ec0
mov ecx, str.core_missing_n
mov edx, 0xc
push 0x936fa8
call fcn.007c2000
lea ecx, [esp + 0xb0]
call fcn.00727270
lea eax, [esp + 0x1b]
mov ecx, 0x93c0b4
mov edx, 0x46
push 0x93c14c
push 0x936104
push eax
call fcn.007c1f60
mov ecx, 0x936fb8
call fcn.007c1ec0
mov ecx, 0x936048
call fcn.007c1fe0
mov ecx, 0x936058
call fcn.007c1fe0
int3