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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x90
lea eax, [esp + 0x30]
push 6
push str..llvm._rust_deps_rustc_demangle_0.1.24_src_lib.rs
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push eax
call fcn.004383d0
add esp, 0x14
test byte [esp + 0x30], 1
je 0x4461c1
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x54]
mov ebx, dword [esp + 0x60]
mov esi, dword [esp + 0x68]
lea ecx, [eax - 1]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x64]
cmp edx, 0xffffffff
mov dword [esp + 8], edx
mov dword [esp], esi
mov dword [esp + 0x18], ebx
mov dword [esp + 0x2c], ecx
mov dword [esp + 4], eax
je 0x446307
mov edi, dword [esp + 0x4c]
add ecx, edi
cmp ecx, eax
jae 0x4464ff
mov esi, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x28], esi
mov dword [esp + 0x10], edx
mov esi, dword [esp + 0x48]
mov edx, dword [esp + 0xc]
mov dword [esp + 0x14], eax
sub edx, esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x1c], edx
jmp 0x44621f
lea esi, [esp + 0x80]
lea edi, [esp + 0x30]
nop dword [eax]
mov ecx, esi
mov edx, edi
call fcn.00441190
mov eax, dword [esp + 0x80]
cmp eax, 1
je 0x4461d0
test eax, eax
jne 0x4464ff
mov edi, dword [esp + 0x84]
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x10]
jmp 0x446443
add edi, dword [esp + 0xc]
mov esi, dword [esp + 4]
mov dword [esp + 8], 0
mov eax, dword [esp + 0x2c]
lea ecx, [edi + eax]
cmp ecx, esi
jae 0x4464ff
movzx ecx, byte [ebx + ecx]
mov esi, 1
xor eax, eax
mov edx, 1
shld eax, edx, cl
shl esi, cl
test cl, 0x20
mov ecx, 0
cmovne eax, esi
cmovne esi, ecx
and eax, dword [esp + 0x28]
and esi, dword [esp + 0x14]
or esi, eax
je 0x446200
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x10]
mov esi, edi
add ebx, edi
cmp ecx, eax
mov edx, eax
mov eax, dword [esp + 0xc]
cmova edx, ecx
mov ecx, edx
mov dword [esp + 0x24], edx
cmp edx, eax
cmova eax, edx
cmp eax, ecx
je 0x4462b0
lea edi, [esi + ecx]
cmp edi, dword [esp + 4]
jae 0x446c44
mov edx, dword [esp]
lea edi, [ecx + 1]
movzx edx, byte [edx + ecx]
cmp dl, byte [ebx + ecx]
mov ecx, edi
je 0x446270
sub esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
mov dword [esp + 8], 0
add esi, edi
mov edi, esi
mov esi, dword [esp + 4]
jmp 0x446210
mov edi, esi
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 4]
nop word [eax + eax]
cmp dword [esp + 8], ecx
jae 0x44643d
dec ecx
cmp ecx, dword [esp + 0xc]
jae 0x446c35
lea eax, [ecx + edi]
cmp eax, esi
jae 0x446c7a
mov edx, edi
mov edi, dword [esp]
movzx ebx, byte [edi + ecx]
mov edi, dword [esp + 0x18]
cmp bl, byte [edi + eax]
mov ebx, edi
mov edi, edx
je 0x4462c0
mov eax, dword [esp + 0x1c]
add edi, dword [esp + 0x20]
mov dword [esp + 8], eax
jmp 0x446210
mov edi, dword [esp + 0x4c]
add ecx, edi
cmp ecx, eax
jae 0x4464ff
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x40]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x28], esi
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xc]
cmp esi, eax
cmova eax, esi
mov dword [esp + 0x1c], eax
mov eax, dword [esp]
lea edx, [eax + esi - 1]
add eax, esi
mov dword [esp], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x78], edx
lea edx, [ebx + esi]
mov dword [esp + 8], edx
mov dword [esp + 0x74], eax
lea eax, [esi - 1]
mov dword [esp + 0x7c], eax
jmp 0x44637f
mov edi, dword [esp + 0x14]
add edi, dword [esp + 0xc]
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x18]
lea ecx, [edi + eax]
cmp ecx, dword [esp + 4]
jae 0x4464ff
movzx ecx, byte [ebx + ecx]
mov ebx, 1
xor eax, eax
mov edx, 1
shld eax, edx, cl
shl ebx, cl
test cl, 0x20
mov ecx, 0
mov edx, edi
cmovne eax, ebx
cmovne ebx, ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x14], edx
and eax, dword [esp + 0x20]
and ebx, dword [esp + 0x24]
or ebx, eax
mov ebx, dword [esp]
mov eax, edx
je 0x446362
nop dword [eax]
cmp esi, ecx
je 0x4463e6
lea edx, [esi + eax]
cmp edx, dword [esp + 4]
jae 0x446c5f
movzx edx, byte [ebx]
mov edi, dword [esp + 8]
inc ebx
dec ecx
cmp dl, byte [edi + eax]
lea edi, [eax + 1]
mov eax, edi
je 0x4463c0
jmp 0x44636a
mov ecx, dword [esp + 0x7c]
cmp ecx, dword [esp + 0xc]
jae 0x446c23
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x78]
mov ebx, esi
add ecx, edi
sub ebx, 1
jb 0x4461f4
cmp ecx, dword [esp + 4]
jae 0x446c86
movzx edx, byte [eax]
mov esi, edi
mov edi, dword [esp + 0x18]
dec eax
mov byte [esp + 0x10], dl
movzx edx, byte [esp + 0x10]
cmp dl, byte [edi + ecx]
mov edi, esi
mov esi, dword [esp + 0x28]
lea ecx, [ecx - 1]
je 0x446400
add edi, dword [esp + 0x74]
jmp 0x44636a
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
mov ecx, edi
add ecx, 6
je 0x446464
cmp ecx, eax
jae 0x446462
cmp byte [edx + ecx], 0xbf
jg 0x446464
push 0x48abfc
push eax
push ecx
push eax
push edx
call fcn.0047c550
jne 0x446454
add ecx, edx
add edx, eax
mov dword [esp + 0x14], edi
jmp 0x446487
inc ecx
lea eax, [esi - 0x30]
cmp eax, 0xa
setb al
add esi, 0xffffffc0
cmp esi, 7
setb ah
or ah, al
je 0x4464ff
cmp ecx, edx
je 0x44656a
movzx eax, byte [ecx]
movzx esi, al
test al, al
jns 0x446470
movzx ebx, byte [ecx + 1]
and esi, 0x1f
and ebx, 0x3f
cmp al, 0xdf
jbe 0x4464e4
movzx edi, byte [ecx + 2]
shl ebx, 6
and edi, 0x3f
or edi, ebx
cmp al, 0xf0
jb 0x4464ee
movzx eax, byte [ecx + 3]
and esi, 7
shl edi, 6
mov ebx, esi
shl ebx, 0x12
and eax, 0x3f
or eax, edi
mov edi, dword [esp + 0x14]
mov esi, eax
or esi, ebx
cmp esi, 0x110000
je 0x44656a
add ecx, 4
jmp 0x446471
shl esi, 6
add ecx, 2
or esi, ebx
jmp 0x446471
shl esi, 0xc
add ecx, 3
or esi, edi
mov edi, dword [esp + 0x14]
jmp 0x446471
mov esi, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
cmp edx, 3
jae 0x44652e
cmp edx, 2
jne 0x44658d
cmp word [esi], 0x4e5a
jne 0x446718
mov esi, 0xfffffffe
mov edx, 2
mov ecx, 2
jmp 0x4465e1
movzx eax, word [esi]
movzx ecx, byte [esi + 2]
xor eax, 0x5a5f
xor ecx, 0x4e
or cx, ax
je 0x446596
cmp word [esi], 0x4e5a
je 0x4465ac
mov eax, 3
cmp edx, 3
je 0x4466e8
cmp dword [esi], 0x4e5a5f5f
je 0x44667e
mov eax, edx
jmp 0x4466e8
test edi, edi
je 0x4465c2
mov edx, dword [ebp + 0x10]
mov esi, dword [ebp + 0xc]
cmp edi, edx
jae 0x44662e
cmp byte [esi + edi], 0xbf
jle 0x446634
mov edx, edi
jmp 0x446505
mov dword [esp + 4], edx
jmp 0x4467b2
mov esi, 0xfffffffd
mov ecx, 3
cmp edx, 3
jne 0x4465d4
mov edx, 3
jmp 0x4465e1
cmp byte [esi + 2], 0xbf
jle 0x446cb3
mov ecx, 2
mov esi, 0xfffffffe
jmp 0x4465e1
mov edi, 1
mov dword [esp + 4], 0
jmp 0x4467b7
mov eax, dword [ebp + 0xc]
cmp byte [eax + 3], 0xbf
jle 0x446ce2
add ecx, dword [ebp + 0xc]
add esi, edx
mov dword [esp + 4], edx
lea eax, [ecx + esi]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x18], eax
mov eax, esi
nop word [eax + eax]
test eax, eax
je 0x446612
dec eax
cmp byte [ecx], 0
lea ecx, [ecx + 1]
jns 0x446600
jmp 0x4466dc
test esi, esi
je 0x4466dc
mov ebx, dword [esp + 0xc]
movzx ecx, byte [ebx]
movzx edx, cl
test cl, cl
js 0x446643
inc ebx
jmp 0x4466c7
je 0x446505
push 0x48ac0c
push edi
push 0
push edx
push esi
call fcn.0047c550
movzx edi, byte [ebx + 1]
and edx, 0x1f
and edi, 0x3f
cmp cl, 0xdf
jbe 0x4466ab
movzx eax, byte [ebx + 2]
shl edi, 6
and eax, 0x3f
or eax, edi
cmp cl, 0xf0
jb 0x4466bf
mov ecx, ebx
and edx, 7
shl eax, 6
add ebx, 4
movzx ecx, byte [ecx + 3]
shl edx, 0x12
and ecx, 0x3f
or ecx, eax
or edx, ecx
jmp 0x4466c7
mov esi, 0xfffffffc
mov ecx, 4
cmp edx, 5
jb 0x4466b5
mov eax, dword [ebp + 0xc]
cmp byte [eax + 4], 0xbf
jg 0x4465e1
push 0x48a768
push edx
push 4
push edx
push dword [ebp + 0xc]
call fcn.0047c550
shl edx, 6
add ebx, 2
or edx, edi
jmp 0x4466c7
mov edx, 4
jmp 0x4465e1
shl edx, 0xc
add ebx, 3
or edx, eax
cmp edx, 0x45
je 0x446915
cmp edx, 0x110000
jne 0x446935
mov eax, dword [esp + 4]
mov esi, dword [ebp + 0xc]
cmp eax, 2
jbe 0x446712
cmp word [esi], 0x525f
je 0x446773
cmp byte [esi], 0x52
je 0x446726
cmp eax, 3
jne 0x4468e8
mov dword [esp], 0
mov dword [esp + 4], 3
jmp 0x446768
jne 0x4467b2
cmp byte [esi], 0x52
mov eax, 2
jne 0x4467aa
movzx ecx, byte [esi + 1]
cmp cl, 0xbf
jle 0x446c95
inc esi
mov edi, 0xffffffff
add cl, 0xbf
mov dword [esp + 4], eax
cmp cl, 0x19
ja 0x446794
add edi, eax
xor eax, eax
nop dword [eax]
cmp edi, eax
je 0x4467f2
cmp byte [esi + eax], 0
lea eax, [eax + 1]
jns 0x446750
mov dword [esp], 0
xor edx, edx
xor ecx, ecx
mov edi, 1
jmp 0x4467c2
movzx ecx, byte [esi + 2]
cmp cl, 0xbf
jle 0x446ca4
add esi, 2
mov edi, 0xfffffffe
add cl, 0xbf
mov dword [esp + 4], eax
cmp cl, 0x19
jbe 0x446745
mov dword [esp], 0
xor edx, edx
mov edi, 1
xor ebx, ebx
xor esi, esi
xor ecx, ecx
jmp 0x4467c6
mov dword [esp + 4], 2
mov edi, 1
mov dword [esp], 0
xor edx, edx
xor ecx, ecx
xor ebx, ebx
xor esi, esi
mov eax, dword [ebp + 8]
mov dword [eax], ebx
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov edx, dword [esp]
mov ebx, dword [ebp + 0xc]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 4]
mov dword [eax + 0x10], ebx
mov dword [eax + 0x14], edx
mov dword [eax + 0x18], edi
mov dword [eax + 0x1c], esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
pxor xmm0, xmm0
lea ecx, [esp + 0x30]
xor edx, edx
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], edi
movq qword [esp + 0x38], xmm0
movq qword [esp + 0x40], xmm0
call fcn.00443ea0
test al, al
jne 0x446cc4
mov ebx, dword [esp + 0x30]
movzx ecx, byte [esp + 0x34]
test ebx, ebx
je 0x446abf
movzx edx, byte [esp + 0x37]
mov dword [esp + 8], esi
movzx esi, word [esp + 0x35]
movq xmm0, qword [esp + 0x38]
movzx ecx, cl
shl edx, 0x10
or esi, edx
shl esi, 8
or esi, ecx
movd ecx, xmm0
cmp ecx, esi
jae 0x4468c0
movzx edx, byte [ebx + ecx]
add dl, 0xbf
cmp dl, 0x1a
jae 0x4468c0
lea ecx, [esp + 0x30]
xor edx, edx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], esi
movq qword [esp + 0x38], xmm0
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
call fcn.00443ea0
test al, al
jne 0x446cc4
mov ebx, dword [esp + 0x30]
movzx ecx, byte [esp + 0x34]
test ebx, ebx
je 0x446abf
movzx edx, cl
movzx ecx, byte [esp + 0x37]
movzx esi, word [esp + 0x35]
shl ecx, 0x10
or esi, ecx
mov ecx, dword [esp + 0x38]
shl esi, 8
or esi, edx
test ecx, ecx
je 0x446b0a
cmp esi, ecx
jbe 0x446b04
cmp byte [ebx + ecx], 0xbf
jg 0x446b0a
push 0x48a968
push esi
push ecx
push esi
push ebx
call fcn.0047c550
movzx ecx, word [esi]
movzx edx, byte [esi + 2]
xor ecx, 0x5f5f
xor edx, 0x52
or dx, cx
je 0x446ada
mov dword [esp + 4], eax
xor edx, edx
xor ecx, ecx
mov dword [esp], 0
jmp 0x44676c
xor edi, edi
mov dword [esp + 8], esi
mov esi, dword [esp + 0x18]
sub esi, ebx
test esi, esi
mov dword [esp], edi
jne 0x446b21
mov edi, ebx
xor esi, esi
jmp 0x446c11
xor edi, edi
mov dword [esp + 8], esi
lea eax, [edx - 0x30]
cmp eax, 9
ja 0x4466dc
xor eax, eax
mov dword [esp], edi
nop dword [eax]
lea ecx, [edx - 0x30]
cmp ecx, 0xa
jae 0x446a0d
mov edx, 0xa
mul edx
jo 0x4466dc
add eax, ecx
jb 0x4466dc
cmp ebx, dword [esp + 0x18]
je 0x4466dc
mov ecx, ebx
movzx ebx, byte [ebx]
movzx edx, bl
test bl, bl
js 0x44698a
inc ecx
jmp 0x4469d3
movzx edi, byte [ecx + 1]
and edx, 0x1f
and edi, 0x3f
cmp bl, 0xdf
jbe 0x4469cb
movzx esi, byte [ecx + 2]
shl edi, 6
and esi, 0x3f
or esi, edi
cmp bl, 0xf0
mov dword [esp + 0x10], esi
jb 0x4469e9
movzx edi, byte [ecx + 3]
mov esi, dword [esp + 0x10]
and edx, 7
add ecx, 4
shl edx, 0x12
shl esi, 6
and edi, 0x3f
or edi, esi
or edx, edi
jmp 0x4469f3
shl edx, 6
add ecx, 2
or edx, edi
mov edi, dword [esp]
mov ebx, ecx
cmp edx, 0x110000
jne 0x446950
jmp 0x4466dc
shl edx, 0xc
add ecx, 3
add edx, dword [esp + 0x10]
mov edi, dword [esp]
mov esi, dword [esp + 8]
mov ebx, ecx
cmp edx, 0x110000
jne 0x446950
jmp 0x4466dc
test eax, eax
je 0x446ab0
cmp ebx, dword [esp + 0x18]
je 0x4466dc
mov ecx, ebx
movzx ebx, byte [ebx]
movzx edx, bl
test bl, bl
js 0x446a2e
inc ecx
jmp 0x446aa4
movzx edi, byte [ecx + 1]
and edx, 0x1f
and edi, 0x3f
cmp bl, 0xdf
jbe 0x446a90
mov dword [esp + 0x14], edi
movzx edi, byte [ecx + 2]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x14]
and dword [esp + 0x10], 0x3f
shl edi, 6
add dword [esp + 0x10], edi
cmp bl, 0xf0
jb 0x446a9a
and edx, 7
movzx edi, byte [ecx + 3]
mov ebx, edx
mov edx, dword [esp + 0x10]
shl ebx, 0x12
and edi, 0x3f
shl edx, 6
or edi, edx
mov edx, edi
mov edi, dword [esp]
or edx, ebx
cmp edx, 0x110000
je 0x4466dc
mov ebx, ecx
add ebx, 4
jmp 0x446aa9
shl edx, 6
add ecx, 2
or edx, edi
jmp 0x446aa4
shl edx, 0xc
add ecx, 3
add edx, dword [esp + 0x10]
mov edi, dword [esp]
mov ebx, ecx
dec eax
jne 0x446a15
inc edi
cmp edx, 0x45
jne 0x44693b
jmp 0x446917
and cl, 1
xor edx, edx
xor ebx, ebx
xor esi, esi
mov edi, 1
movzx eax, cl
xor ecx, ecx
mov dword [esp], eax
jmp 0x4467c6
movzx ecx, byte [esi + 3]
cmp cl, 0xbf
jle 0x446cf3
add esi, 3
mov edi, 0xfffffffd
add cl, 0xbf
mov dword [esp + 4], eax
cmp cl, 0x19
jbe 0x446745
jmp 0x446794
jne 0x4468da
add ebx, ecx
sub esi, ecx
mov dword [esp + 0xc], 0
test esi, esi
mov dword [esp], edi
je 0x44692c
cmp byte [ebx], 0x2e
jne 0x446bf7
lea eax, [ebx + esi]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x18], eax
mov al, 0x2e
test al, al
jns 0x446ba0
nop dword [eax + eax]
movzx edx, byte [ebx + 1]
mov ecx, eax
and cl, 0x1f
movzx ecx, cl
and edx, 0x3f
cmp al, 0xdf
jbe 0x446b87
movzx edi, byte [ebx + 2]
shl edx, 6
and edi, 0x3f
or edi, edx
cmp al, 0xf0
jb 0x446b93
movzx eax, byte [ebx + 3]
and ecx, 7
shl edi, 6
shl ecx, 0x12
and eax, 0x3f
or eax, edi
or eax, ecx
cmp eax, 0x110000
je 0x446c0d
add ebx, 4
jmp 0x446ba4
shl ecx, 6
add ebx, 2
or ecx, edx
mov eax, ecx
jmp 0x446ba4
shl ecx, 0xc
add ebx, 3
or edi, ecx
mov eax, edi
jmp 0x446ba4
inc ebx
movzx eax, al
mov ecx, eax
lea edx, [eax - 0x30]
lea edi, [eax - 0x21]
and ecx, 0x1fffdf
add ecx, 0xffffffbf
cmp ecx, 0x1a
setb cl
cmp edx, 0xa
setb dl
cmp edi, 0xf
setb ch
or ch, dl
or ch, cl
jne 0x446bdd
lea ecx, [eax - 0x3a]
cmp ecx, 7
jb 0x446bdd
lea ecx, [eax - 0x5b]
cmp ecx, 6
jae 0x446bef
cmp ebx, dword [esp + 0x18]
je 0x446c0d
movzx eax, byte [ebx]
test al, al
jns 0x446ba0
jmp 0x446b40
add eax, 0xffffff81
cmp eax, 0xfffffffc
jae 0x446bdd
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
xor esi, esi
mov edi, 1
xor ebx, ebx
jmp 0x4467c6
mov edi, dword [esp + 0x10]
mov ebx, 1
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
jmp 0x4467c6
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x10]
mov edi, dword [esp + 0x14]
test esi, esi
je 0x446443
push 0x48a600
push dword [esp + 0x10]
push ecx
call fcn.0047c110
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 4]
add ecx, esi
cmp eax, ecx
cmova ecx, eax
push 0x48a620
push eax
push ecx
call fcn.0047c110
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 4]
add eax, esi
cmp ecx, eax
cmova eax, ecx
push 0x48a620
push ecx
push eax
call fcn.0047c110
push 0x48a610
push esi
push eax
call fcn.0047c110
push 0x48a610
push dword [esp + 8]
push ecx
call fcn.0047c110
push 0x48a8f8
push eax
push 1
push eax
push esi
call fcn.0047c550
push 0x48a908
push eax
push 2
push eax
push esi
call fcn.0047c550
push 0x48a778
push edx
push 2
push edx
push dword [ebp + 0xc]
call fcn.0047c550
lea eax, [esp + 0x80]
push 0x48a958
push 0x48a650
push eax
push 0x3d
push str._fmt::Error_s_should_be_impossible_without_a__fmt::Formatter_
call fcn.0047c2b0
push 0x48a788
push edx
push 3
push edx
push dword [ebp + 0xc]
call fcn.0047c550
push 0x48a8e8
push eax
push 3
push eax
push esi
call fcn.0047c550
int3