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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x60
mov ebp, dword [esp + 0x7c]
mov esi, dword [esp + 0x78]
mov ebx, dword [esp + 0x74]
cmp edx, 0x101
jb 0x40af3a
cmp byte [ecx + 0x100], 0xbf
mov eax, 3
jg 0x40af13
cmp byte [ecx + 0xff], 0xbf
mov eax, 2
jg 0x40af13
xor eax, eax
cmp byte [ecx + 0xfe], 0xc0
setge al
cmp byte [ecx + eax + 0xfd], 0xbf
lea edi, [eax + 0xfd]
jle 0x40b032
mov dword [esp], ecx
mov dword [esp + 4], edi
mov eax, 5
mov edi, str._..._begin___end_______when_slicing___
jmp 0x40af48
mov dword [esp], ecx
mov dword [esp + 4], edx
xor eax, eax
mov edi, str.___rustc_a4472498d7e88041f6206faf4503eb1f246fd427librarycore_srcio_borrowed_buf.rs
cmp ebx, edx
mov dword [esp + 0x4c], edi
mov dword [esp + 0x50], eax
ja 0x40afc8
cmp esi, edx
ja 0x40afc8
cmp ebx, esi
jbe 0x40b03b
lea eax, [esp + 0x74]
lea edx, [esp + 0x78]
mov ecx, esp
mov dword [esp + 0xc], 0x444d88
mov dword [esp + 0x10], 4
mov dword [esp + 0x1c], 0
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], fcn.004082e0
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], fcn.004082e0
mov dword [esp + 0x34], ecx
lea ecx, [esp + 0x24]
lea edx, [esp + 0x4c]
mov dword [esp + 0x38], 0x41a3d0
mov dword [esp + 0x3c], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x40], 0x41a3d0
mov dword [esp + 0x18], 4
jmp 0x40b027
cmp ebx, edx
lea eax, [esp + 0x54]
mov ecx, esp
lea edx, [esp + 0x4c]
mov dword [esp + 0xc], 0x444e28
mov dword [esp + 0x10], 3
mov dword [esp + 0x1c], 0
cmova esi, ebx
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], fcn.004082e0
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x24]
mov dword [esp + 0x30], 0x41a3d0
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], 0x41a3d0
mov dword [esp + 0x14], ecx
mov dword [esp + 0x54], esi
mov dword [esp + 0x18], 3
lea ecx, [esp + 0xc]
mov edx, ebp
call fcn.004414f0
push ebp
push edi
push 0
call fcn.00441960
test ebx, ebx
je 0x40b049
cmp ebx, edx
jae 0x40b049
cmp byte [ecx + ebx], 0xc0
jl 0x40b04b
mov ebx, esi
cmp ebx, edx
mov esi, edx
mov dword [esp + 0x5c], ebx
jae 0x40b08f
mov edi, ebx
xor eax, eax
lea esi, [ebx + 1]
sub edi, 3
cmovb edi, eax
cmp edi, esi
jbe 0x40b074
mov ecx, edi
mov edx, esi
push 0x444e5c
call fcn.00441830
add esi, ecx
add ebx, ecx
sub esi, ecx
sub esi, edi
nop dword [eax]
test esi, esi
je 0x40b08d
dec esi
cmp byte [ebx], 0xc0
lea ebx, [ebx - 1]
jl 0x40b080
add esi, edi
test esi, esi
jne 0x40b0a0
mov eax, edx
test eax, eax
jne 0x40b0ae
mov ecx, ebp
call fcn.00441910
mov eax, edx
sub eax, esi
jbe 0x40b0c7
cmp byte [ecx + esi], 0xbf
jg 0x40b095
jmp 0x40b0c9
movzx ebx, byte [ecx + esi]
movzx edx, bl
test bl, bl
js 0x40b0d1
mov dword [esp + 8], edx
mov edx, 1
jmp 0x40b14e
je 0x40b095
push ebp
push edx
push esi
call fcn.00441960
movzx eax, byte [ecx + esi + 1]
and edx, 0x1f
and eax, 0x3f
cmp bl, 0xdf
jbe 0x40b112
movzx edi, byte [ecx + esi + 2]
shl eax, 6
and edi, 0x3f
or edi, eax
cmp bl, 0xf0
jb 0x40b11b
movzx ecx, byte [ecx + esi + 3]
and edx, 7
shl edi, 6
shl edx, 0x12
and ecx, 0x3f
or ecx, edi
or ecx, edx
cmp ecx, 0x110000
je 0x40b099
jmp 0x40b122
shl edx, 6
or edx, eax
mov ecx, edx
jmp 0x40b122
shl edx, 0xc
or edi, edx
mov ecx, edi
mov edx, 1
cmp ecx, 0x80
mov dword [esp + 8], ecx
jb 0x40b14e
mov edx, 2
cmp ecx, 0x800
jb 0x40b14e
cmp ecx, 0x10000
mov edx, 4
sbb edx, 0
lea eax, [esp + 0x5c]
add edx, esi
lea ecx, [esp + 8]
mov dword [esp + 0x54], esi
mov dword [esp + 0xc], 0x444de8
mov dword [esp + 0x10], 5
mov dword [esp + 0x1c], 0
mov dword [esp + 0x58], edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], fcn.004082e0
mov dword [esp + 0x2c], ecx
lea edx, [esp + 0x54]
mov ecx, esp
mov dword [esp + 0x30], 0x40b1e0
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], 0x40b2f0
mov dword [esp + 0x3c], ecx
lea ecx, [esp + 0x24]
lea edx, [esp + 0x4c]
mov dword [esp + 0x40], 0x41a3d0
mov dword [esp + 0x44], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x48], 0x41a3d0
mov dword [esp + 0x18], 5
jmp 0x40b027