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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x68
mov esi, esp
mov dword [esi + 0x50], ebp
mov dword [esi + 0x54], esp
mov dword [esi + 0x60], 0xffffffff
mov dword [esi + 0x5c], 0x5783d0
mov dword [esi + 0xc], ecx
mov eax, dword [ebp + 8]
mov dword [esi + 0x14], edx
mov ecx, dword fs:[0]
mov dword [esi + 0x58], ecx
lea ecx, [esi + 0x58]
mov dword fs:[0], ecx
mov ecx, dword [eax]
cmp byte [eax + 0xc], 0
mov edi, dword [eax + 4]
mov edx, dword [eax + 8]
mov dword [esi + 0x10], ecx
mov dword [esi + 8], edi
mov dword [esi + 4], edx
je 0x46dacc
mov eax, dword [esi + 4]
mov edi, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0x10]
cmp edx, 0x80000000
jne 0x46db74
mov dword [ecx + 4], edi
mov dword [ecx], 0x80000000
jmp 0x46db7c
cmp dword [esi + 4], 0
je 0x46daa6
movzx ecx, word [eax + 0xd]
movzx eax, byte [eax + 0xf]
mov edi, dword [esi + 8]
shl eax, 0x10
or eax, ecx
mov ecx, dword [esi + 4]
add ecx, edi
jmp 0x46db06
add edi, 2
cmp edx, ecx
cmovne edx, edi
nop word cs:[eax + eax]
nop dword [eax + eax]
cmp edx, ecx
mov edi, edx
je 0x46daa6
movzx ebx, byte [edi]
lea edx, [edi + 1]
test bl, bl
jns 0x46db00
cmp bl, 0xe0
jb 0x46dae9
cmp bl, 0xed
jne 0x46db32
cmp edx, ecx
je 0x46daa6
lea edx, [edi + 2]
cmp edx, ecx
je 0x46daa6
cmp byte [edi + 1], 0x9f
ja 0x46db53
add edi, 3
mov edx, edi
jmp 0x46db00
add edi, 2
cmp edx, ecx
cmove edi, edx
xor edx, edx
cmp edi, ecx
setne dl
add edx, edi
cmp bl, 0xf0
jb 0x46db00
xor ebx, ebx
cmp edx, ecx
setne bl
add edx, ebx
jmp 0x46db00
cmp dword [esi + 0x10], 0x80000000
jne 0x46db8d
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov edi, dword [esi + 4]
shl eax, 8
cmp edx, 0x80000000
je 0x46dabe
mov dword [ecx], edx
mov dword [ecx + 4], edi
mov dword [ecx + 8], eax
mov eax, dword [esi + 0x58]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ebx, dword [esi + 0x14]
movdqa xmm0, xmmword [0x589280]
mov ecx, 0xffffffff
mov edx, dword [ebx + 0x7c]
mov eax, dword [ebx + 0x78]
shl edx, 4
test edx, edx
je 0x46dc46
movdqa xmm1, xmmword [eax]
add eax, 0x10
inc ecx
add edx, 0xfffffff0
pcmpeqb xmm1, xmm0
pmovmskb edi, xmm1
cmp edi, 0xffff
jne 0x46dba6
mov edx, dword [ebx + 0x88]
mov dword [esi + 0x60], 0
cmp ecx, edx
jae 0x46dcfa
mov eax, dword [ebx + 0x84]
mov edx, dword [eax + ecx*8 + 4]
push dword [eax + ecx*8]
call dword [edx + 0x20]
add esp, 4
lea ecx, [esi + 0x30]
push eax
push ecx
mov dword [esi + 4], eax
call dword [edx + 0xc]
mov eax, dword [esi + 4]
add esp, 8
mov ebx, dword [esi + 0x14]
test eax, eax
je 0x46dc37
mov eax, dword [esi + 0x3c]
mov ecx, dword [esi + 0x38]
mov edi, dword [esi + 0x30]
mov edx, dword [esi + 0x34]
xor edi, 0x79916b1f
xor ecx, 0x721300f2
xor edx, 0x5ece47c5
xor eax, 0x48efe268
or ecx, edi
or eax, edx
or eax, ecx
mov ecx, dword [esi + 4]
je 0x46dc48
mov ecx, 0x58f1dc
call fcn.0057fb10
jmp 0x46dd07
xor ecx, ecx
test ecx, ecx
mov eax, 0x58fbd4
mov dword [esi + 0x24], ebx
mov dword [esi + 0x60], 0
lea edx, [esi + 0x24]
cmovne eax, ecx
lea ecx, [esi + 0x18]
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], 0
push 0
push str._rustc_aedd173a2c086e558c2b66d3743b344f977621a7librarycore_src_strpattern.rs
call fcn.0046dd70
add esp, 8
mov ecx, 0xb
mov byte [esi + 3], 0
mov dword [esi + 0x60], 1
call fcn.00404a10
mov edx, dword [esi + 0x14]
mov ecx, eax
mov byte [esi + 3], 0
mov dword [esi + 4], eax
call fcn.0046c030
mov edi, dword [esi + 4]
cmp dword [esi + 0x18], 0x80000000
je 0x46dcdb
mov eax, dword [esi + 0x20]
movq xmm0, qword [esi + 0x18]
mov byte [esi + 3], 1
mov ecx, edi
mov edx, 0xf
mov dword [esi + 0x4c], eax
lea eax, [esi + 0x40]
movq qword [esi + 0x44], xmm0
mov byte [esi + 0x40], 4
push eax
call fcn.0046c500
mov edi, dword [esi + 4]
add esp, 4
cmp dword [esi + 0x10], 0
je 0x46dcf2
push dword [esi + 8]
push 0
push dword [0x5fd290]
call dword [sym.imp.kernel32.dll_HeapFree]
mov ecx, dword [esi + 0xc]
jmp 0x46dabe
push 0x590a6c
call fcn.0057f710
add esp, 4
ud2