Function at 0x40df10
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 0x40df7a
cmp byte [ecx + 0x100], 0xbf
mov eax, 3
jg 0x40df53
cmp byte [ecx + 0xff], 0xbf
mov eax, 2
jg 0x40df53
xor eax, eax
cmp byte [ecx + 0xfe], 0xc0
setge al
cmp byte [ecx + eax + 0xfd], 0xbf
lea edi, [eax + 0xfd]
jle 0x40e072
mov dword [esp], ecx
mov dword [esp + 4], edi
mov eax, 5
mov edi, str._..._begin___end____when_slicing_____M
jmp 0x40df88
mov dword [esp], ecx
mov dword [esp + 4], edx
xor eax, eax
mov edi, str._rustc_a4472498d7e88041f6206faf4503eb1f246fd427librarycore_src_sync_atomic.rsthere_is_no_such_thing_as_an_acquire_store
cmp ebx, edx
mov dword [esp + 0x4c], edi
mov dword [esp + 0x50], eax
ja 0x40e008
cmp esi, edx
ja 0x40e008
cmp ebx, esi
jbe 0x40e07b
lea eax, [esp + 0x74]
lea edx, [esp + 0x78]
mov ecx, esp
mov dword [esp + 0xc], 0x4d2d48
mov dword [esp + 0x10], 4
mov dword [esp + 0x1c], 0
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], fcn.00409d00
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], fcn.00409d00
mov dword [esp + 0x34], ecx
lea ecx, [esp + 0x24]
lea edx, [esp + 0x4c]
mov dword [esp + 0x38], 0x494b20
mov dword [esp + 0x3c], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x40], 0x494b20
mov dword [esp + 0x18], 4
jmp 0x40e067
cmp ebx, edx
lea eax, [esp + 0x54]
mov ecx, esp
lea edx, [esp + 0x4c]
mov dword [esp + 0xc], 0x4d2de8
mov dword [esp + 0x10], 3
mov dword [esp + 0x1c], 0
cmova esi, ebx
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], fcn.00409d00
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x24]
mov dword [esp + 0x30], 0x494b20
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], 0x494b20
mov dword [esp + 0x14], ecx
mov dword [esp + 0x54], esi
mov dword [esp + 0x18], 3
lea ecx, [esp + 0xc]
mov edx, ebp
call fcn.004cb8c0
push ebp
push edi
push 0
call fcn.004cbd80
test ebx, ebx
je 0x40e089
cmp ebx, edx
jae 0x40e089
cmp byte [ecx + ebx], 0xc0
jl 0x40e08b
mov ebx, esi
cmp ebx, edx
mov esi, edx
mov dword [esp + 0x5c], ebx
jae 0x40e0cf
mov edi, ebx
xor eax, eax
lea esi, [ebx + 1]
sub edi, 3
cmovb edi, eax
cmp edi, esi
jbe 0x40e0b4
mov ecx, edi
mov edx, esi
push 0x4d2e1c
call fcn.004cbbd0
add esi, ecx
add ebx, ecx
sub esi, ecx
sub esi, edi
nop dword [eax]
test esi, esi
je 0x40e0cd
dec esi
cmp byte [ebx], 0xc0
lea ebx, [ebx - 1]
jl 0x40e0c0
add esi, edi
test esi, esi
jne 0x40e0e0
mov eax, edx
test eax, eax
jne 0x40e0ee
mov ecx, ebp
call fcn.004cbd00
mov eax, edx
sub eax, esi
jbe 0x40e107
cmp byte [ecx + esi], 0xbf
jg 0x40e0d5
jmp 0x40e109
movzx ebx, byte [ecx + esi]
movzx edx, bl
test bl, bl
js 0x40e111
mov dword [esp + 8], edx
mov edx, 1
jmp 0x40e18e
je 0x40e0d5
push ebp
push edx
push esi
call fcn.004cbd80
movzx eax, byte [ecx + esi + 1]
and edx, 0x1f
and eax, 0x3f
cmp bl, 0xdf
jbe 0x40e152
movzx edi, byte [ecx + esi + 2]
shl eax, 6
and edi, 0x3f
or edi, eax
cmp bl, 0xf0
jb 0x40e15b
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 0x40e0d9
jmp 0x40e162
shl edx, 6
or edx, eax
mov ecx, edx
jmp 0x40e162
shl edx, 0xc
or edi, edx
mov ecx, edi
mov edx, 1
cmp ecx, 0x80
mov dword [esp + 8], ecx
jb 0x40e18e
mov edx, 2
cmp ecx, 0x800
jb 0x40e18e
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], 0x4d2da8
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.00409d00
mov dword [esp + 0x2c], ecx
lea edx, [esp + 0x54]
mov ecx, esp
mov dword [esp + 0x30], 0x40e220
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], 0x40e330
mov dword [esp + 0x3c], ecx
lea ecx, [esp + 0x24]
lea edx, [esp + 0x4c]
mov dword [esp + 0x40], 0x494b20
mov dword [esp + 0x44], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x48], 0x494b20
mov dword [esp + 0x18], 5
jmp 0x40e067