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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x180
mov eax, edx
mov edi, ecx
mov ecx, dword [ebp + 8]
cmp byte [ecx + 8], 2
mov dword [esp + 0x14], edx
mov dword [esp + 8], edi
jne 0x44ef4c
cmp dword [edi + 0x3c], 0
je 0x44ef4c
mov ecx, dword [edi + 0x40]
mov edx, dword [edi + 0x44]
push eax
push dword [edi + 0x4c]
push dword [edi + 0x48]
call fcn.0044e037
add esp, 0xc
mov ecx, dword [edi + 0x30]
mov esi, dword [edi + 0x34]
mov dword [esp + 4], esi
and esi, eax
shr eax, 0x19
movd xmm1, eax
pxor xmm0, xmm0
pshufb xmm1, xmm0
movdqa xmmword [esp + 0x130], xmm1
mov dword [esp + 0x10], ecx
lea eax, [ecx - 0x24]
mov dword [esp], eax
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0x10]
movdqu xmm0, xmmword [eax + esi]
movdqa xmmword [esp + 0x20], xmm0
pcmpeqb xmm0, xmmword [esp + 0x130]
pmovmskb ebx, xmm0
test ebx, ebx
je 0x44ef15
bsf eax, ebx
add eax, esi
and eax, dword [esp + 4]
neg eax
lea eax, [eax + eax*8]
mov ecx, dword [esp]
lea edi, [ecx + eax*4]
mov ecx, dword [esp + 0x14]
mov edx, edi
call fcn.00420bd1
test al, al
je 0x44ef09
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 0x10]
push dword [edi + 0x10]
push dword [edi + 0xc]
call fcn.00421f24
add esp, 8
test al, al
jne 0x44f1cb
lea eax, [ebx - 1]
and eax, ebx
mov ebx, eax
test ax, ax
jne 0x44eec6
pcmpeqd xmm0, xmm0
movdqa xmm1, xmmword [esp + 0x20]
pcmpeqb xmm1, xmm0
pmovmskb eax, xmm1
test eax, eax
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 8]
jne 0x44ef4c
mov eax, dword [esp + 0xc]
add esi, eax
add esi, 0x10
add eax, 0x10
mov dword [esp + 0xc], eax
and esi, dword [esp + 4]
jmp 0x44eea6
mov ecx, dword [ebp + 8]
movdqu xmm0, xmmword [ecx]
movdqu xmm1, xmmword [ecx + 0xc]
movdqu xmmword [esp + 0x3c], xmm1
movdqa xmmword [esp + 0x30], xmm0
lea ecx, [edi + 0x50]
mov dword [esp + 4], ecx
mov edx, eax
call fcn.00468245
test eax, eax
je 0x44f1f6
mov edi, eax
xor ebx, ebx
mov eax, dword [edi + 0xc]
test eax, eax
je 0x44f1d9
mov ecx, dword [edi + 8]
lea edx, [ecx + 1]
mov esi, dword [edi]
cmp edx, esi
mov edx, dword [edi + 4]
cmovb esi, ebx
neg esi
add esi, ecx
inc esi
mov dword [edi + 8], esi
dec eax
mov dword [edi + 0xc], eax
mov esi, dword [edx + ecx*4]
mov al, byte [esi + 0x40]
test al, al
je 0x44efc5
lea ecx, [esi + 8]
call fcn.0046fff7
lock dec dword [esi]
jne 0x44ef7e
mov ecx, esi
call fcn.0047004f
jmp 0x44ef7e
mov al, byte [esp + 0x49]
movzx ecx, word [esp + 0x4a]
mov byte [esp + 0x49], 2
cmp al, 2
je 0x44f874
movups xmm0, xmmword [esp + 0x39]
movups xmmword [esp + 0x149], xmm0
movaps xmm0, xmmword [esp + 0x30]
movaps xmmword [esp + 0x140], xmm0
mov byte [esp + 0x159], al
mov word [esp + 0x15a], cx
lea ecx, [esp + 0x50]
lea edx, [esp + 0x140]
call fcn.004866f2
cmp byte [esp + 0x85], 2
lea eax, [esp + 0x50]
je 0x44f03c
movups xmm0, xmmword [esp + 0x50]
movdqu xmm1, xmmword [esp + 0x5c]
movdqu xmmword [esp + 0x3c], xmm1
movaps xmmword [esp + 0x30], xmm0
lea eax, [esp + 0x6c]
movups xmm0, xmmword [eax]
movdqu xmm1, xmmword [eax + 9]
movdqu xmmword [esp + 0xd9], xmm1
movaps xmmword [esp + 0xd0], xmm0
mov cl, byte [eax + 0x19]
movzx edx, word [eax + 0x1a]
mov dword [esp + 0xa0], esi
mov al, byte [esi + 0x40]
test al, al
mov byte [esp], cl
jne 0x44f07a
mov al, 1
xchg byte [esi + 0x24], al
test al, al
je 0x44f102
movups xmm0, xmmword [esp + 0xd9]
movups xmmword [esp + 0xf9], xmm0
movdqa xmm0, xmmword [esp + 0xd0]
movdqa xmmword [esp + 0xf0], xmm0
mov esi, edx
lea ecx, [esp + 0xa0]
call fcn.0046ffd8
mov al, byte [esp + 0x49]
mov cl, byte [esp]
cmp cl, 2
mov word [esp + 0x20], si
jne 0x44f0c8
cmp al, 2
jne 0x44ef7e
jmp 0x44f1d3
cmp al, 2
je 0x44f0d8
lea ecx, [esp + 0x30]
call fcn.004456dd
mov cl, byte [esp]
movups xmm0, xmmword [esp + 0xf9]
movups xmmword [esp + 0x39], xmm0
movdqa xmm0, xmmword [esp + 0xf0]
movdqa xmmword [esp + 0x30], xmm0
mov byte [esp + 0x49], cl
mov word [esp + 0x4a], si
jmp 0x44ef7e
mov word [esp + 0xc], dx
cmp byte [esi + 0x21], 2
jne 0x44f888
lea ecx, [esi + 8]
mov dword [esp + 0x10], ecx
call fcn.0046cc0e
mov ecx, dword [esp + 0x10]
movups xmm0, xmmword [esp + 0xd9]
movups xmmword [ecx + 9], xmm0
movdqa xmm0, xmmword [esp + 0xd0]
movdqu xmmword [ecx], xmm0
mov al, byte [esp]
mov byte [esi + 0x21], al
movzx eax, word [esp + 0xc]
mov word [esi + 0x22], ax
xor eax, eax
xchg byte [esi + 0x24], al
mov al, byte [esi + 0x40]
test al, al
je 0x44f18d
mov al, 1
xchg byte [esi + 0x24], al
test al, al
jne 0x44f18d
movdqu xmm0, xmmword [ecx]
movdqu xmm1, xmmword [ecx + 0xc]
movdqu xmmword [esp + 0x5c], xmm1
movdqa xmmword [esp + 0x50], xmm0
mov byte [esi + 0x21], 2
mov al, byte [esp + 0x69]
cmp al, 2
jne 0x44f19b
lea ecx, [esp + 0x50]
call fcn.0046cc0e
xor eax, eax
xchg byte [esi + 0x24], al
mov byte [esp], 2
movzx esi, word [esp + 0x20]
jmp 0x44f09e
mov byte [esp], al
movups xmm0, xmmword [esp + 0x59]
movups xmmword [esp + 0xf9], xmm0
movdqa xmm0, xmmword [esp + 0x50]
movdqa xmmword [esp + 0xf0], xmm0
movzx ecx, word [esp + 0x6a]
xor eax, eax
xchg byte [esi + 0x24], al
mov esi, ecx
jmp 0x44f09e
mov ecx, dword [ebp + 8]
jmp 0x44f51e
cmp dword [edi + 0xc], 0
jne 0x44f1f6
lea esi, [esp + 0x50]
mov ecx, esi
mov edx, dword [esp + 4]
push dword [esp + 0x14]
call fcn.00468051
add esp, 4
mov ecx, esi
call fcn.0044dd59
cmp byte [esp + 0x49], 2
je 0x44f523
mov ebx, dword [esp + 0x14]
movzx edi, byte [ebx]
test edi, edi
je 0x44f21a
cmp edi, 1
jne 0x44f21e
movzx eax, byte [ebx + 1]
shl eax, 8
jmp 0x44f251
mov eax, edi
jmp 0x44f251
call fcn.00426adc
mov esi, eax
mov eax, dword [ebx + 4]
lea ecx, [eax + 0xc]
mov edx, dword [eax]
lea ebx, [esp + 0xa0]
push dword [eax + 8]
push dword [eax + 4]
push ecx
push ebx
call dword [edx]
mov edx, esi
add esp, 0x10
movdqu xmm0, xmmword [ebx]
mov ebx, dword [esp + 0x14]
movdqu xmmword [esi], xmm0
xor eax, eax
mov esi, dword [esp + 8]
lea ecx, [esi + 0x30]
mov dword [esp + 0x1c], ecx
or eax, edi
lea ecx, [esp + 0x58]
mov dword [ecx - 8], eax
mov dword [ecx - 4], edx
lea eax, [ebx + 0x14]
mov edx, dword [ebx + 8]
push dword [ebx + 0x10]
push dword [ebx + 0xc]
push eax
push ecx
call dword [edx]
add esp, 0x10
lea eax, [esi + 0x40]
mov dword [esp + 0xc0], eax
mov ecx, dword [esi + 0x40]
mov edx, dword [esi + 0x44]
lea ebx, [esp + 0x50]
push ebx
push dword [esi + 0x4c]
push dword [esi + 0x48]
call fcn.0044e037
add esp, 0xc
mov dword [esp + 0xc8], edx
mov ecx, eax
shr ecx, 0x19
mov edx, dword [esi + 0x34]
mov dword [esp + 4], edx
mov dword [esp + 0xcc], eax
and edx, eax
mov dword [esp + 0xc4], ecx
movd xmm1, ecx
pxor xmm0, xmm0
pshufb xmm1, xmm0
movdqa xmmword [esp + 0x160], xmm1
mov edi, dword [esi + 0x30]
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x20], eax
mov eax, dword [ebx + 0x10]
mov dword [esp + 0xc], eax
xor eax, eax
mov dword [esp + 0x10], eax
movdqu xmm0, xmmword [edi + edx]
movdqa xmmword [esp + 0x130], xmm0
pcmpeqb xmm0, xmmword [esp + 0x160]
pmovmskb esi, xmm0
test esi, esi
mov dword [esp], edx
je 0x44f35d
bsf eax, esi
add eax, edx
and eax, dword [esp + 4]
neg eax
lea ebx, [eax + eax*8]
lea ecx, [edi + ebx*4]
add ecx, 0xffffffdc
lea edx, [esp + 0x50]
call fcn.00420bd1
test al, al
je 0x44f34e
lea ebx, [edi + ebx*4]
mov ecx, dword [ebx - 0x18]
mov edx, dword [ebx - 0x14]
push dword [esp + 0xc]
push dword [esp + 0x24]
call fcn.00421f24
add esp, 8
test al, al
jne 0x44f38f
lea eax, [esi - 1]
and eax, esi
mov esi, eax
test ax, ax
mov edx, dword [esp]
jne 0x44f310
pcmpeqd xmm0, xmm0
movdqa xmm1, xmmword [esp + 0x130]
pcmpeqb xmm1, xmm0
pmovmskb eax, xmm1
test eax, eax
mov eax, dword [esp + 0x10]
jne 0x44f54c
add edx, eax
add edx, 0x10
add eax, 0x10
and edx, dword [esp + 4]
jmp 0x44f2ea
mov eax, dword [esp + 0x60]
mov dword [esp + 0xb3], eax
movups xmm0, xmmword [esp + 0x50]
movups xmmword [esp + 0xa3], xmm0
mov edi, dword [esp + 0x64]
mov esi, dword [esp + 8]
mov eax, dword [esp + 0xb3]
mov dword [esp + 0x123], eax
movdqu xmm0, xmmword [esp + 0xa3]
movdqu xmmword [esp + 0x113], xmm0
lea ecx, [esp + 0x50]
mov dword [ecx + 0x10], eax
movdqa xmmword [ecx], xmm0
mov dword [ecx + 0x18], ebx
mov dword [ecx + 0x14], edi
mov eax, dword [esp + 0x1c]
mov dword [ecx + 0x1c], eax
call fcn.004455aa
mov eax, dword [esi + 0x78]
cmp eax, dword [ebx - 4]
jbe 0x44f51a
movups xmm0, xmmword [esp + 0x3c]
movups xmmword [esp + 0x60], xmm0
movaps xmm0, xmmword [esp + 0x30]
movups xmmword [esp + 0x54], xmm0
call fcn.0049c8f0
mov dword [esp + 4], eax
mov esi, edx
mov edi, ecx
mov edx, dword [ebx - 4]
cmp edx, dword [ebx - 0xc]
jne 0x44f42c
lea ecx, [ebx - 0xc]
call fcn.00462f51
mov edx, dword [ebx - 4]
lea eax, [edx + edx*2]
shl eax, 4
mov ecx, dword [ebx - 8]
mov dword [ecx + eax + 4], esi
mov edx, dword [esp + 4]
mov dword [ecx + eax], edx
mov dword [ecx + eax + 8], edi
movdqu xmm0, xmmword [esp + 0x50]
movdqu xmm1, xmmword [esp + 0x60]
movdqu xmmword [ecx + eax + 0xc], xmm0
movdqu xmmword [ecx + eax + 0x1c], xmm1
inc dword [ebx - 4]
mov esi, dword [esp + 8]
cmp dword [esi + 0x7c], 0
jne 0x44f523
mov eax, dword [esi + 8]
cmp eax, 0x3b9aca00
je 0x44f523
mov dword [esp + 4], eax
mov edi, dword [esi]
mov ebx, dword [esi + 4]
call fcn.004702c3
mov dword [esp], edx
mov dword [esi + 0x7c], eax
mov dword [esp + 0x20], edi
mov eax, edi
mov dword [esp + 0xc], ebx
or eax, ebx
jne 0x44f4a8
cmp dword [esp + 4], 0
je 0x44f89c
call fcn.0049c8f0
mov esi, edx
mov edi, ecx
lea ecx, [esp + 0x50]
mov edx, eax
push 0x4fd0e0
push edi
push esi
call fcn.004a46b9
add esp, 0xc
mov al, byte [0x530b2c]
xor ecx, ecx
mov edx, 0x48
call fcn.0049cbc0
test eax, eax
je 0x44f8c6
mov ebx, eax
lea esi, [esp + 0x50]
mov ecx, 0x12
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp + 0xc]
mov esi, dword [eax]
mov edx, dword [esp + 8]
mov eax, dword [esi + 4]
cmp eax, 0xffffffff
je 0x44f516
test eax, eax
js 0x44f86f
lea ecx, [eax + 1]
lock cmpxchg dword [esi + 4], ecx
jne 0x44f4fa
jmp 0x44f657
pause
jmp 0x44f4f7
lea ecx, [esp + 0x30]
call fcn.004456dd
mov esi, dword [esp + 0x14]
mov ecx, dword [esi]
mov edx, dword [esi + 4]
call fcn.004224d1
lea eax, [esi + 0x14]
mov ecx, dword [esi + 8]
push dword [esi + 0x10]
push dword [esi + 0xc]
push eax
call dword [ecx + 8]
add esp, 0xc
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov esi, dword [esp + 8]
cmp dword [esi + 0x38], 0
je 0x44f85a
mov al, byte [esp + 0x50]
movups xmm0, xmmword [esp + 0x51]
movaps xmmword [esp + 0xa0], xmm0
movsd xmm0, qword [esp + 0x60]
movsd qword [esp + 0xaf], xmm0
mov ebx, dword [esp + 0xc8]
cmp al, 3
mov edi, dword [esp + 0xcc]
je 0x44f3af
lea ecx, [esp + 0x51]
movsd xmm0, qword [ecx + 0xf]
movsd qword [esp + 0x11f], xmm0
movups xmm0, xmmword [ecx]
movaps xmmword [esp + 0x110], xmm0
mov ecx, dword [esi + 0x30]
mov edx, dword [esi + 0x34]
and edi, edx
movdqu xmm0, xmmword [ecx + edi]
pmovmskb esi, xmm0
test esi, esi
jne 0x44f5df
mov ebx, edi
mov edi, 0x10
add ebx, edi
and ebx, edx
movdqu xmm0, xmmword [ecx + ebx]
pmovmskb esi, xmm0
add edi, 0x10
test esi, esi
je 0x44f5c9
mov edi, ebx
bsf esi, esi
add esi, edi
and esi, edx
mov ah, byte [ecx + esi]
test ah, ah
js 0x44f5fb
movdqa xmm0, xmmword [ecx]
pmovmskb esi, xmm0
bsf esi, esi
mov ah, byte [ecx + esi]
lea edi, [esi - 0x10]
and edi, edx
mov edx, dword [esp + 0xc4]
mov byte [ecx + esi], dl
mov byte [ecx + edi + 0x10], dl
neg esi
lea edx, [esi + esi*8]
lea ebx, [ecx + edx*4]
and ah, 1
movzx ecx, ah
mov esi, dword [esp + 8]
sub dword [esi + 0x38], ecx
mov byte [ebx - 0x24], al
movaps xmm0, xmmword [esp + 0x110]
movups xmmword [ebx - 0x23], xmm0
movq xmm0, qword [esp + 0x11f]
movq qword [ebx - 0x14], xmm0
xor eax, eax
mov dword [ebx - 0xc], eax
mov dword [ebx - 8], 8
mov dword [ebx - 4], eax
inc dword [esi + 0x3c]
jmp 0x44f3ec
mov dword [esp + 0x10], ebx
mov ebx, dword [edx + 0x70]
test ebx, ebx
je 0x44f6dd
mov eax, dword [edx + 0x74]
mov dword [esp + 8], eax
mov edi, dword [eax + 8]
mov al, byte [0x530b2c]
xor ecx, ecx
mov edx, 0x20
call fcn.0049cbc0
test eax, eax
je 0x44f8d5
dec edi
and edi, 0xfffffff8
lea ecx, [ebx + edi]
add ecx, 8
mov edx, dword [esp + 0x20]
mov dword [eax], edx
mov edx, dword [esp + 0xc]
mov dword [eax + 4], edx
mov edx, dword [esp + 4]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x10]
mov dword [eax + 0x10], edx
mov byte [eax + 0x14], 0
movzx edx, word [esp + 0x19]
mov word [eax + 0x15], dx
mov dl, byte [esp + 0x1b]
mov byte [eax + 0x17], dl
mov edx, dword [esp]
mov dword [eax + 0x18], edx
mov dword [eax + 0x1c], esi
push 0x4f7868
push eax
push ecx
mov eax, dword [esp + 0x14]
call dword [eax + 0xc]
add esp, 0xc
jmp 0x44f523
mov edx, dword [0x5300bc]
mov eax, dword [0x5300b8]
mov ebx, eax
add ebx, 1
mov ecx, edx
adc ecx, 0
lock cmpxchg8b qword [0x5300b8]
jne 0x44f6e8
lea ecx, [esp + 0xa0]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [esp + 0xc]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 4]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x60], eax
mov byte [esp + 0x64], 0
movzx eax, word [esp + 0x19]
mov word [esp + 0x65], ax
mov al, byte [esp + 0x1b]
mov byte [esp + 0x67], al
mov eax, dword [esp]
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], esi
mov dword [esp + 0x70], ecx
xor ecx, ecx
call fcn.0049fbdf
test eax, eax
je 0x44f8e4
mov esi, eax
mov eax, dword [eax + 0x18]
cmp eax, 0x7fffffff
jae 0x44f8f1
inc eax
mov dword [esi + 0x18], eax
mov edi, dword [esi + 0x1c]
test edi, edi
je 0x44f8fb
mov eax, dword [esp + 0xa0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa4]
mov dword [esp], eax
lock inc dword [edi]
jle 0x44f919
mov al, byte [0x530b2c]
xor ebx, ebx
xor ecx, ecx
mov edx, 0xc0
call fcn.0049cbc0
test eax, eax
je 0x44f91b
mov ecx, eax
and ecx, 0xffffffc0
mov dword [ecx + 0x3c], eax
mov dword [ecx + 0x40], 0xcc
mov dword [ecx + 0x44], ebx
mov dword [ecx + 0x48], 0x4f62a0
mov dword [ecx + 0x54], ebx
mov dword [ecx + 0x50], ebx
mov dword [ecx + 0x58], edi
mov eax, dword [esp]
mov dword [ecx + 0x64], eax
mov eax, dword [esp + 4]
mov dword [ecx + 0x60], eax
mov dword [ecx + 0x6c], ebx
mov dword [ecx + 0x68], ebx
movups xmm0, xmmword [esp + 0x50]
movups xmm1, xmmword [esp + 0x60]
movups xmmword [ecx + 0x70], xmm0
movups xmmword [ecx + 0x80], xmm1
mov dword [ecx + 0x90], ebx
mov dword [ecx + 0x94], ebx
mov dword [ecx + 0x98], ebx
lea ebx, [ecx + 0x40]
add edi, 8
mov ecx, edi
mov edx, ebx
push ebx
call fcn.004543a8
add esp, 4
test eax, eax
je 0x44f834
mov ecx, esi
add ecx, 0x1c
mov edx, eax
call fcn.004a211b
dec dword [esi + 0x18]
mov ecx, 0x84
mov eax, 0xcc
lock cmpxchg dword [ebx], ecx
je 0x44f523
mov eax, dword [ebx + 8]
push ebx
call dword [eax + 0x10]
add esp, 4
jmp 0x44f523
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0xc0]
call fcn.004cd925
jmp 0x44f55a
call fcn.004cbdef
mov ecx, str.value_already_sent
mov edx, 0x12
push 0x4f4bd0
call fcn.004cbd20
mov ecx, str.assertion_failed:_slot.is_none__main.rs_srconeshot.rs
mov edx, 0x20
push 0x4f6ce0
call fcn.004cb970
lea ecx, [esp + 0x50]
mov dword [ecx], 0x4fd0b8
mov dword [ecx + 4], 1
xor eax, eax
mov dword [ecx + 0x10], eax
mov dword [ecx + 8], str._rustc_a4472498d7e88041f6206faf4503eb1f246fd427librarycore_src_sync_atomic.rsthere_is_no_such_thing_as_an_acquire_store
mov dword [ecx + 0xc], eax
mov edx, 0x4f4bac
call fcn.004cb8c0
mov ecx, 8
mov edx, 0x48
call fcn.004cb610
mov ecx, 8
mov edx, 0x20
call fcn.004cb610
lea ecx, [esp + 0x50]
call fcn.00461e79
mov al, 1
jmp 0x44f909
mov ecx, 0x4fc9f0
call fcn.004cbc30
lea ecx, [esp + 0x50]
call fcn.00461e79
dec dword [esi + 0x18]
xor eax, eax
lea ecx, [esp + 0x50]
mov byte [ecx], al
mov edx, 0x4f7858
call fcn.004cd600
ud2
mov ecx, 0x40
mov edx, 0x80
call fcn.004cb610