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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xd0
call 0x5f70c4
pop eax
mov edi, edx
mov esi, ecx
mov dword [esp + 0x80], eax
call fcn.005f7ab0
test eax, eax
je 0x5f7a51
cmp dword [eax], 0
jne 0x5f7a6e
mov dword [eax], 0xffffffff
mov dword [esp + 0x2c], eax
mov ecx, 0xc
mov eax, dword [edi + 8]
mov dword [esp], eax
mul ecx
jo 0x5f7a4a
mov ebx, eax
test eax, eax
js 0x5f7a4a
movzx ecx, word [edi + 0xc]
mov al, byte [edi + 0x10]
movzx edx, word [edi + 0xe]
test ebx, ebx
mov dword [esp + 0x60], edi
mov word [esp + 0xc], cx
mov ecx, dword [edi]
mov byte [esp + 4], al
mov word [esp + 0x14], dx
mov dword [esp + 0x18], ecx
je 0x5f7168
mov eax, dword [0x6f1130]
test eax, eax
jne 0x5f714b
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x5f715a
mov dword [0x6f1130], eax
push ebx
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
mov edi, eax
test eax, eax
jne 0x5f716d
mov ecx, ebx
mov edx, 4
call fcn.0040a640
ud2
mov edi, 4
mov eax, dword [esp + 0x2c]
mov ecx, 0xaaaaaaab
mov dword [esp + 0x84], esi
add eax, 8
mov dword [esp + 0x7c], eax
mov eax, ebx
mul ecx
mov esi, edx
shr esi, 3
push ebx
push dword [esp + 0x1c]
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x60]
mov ecx, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
movzx edx, word [esp + 0xc]
cmp byte [eax + 0x11], 0
mov eax, dword [esp]
setne byte [esp + 0x4d]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], esi
cmp byte [esp + 4], 1
movzx esi, word [esp + 0x14]
mov dword [esp + 0x44], eax
mov word [esp + 0x48], dx
mov edx, dword [esp + 0x2c]
mov word [esp + 0x4a], si
sete byte [esp + 0x4c]
lea esi, [esp + 0x88]
movdqu xmm0, xmmword [edx + 8]
mov word [esp + 0x10], cx
lea edx, [esp + 0x10]
mov ecx, esi
mov dword [esp + 0xbc], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xc0], 0
pshufd xmm1, xmm0, 0x44
pshufd xmm2, xmm0, 0xee
movdqu xmmword [esp + 0x88], xmm0
pxor xmm1, xmmword [0x6075b0]
pxor xmm2, xmmword [0x6075c0]
movdqu xmmword [esp + 0x98], xmm1
movdqu xmmword [esp + 0xa8], xmm2
mov dword [esp + 0xc4], 0
push 2
call fcn.0041a840
add esp, 4
mov eax, dword [ebp + 8]
mov edi, ebx
lea edx, [esp + 0x10]
mov ecx, esi
shr edi, 0x10
shr eax, 0x10
mov word [esp + 0x10], ax
push 2
call fcn.0041a840
add esp, 4
lea edx, [esp + 0x10]
mov ecx, esi
mov word [esp + 0x10], bx
push 2
call fcn.0041a840
add esp, 4
lea edx, [esp + 0x10]
mov ecx, esi
mov word [esp + 0x10], di
push 2
call fcn.0041a840
add esp, 4
lea ecx, [esp + 0x3c]
mov edx, esi
call fcn.005fd1f0
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0xb8]
mov esi, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb4]
mov ebx, dword [esp + 0xac]
pcmpeqd xmm1, xmm1
shl eax, 0x18
mov dword [esp + 0x5c], edx
xor esi, edx
mov edx, dword [esp + 0x98]
or eax, dword [esp + 0xbc]
mov dword [esp + 0x18], eax
xor ecx, eax
mov eax, dword [esp + 0xa8]
add edx, eax
mov edi, eax
mov dword [esp], edx
mov edx, dword [esp + 0x9c]
adc edx, ebx
shld edi, ebx, 0xd
shld ebx, eax, 0xd
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x14], edx
xor ebx, edx
mov edx, dword [esp + 0xa4]
xor edi, dword [esp]
add eax, esi
mov dword [esp + 0xc], eax
mov eax, esi
adc edx, ecx
shrd esi, ecx, 0x10
shld eax, ecx, 0x10
mov dword [esp + 4], edx
xor esi, edx
mov edx, dword [esp]
xor eax, dword [esp + 0xc]
add dword [esp + 0x14], eax
mov ecx, eax
adc edx, esi
shrd eax, esi, 0xb
shld ecx, esi, 0x15
mov esi, edi
mov dword [esp], edx
xor eax, edx
mov edx, dword [esp + 0x14]
xor ecx, edx
add dword [esp + 0xc], edi
adc dword [esp + 4], ebx
shld esi, ebx, 0x11
shrd edi, ebx, 0xf
mov ebx, dword [esp]
xor edx, dword [esp + 0x5c]
xor esi, dword [esp + 0xc]
xor ebx, dword [esp + 0x18]
mov dword [esp], ebx
mov ebx, dword [esp + 4]
xor edi, ebx
xor ebx, 0xff
add edx, esi
mov dword [esp + 4], ebx
mov ebx, dword [esp]
mov dword [esp + 0x14], edx
mov edx, esi
adc ebx, edi
shld edx, edi, 0xd
shrd esi, edi, 0x13
mov edi, ecx
mov dword [esp], ebx
xor esi, ebx
xor edx, dword [esp + 0x14]
add dword [esp + 4], ecx
mov ebx, dword [esp + 0xc]
adc ebx, eax
shld edi, eax, 0x10
shrd ecx, eax, 0x10
xor edi, dword [esp + 4]
xor ecx, ebx
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x14]
add dword [esp], edi
mov eax, edi
adc ebx, ecx
shld eax, ecx, 0x15
shrd edi, ecx, 0xb
mov ecx, edx
mov dword [esp + 0x14], ebx
xor edi, ebx
xor eax, dword [esp]
add dword [esp + 4], edx
mov ebx, dword [esp + 0xc]
adc ebx, esi
shld ecx, esi, 0x11
shrd edx, esi, 0xf
mov esi, dword [esp]
xor ecx, dword [esp + 4]
xor edx, ebx
mov dword [esp + 0xc], ebx
add esi, ecx
mov ebx, ecx
adc dword [esp + 0x14], edx
shld ebx, edx, 0xd
shrd ecx, edx, 0x13
mov dword [esp], esi
mov edx, eax
xor ebx, esi
xor ecx, dword [esp + 0x14]
add dword [esp + 0xc], eax
mov esi, dword [esp + 4]
adc esi, edi
shrd eax, edi, 0x10
shld edx, edi, 0x10
mov dword [esp + 4], esi
xor eax, esi
mov esi, dword [esp + 0xc]
xor edx, esi
add dword [esp + 0x14], edx
mov edi, edx
adc dword [esp], eax
shld edi, eax, 0x15
shrd edx, eax, 0xb
mov eax, dword [esp + 4]
xor edx, dword [esp]
xor edi, dword [esp + 0x14]
add esi, ebx
mov dword [esp + 0xc], esi
mov esi, ebx
adc eax, ecx
shld esi, ecx, 0x11
shrd ebx, ecx, 0xf
mov ecx, dword [esp + 0x14]
xor esi, dword [esp + 0xc]
xor ebx, eax
mov dword [esp + 4], eax
add ecx, esi
mov eax, esi
adc dword [esp], ebx
shld eax, ebx, 0xd
shrd esi, ebx, 0x13
mov ebx, dword [esp + 0xc]
xor eax, ecx
xor esi, dword [esp]
mov ecx, edi
mov dword [esp + 0x14], eax
mov eax, dword [esp + 4]
add eax, edi
adc ebx, edx
shld ecx, edx, 0x10
shrd edi, edx, 0x10
xor ecx, eax
xor edi, ebx
mov edx, ecx
shrd ecx, edi, 0xb
shld edx, edi, 0x15
mov edi, dword [esp + 0x14]
add eax, edi
mov dword [esp + 4], eax
mov eax, edi
adc ebx, esi
shld edi, esi, 0x11
shld esi, eax, 0x11
mov eax, dword [esp + 4]
xor edi, edx
xor esi, ecx
xor edi, ebx
mov ecx, 0xaaaaaaab
xor esi, eax
xor edi, eax
xor esi, ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x58], edi
mov eax, esi
mov dword [esp + 0x70], esi
shld eax, edi, 7
and al, 0x7f
movzx eax, al
movd xmm0, eax
mov eax, dword [esp + 0x44]
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
mov dword [esp + 0x18], eax
lea eax, [eax*4]
movdqa xmm3, xmm0
lea eax, [eax + eax*2]
mul ecx
mov ecx, dword [ebx + 0x18]
mov eax, ebx
shr edx, 3
add eax, 0x18
mov dword [esp + 0x78], edx
mov dl, byte [esp + 0x4c]
mov dword [esp + 0x54], eax
mov dword [esp], ecx
and ecx, edi
mov edi, dword [ebx + 0x1c]
mov byte [esp + 0xb], dl
mov dl, byte [esp + 0x4d]
movdqu xmm2, xmmword [edi + ecx]
mov byte [esp + 0x2b], dl
pcmpeqb xmm3, xmm2
pmovmskb edx, xmm3
mov dword [esp + 4], edx
movzx edx, word [esp + 0x34]
mov word [esp + 0xc], dx
movzx edx, word [esp + 0x36]
mov word [esp + 0x14], dx
movzx edx, word [esp + 0x38]
mov word [esp + 0x5c], dx
movzx edx, word [esp + 0x3a]
mov word [esp + 0x6a], dx
movzx edx, word [esp + 0x48]
mov word [esp + 0x68], dx
movzx edx, word [esp + 0x4a]
mov word [esp + 0x66], dx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x24], edx
xor edx, edx
mov esi, dword [esp + 4]
test si, si
je 0x5f75d0
jmp 0x5f75ff
pcmpeqb xmm2, xmm1
pmovmskb esi, xmm2
test esi, esi
jne 0x5f77cd
lea ecx, [ecx + edx + 0x10]
movdqa xmm3, xmm0
add edx, 0x10
and ecx, dword [esp]
movdqu xmm2, xmmword [edi + ecx]
pcmpeqb xmm3, xmm2
pmovmskb esi, xmm3
test esi, esi
je 0x5f75d0
test edi, edi
je 0x5f77cd
lea ebx, [esi - 1]
movzx eax, word [esp + 0xc]
and ebx, esi
bsf si, si
movzx esi, si
mov dword [esp + 4], ebx
add esi, ecx
and esi, dword [esp]
neg esi
lea esi, [esi + esi*4]
lea ebx, [edi + esi*8]
cmp word [ebx - 0x28], ax
jne 0x5f75be
movzx esi, word [esp + 0x14]
cmp word [ebx - 0x26], si
jne 0x5f75be
movzx esi, word [esp + 0x5c]
cmp word [ebx - 0x24], si
jne 0x5f75be
movzx esi, word [esp + 0x6a]
cmp word [ebx - 0x22], si
jne 0x5f75be
mov dword [esp + 0x30], ebx
mov bl, byte [esp + 0xb]
mov esi, dword [esp + 0x30]
cmp byte [esi - 0x10], bl
mov ebx, dword [esp + 0x30]
jne 0x5f75be
movzx esi, word [esp + 0x68]
cmp word [ebx - 0x14], si
jne 0x5f75be
movzx esi, word [esp + 0x66]
cmp word [ebx - 0x12], si
jne 0x5f75be
mov esi, dword [esp + 0x18]
cmp dword [ebx - 0x18], esi
jne 0x5f75be
cmp dword [esp + 0x18], 0
je 0x5f7757
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x78]
mov dword [esp + 0x1c], 0
mov ebx, dword [ebx - 0x20]
mov dword [esp + 0x20], ebx
jmp 0x5f76e8
mov dword [esp + 0x74], esi
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
movzx ebx, word [ebx + esi]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x6c], ebx
mov ebx, dword [esp + 0x6c]
cmp bx, word [esi + eax]
mov esi, dword [esp + 0x6c]
jne 0x5f75be
mov esi, dword [esi*4 + 0x5f7a94]
add esi, dword [esp + 0x80]
jmp esi
cmp byte [esp + 0x2b], 0
mov esi, dword [esp + 0x30]
setne bh
cmp byte [esi - 0xf], 0
mov esi, dword [esp + 0x30]
sete bl
cmp bl, bh
je 0x5f75be
mov eax, dword [esp + 0x38]
lea ecx, [esp + 0x3c]
mov edi, esi
mov esi, dword [esp + 0x60]
mov bl, byte [esp + 0xb]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x88], eax
movzx eax, word [ecx + 0x11]
mov word [esp + 0x10], ax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
mov al, byte [ecx + 0x13]
mov ecx, dword [esp + 0x54]
mov byte [esp + 0x12], al
mov dword [esp + 4], ecx
xor eax, eax
jmp 0x5f7828
mov eax, dword [esp + 0x2c]
cmp dword [eax + 0x20], 0
je 0x5f7a2e
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x3c]
mov bl, byte [esp + 0x40]
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0x18]
mov dword [esp], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x88], eax
movzx eax, word [esp + 0x41]
mov word [esp + 0x10], ax
mov al, byte [esp + 0x43]
mov byte [esp + 0x12], al
mov eax, dword [esp + 0x48]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xc], eax
mov al, 1
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x8c]
test al, al
mov dword [esp + 0x38], edx
mov dword [esp + 0x34], ecx
movzx ecx, word [esp + 0x10]
mov dl, byte [esp + 0x12]
mov word [esp + 0x50], cx
mov byte [esp + 0x52], dl
je 0x5f7971
mov edx, dword [ebp + 8]
lea ecx, [esp + 0x88]
mov byte [esp + 0xb], bl
push esi
push dword [ebp + 0xc]
call fcn.005f7c90
add esp, 8
mov eax, dword [esp + 0x54]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov edx, ecx
and edx, dword [esp + 0x58]
movdqu xmm0, xmmword [eax + edx]
pmovmskb ebx, xmm0
test ebx, ebx
jne 0x5f78b4
mov esi, 0x10
nop word cs:[eax + eax]
nop dword [eax]
add edx, esi
add esi, 0x10
and edx, ecx
movdqu xmm0, xmmword [eax + edx]
pmovmskb ebx, xmm0
test ebx, ebx
je 0x5f78a0
bsf si, bx
mov dword [esp + 0x18], edi
movzx ebx, si
add ebx, edx
and ebx, ecx
mov dl, byte [eax + ebx]
test dl, dl
js 0x5f78dc
movdqa xmm0, xmmword [eax]
pmovmskb edx, xmm0
bsf dx, dx
movzx ebx, dx
mov dl, byte [eax + ebx]
lea esi, [ebx - 0x10]
and dl, 1
mov edi, dword [esp + 0x2c]
and esi, ecx
mov ecx, dword [esp + 0x58]
neg dl
shr ecx, 0x19
mov byte [eax + ebx], cl
mov byte [esi + eax + 0x10], cl
movsx ecx, dl
mov edx, dword [esp]
neg ebx
add dword [edi + 0x20], ecx
lea ecx, [ebx + ebx*4]
mov dword [eax + ecx*8 - 0x28], edx
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x38]
mov dword [eax + ecx*8 - 0x24], edx
mov dl, byte [esp + 0xb]
mov dword [eax + ecx*8 - 0x20], esi
mov byte [eax + ecx*8 - 0x1c], dl
mov dl, byte [esp + 0x52]
mov byte [eax + ecx*8 - 0x19], dl
movzx edx, word [esp + 0x50]
mov word [eax + ecx*8 - 0x1b], dx
mov edx, dword [esp + 0x18]
mov dword [eax + ecx*8 - 0x18], edx
mov edx, dword [esp + 4]
mov dword [eax + ecx*8 - 0x14], edx
mov edx, dword [esp + 0xc]
mov dword [eax + ecx*8 - 0x10], edx
movq xmm0, qword [esp + 0x88]
movq qword [eax + ecx*8 - 0xc], xmm0
mov edx, dword [esp + 0x90]
mov dword [eax + ecx*8 - 4], edx
inc dword [edi + 0x24]
lea eax, [eax + ecx*8 - 0xc]
mov edi, eax
jmp 0x5f799b
mov eax, dword [esp]
cmp bl, 2
je 0x5f7998
test eax, eax
je 0x5f7998
shl eax, 2
lea eax, [eax + eax*2]
test eax, eax
je 0x5f7998
push dword [esp + 0x70]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
add edi, 0xfffffff4
mov esi, dword [edi + 8]
mov ecx, 8
mov eax, esi
mul ecx
jo 0x5f7a4a
mov ebx, eax
test eax, eax
js 0x5f7a4a
mov ecx, dword [edi]
test ebx, ebx
je 0x5f79f7
mov eax, dword [0x6f1130]
mov dword [esp], ecx
test eax, eax
jne 0x5f79d7
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x5f79e9
mov dword [0x6f1130], eax
push ebx
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
mov ecx, dword [esp]
mov edi, eax
test eax, eax
jne 0x5f79fc
mov ecx, ebx
mov edx, 2
call fcn.0040a640
ud2
mov edi, 2
lea eax, [esi*8]
push eax
push ecx
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x84]
shr ebx, 3
inc dword [eax]
mov dword [ecx], edi
mov dword [ecx + 4], ebx
mov dword [ecx + 8], esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, dword [esp + 0x54]
lea ecx, [esp + 0x88]
push dword [esp + 0x7c]
call fcn.005f2e30
add esp, 4
jmp 0x5f77db
call fcn.0040a620
ud2
lea eax, [esp + 0x88]
mov ecx, str.cannot_access_a_Thread_Local_Storage_value_during_or_after_destruction_rustc_532d2b14c05f9bc20b2d27cbb5f4550d28343a36library_std_src_threadlocal.rs
mov edx, 0x46
push 0x6d8df8
push 0x6d8e30
jmp 0x5f7a89
lea eax, [esp + 0x88]
mov ecx, str.already_borrowed_
mov edx, 0x10
push 0x6d8e98
push 0x6d8e40
push eax
call fcn.0045d480
add esp, 0xc
ud2