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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x88
mov dword [esp + 0x34], ecx
lea ecx, [esp + 0x38]
mov dword [esp + 0x18], edx
push 6
push str..llvm._rust_deps_rustc_demangle_0.1.23_srclib.rs
push dword [ebp + 8]
call fcn.00413390
add esp, 0xc
cmp dword [esp + 0x38], 0
je 0x4637e9
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x74]
mov ebx, dword [esp + 0x68]
mov edx, dword [esp + 0x6c]
mov esi, dword [esp + 0x70]
mov dword [esp + 8], eax
dec eax
cmp ecx, 0xffffffff
mov dword [esp + 4], ecx
mov dword [esp], esi
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x1c], eax
je 0x463853
mov esi, dword [esp + 0x54]
lea ecx, [esi + eax]
cmp ecx, edx
jae 0x463a48
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 8]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x50]
sub edi, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], edi
jmp 0x46370b
add esi, dword [esp + 8]
mov dword [esp + 4], 0
mov eax, dword [esp + 0x1c]
lea ecx, [esi + eax]
cmp ecx, edx
jae 0x463a48
movzx ecx, byte [ebx + ecx]
xor eax, eax
mov edi, 1
shld eax, edi, cl
shl edi, cl
test cl, 0x20
mov ecx, 0
cmovne eax, edi
cmovne edi, ecx
and eax, dword [esp + 0x24]
and edi, dword [esp + 0x30]
or edi, eax
je 0x4636f0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 8]
mov edx, esi
add esi, ebx
cmp ecx, eax
cmova eax, ecx
cmp eax, edi
mov ecx, eax
mov dword [esp + 0x20], eax
cmova edi, eax
nop word cs:[eax + eax]
nop
cmp edi, ecx
je 0x4637a0
mov ebx, ecx
add ecx, edx
cmp ecx, dword [esp + 0x10]
jae 0x464102
mov eax, dword [esp]
lea ecx, [ebx + 1]
movzx eax, byte [eax + ebx]
cmp al, byte [esi + ebx]
je 0x463760
mov esi, edx
mov edx, dword [esp + 0x10]
mov dword [esp + 4], 0
sub esi, dword [esp + 0x14]
lea esi, [esi + ebx + 1]
mov ebx, dword [esp + 0xc]
jmp 0x4636fc
mov esi, edx
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0xc]
nop
cmp dword [esp + 4], ecx
jae 0x46381e
dec ecx
cmp ecx, dword [esp + 8]
jae 0x464167
lea edi, [ecx + esi]
cmp edi, edx
jae 0x46413e
mov eax, dword [esp]
movzx eax, byte [eax + ecx]
cmp al, byte [ebx + edi]
je 0x4637b0
mov eax, dword [esp + 0x28]
add esi, dword [esp + 0x2c]
mov dword [esp + 4], eax
jmp 0x4636fc
lea esi, [esp + 0x78]
lea edi, [esp + 0x38]
nop word cs:[eax + eax]
nop dword [eax + eax]
mov ecx, esi
mov edx, edi
call fcn.00462160
mov eax, dword [esp + 0x78]
cmp eax, 1
je 0x463800
test eax, eax
jne 0x463a48
mov esi, dword [esp + 0x7c]
mov edx, dword [ebp + 8]
mov ecx, dword [esp + 0x18]
mov dword [esp], esi
add esi, 6
mov ebx, edx
je 0x46399c
mov ebx, edx
sub ebx, esi
jbe 0x463996
cmp byte [ecx + esi], 0xbf
jg 0x46399c
push 0x5021e8
push edx
push esi
call fcn.00412810
mov esi, dword [esp + 0x54]
lea ecx, [esi + eax]
cmp ecx, edx
jae 0x463a48
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
mov edi, dword [esp + 0x40]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x14], edx
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], eax
mov eax, dword [esp + 8]
cmp edx, eax
cmova eax, edx
mov dword [esp + 4], eax
lea eax, [edx - 1]
mov dword [esp + 0x20], eax
mov eax, dword [esp]
lea eax, [eax + edx - 1]
mov dword [esp + 0x2c], eax
jmp 0x4638c9
mov esi, edx
add esi, dword [esp + 8]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
lea ecx, [esi + eax]
cmp ecx, edx
jae 0x463a48
movzx ecx, byte [ebx + ecx]
mov edx, esi
xor eax, eax
mov esi, 1
shld eax, esi, cl
shl esi, cl
test cl, 0x20
mov ecx, 0
cmovne eax, esi
cmovne esi, ecx
and eax, dword [esp + 0x30]
and esi, edi
or esi, eax
je 0x4638b0
mov eax, dword [esp + 0x14]
mov esi, edx
lea ecx, [ebx + edx]
nop dword [eax]
cmp dword [esp + 4], eax
je 0x46393a
mov edi, eax
add eax, esi
cmp eax, dword [esp + 0x10]
jae 0x46411b
mov esi, dword [esp]
lea eax, [edi + 1]
movzx ebx, byte [esi + edi]
mov esi, edx
cmp bl, byte [ecx + edi]
mov ebx, dword [esp + 0xc]
je 0x463900
sub esi, dword [esp + 0x14]
lea esi, [esi + edi + 1]
mov edi, dword [esp + 0x24]
jmp 0x4638b6
mov eax, dword [esp + 0x20]
cmp eax, dword [esp + 8]
jae 0x464158
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x14]
lea ecx, [eax + esi]
nop word cs:[eax + eax]
nop dword [eax]
sub ebx, 1
jb 0x46381e
cmp ecx, dword [esp + 0x10]
jae 0x46414a
movzx eax, byte [edi]
mov esi, dword [esp + 0xc]
dec edi
cmp al, byte [esi + ecx]
mov esi, edx
lea ecx, [ecx - 1]
je 0x463960
add esi, dword [esp + 0x28]
mov ebx, dword [esp + 0xc]
mov edi, dword [esp + 0x24]
jmp 0x4638b6
jne 0x463847
add esi, ecx
add ebx, esi
cmp esi, ebx
je 0x463ac4
movzx edx, byte [esi]
test dl, dl
js 0x4639c0
inc esi
jmp 0x463a30
movzx ecx, byte [esi + 1]
mov edi, edx
and edi, 0x1f
and ecx, 0x3f
cmp dl, 0xdf
jbe 0x463a0b
mov eax, ebx
movzx ebx, byte [esi + 2]
shl ecx, 6
and ebx, 0x3f
or ebx, ecx
cmp dl, 0xf0
jb 0x463a17
movzx edx, byte [esi + 3]
and edi, 7
shl ebx, 6
shl edi, 0x12
and edx, 0x3f
or edx, ebx
or edx, edi
cmp edx, 0x110000
je 0x463ac4
mov ebx, eax
add esi, 4
jmp 0x463a30
shl edi, 6
add esi, 2
or edi, ecx
mov edx, edi
jmp 0x463a30
shl edi, 0xc
add esi, 3
or ebx, edi
mov edx, ebx
mov ebx, eax
nop word cs:[eax + eax]
nop dword [eax]
lea eax, [edx - 0x40]
cmp eax, 7
jb 0x4639a0
add edx, 0xffffffd0
cmp edx, 0xa
jb 0x4639a0
mov ecx, dword [esp + 0x18]
mov edx, dword [ebp + 8]
cmp edx, 3
jae 0x463a81
cmp edx, 2
mov edx, 2
jne 0x4640f4
movzx eax, word [ecx]
cmp eax, 0x4e5a
jne 0x463c71
xor edi, edi
mov esi, 2
mov ebx, 2
jmp 0x463b25
movzx eax, word [ecx]
mov esi, edx
movzx edx, byte [ecx + 2]
xor eax, 0x5a5f
xor edx, 0x4e
or dx, ax
je 0x463aef
movzx eax, word [ecx]
mov edx, esi
cmp eax, 0x4e5a
je 0x463b0a
mov esi, 3
cmp edx, 4
jb 0x463c21
cmp dword [ecx], 0x4e5a5f5f
je 0x463bbb
mov esi, edx
jmp 0x463c21
mov eax, dword [esp]
test eax, eax
je 0x4640b3
mov edx, dword [ebp + 8]
cmp eax, edx
jae 0x463b5e
mov ecx, dword [esp + 0x18]
cmp byte [ecx + eax], 0xbf
jle 0x463b68
mov edx, eax
jmp 0x463a4f
xor edi, edi
mov ebx, 3
cmp esi, 4
jb 0x463b20
cmp byte [ecx + 3], 0xbf
jle 0x4641be
lea edi, [esi - 3]
jmp 0x463b25
cmp byte [ecx + 2], 0xbf
jle 0x4641b1
lea edi, [edx - 2]
mov ebx, 2
mov esi, edx
jmp 0x463b25
mov esi, 3
add ebx, ecx
lea eax, [ebx + edi]
mov dword [esp + 0x10], eax
xor eax, eax
cmp edi, eax
je 0x463b42
cmp byte [ebx + eax], 0
lea eax, [eax + 1]
jns 0x463b30
jmp 0x463c18
test edi, edi
je 0x463c18
movzx eax, byte [ebx]
test al, al
js 0x463b75
lea ecx, [ebx + 1]
mov edx, eax
mov dword [esp], ecx
jmp 0x463c03
mov ecx, dword [esp + 0x18]
je 0x463a4f
push 0x5021f8
push eax
push 0
call fcn.00412810
mov ecx, ebx
movzx ebx, byte [ebx + 1]
mov edx, eax
and edx, 0x1f
and ebx, 0x3f
cmp al, 0xdf
jbe 0x463bdb
mov dword [esp + 4], ecx
movzx ecx, byte [ecx + 2]
shl ebx, 6
and ecx, 0x3f
or ecx, ebx
cmp al, 0xf0
jb 0x463bf4
mov ebx, dword [esp + 4]
and edx, 7
shl ecx, 6
shl edx, 0x12
lea eax, [ebx + 4]
mov dword [esp], eax
movzx eax, byte [ebx + 3]
and eax, 0x3f
or eax, ecx
or edx, eax
jmp 0x463c03
xor edi, edi
mov ebx, 4
cmp edx, 5
jb 0x463bea
cmp byte [ecx + 4], 0xbf
jle 0x4641e4
lea edi, [edx - 4]
mov esi, edx
jmp 0x463b25
shl edx, 6
lea eax, [ecx + 2]
or edx, ebx
mov dword [esp], eax
mov ebx, ecx
jmp 0x463c03
mov esi, 4
jmp 0x463b25
mov ebx, dword [esp + 4]
shl edx, 0xc
or edx, ecx
lea eax, [ebx + 3]
mov dword [esp], eax
cmp edx, 0x45
je 0x463ddc
cmp edx, 0x110000
jne 0x463df0
mov ecx, dword [esp + 0x18]
cmp esi, 3
jb 0x463c71
movzx eax, word [ecx]
cmp eax, 0x525f
je 0x463c9a
cmp byte [ecx], 0x52
je 0x463c84
mov edx, 2
cmp esi, 3
jbe 0x4640f4
movzx eax, word [ecx]
movzx edx, byte [ecx + 2]
xor eax, 0x5f5f
xor edx, 0x52
or dx, ax
mov edx, 2
jne 0x4640f4
movzx eax, byte [ecx + 3]
cmp al, 0xbf
jle 0x4641db
lea edi, [ecx + 3]
mov ecx, 0xfffffffd
jmp 0x463cae
cmp byte [ecx], 0x52
mov esi, 2
mov edx, 2
jne 0x4640f4
movzx eax, byte [ecx + 1]
cmp al, 0xbf
jle 0x464175
lea edi, [ecx + 1]
mov ecx, 0xffffffff
jmp 0x463cae
movzx eax, byte [ecx + 2]
cmp al, 0xbf
jle 0x464184
lea edi, [ecx + 2]
mov ecx, 0xfffffffe
add al, 0xbf
mov edx, 2
cmp al, 0x19
ja 0x4640f4
add ecx, esi
xor eax, eax
nop word cs:[eax + eax]
nop dword [eax + eax]
cmp ecx, eax
je 0x463ce2
cmp byte [edi + eax], 0
lea eax, [eax + 1]
jns 0x463cd0
jmp 0x4640f4
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0x38]
xor edx, edx
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
call fcn.0045ebf0
test al, al
jne 0x464193
mov ebx, dword [esp + 0x38]
test ebx, ebx
je 0x4640b3
movzx ecx, byte [esp + 0x3f]
movzx edx, word [esp + 0x3d]
movzx eax, byte [esp + 0x3c]
movq xmm0, qword [esp + 0x40]
shl ecx, 0x10
or edx, ecx
shl edx, 8
or edx, eax
movd eax, xmm0
cmp eax, edx
jae 0x463fa9
movzx ecx, byte [ebx + eax]
mov dword [esp + 0xc], esi
add cl, 0xbf
cmp cl, 0x1a
jae 0x463fa5
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], edx
lea ecx, [esp + 0x38]
xor edx, edx
movq qword [esp + 0x40], xmm0
mov dword [esp + 0x48], 0
mov esi, ebx
mov dword [esp + 0x4c], 0
call fcn.0045ebf0
test al, al
jne 0x464193
mov ebx, dword [esp + 0x38]
mov ecx, dword [esp + 0xc]
mov edx, 2
test ebx, ebx
je 0x4640f4
movzx edx, byte [esp + 0x3c]
movzx esi, byte [esp + 0x3f]
mov eax, dword [esp + 0x40]
mov dword [esp], edx
movzx edx, word [esp + 0x3d]
shl esi, 0x10
or edx, esi
mov esi, ecx
shl edx, 8
add edx, dword [esp]
jmp 0x463fa9
xor eax, eax
mov dword [esp + 0x1c], eax
mov edx, dword [esp]
mov eax, dword [esp + 0x10]
sub eax, edx
jmp 0x463fd0
xor eax, eax
mov dword [esp + 4], ebx
mov dword [esp + 0xc], esi
lea ecx, [edx - 0x30]
mov dword [esp + 0x1c], eax
cmp ecx, 9
ja 0x463c18
xor eax, eax
jmp 0x463e26
inc esi
mov edx, ecx
mov dword [esp], esi
mov esi, dword [esp + 0xc]
cmp edx, 0x110000
je 0x463c18
lea ecx, [edx - 0x30]
cmp ecx, 0xa
jae 0x463ed3
mov edx, 0xa
mul edx
seto dl
add eax, ecx
setb cl
test dl, dl
jne 0x463c18
test cl, cl
jne 0x463c18
mov ecx, dword [esp + 0x10]
cmp dword [esp], ecx
je 0x463c18
mov esi, dword [esp]
movzx ecx, byte [esi]
test cl, cl
jns 0x463e10
movzx ebx, byte [esi + 1]
mov edx, ecx
and edx, 0x1f
and ebx, 0x3f
cmp cl, 0xdf
jbe 0x463eb0
mov dword [esp + 8], edx
movzx edx, byte [esi + 2]
shl ebx, 6
and edx, 0x3f
or edx, ebx
cmp cl, 0xf0
mov ebx, edx
jb 0x463ebb
movzx ecx, byte [esi + 3]
mov edx, dword [esp + 8]
shl ebx, 6
add esi, 4
mov dword [esp], esi
and edx, 7
and ecx, 0x3f
shl edx, 0x12
or ecx, ebx
or edx, ecx
jmp 0x463eca
shl edx, 6
add esi, 2
mov dword [esp], esi
jmp 0x463ec8
mov edx, dword [esp + 8]
add esi, 3
mov dword [esp], esi
shl edx, 0xc
or edx, ebx
mov ebx, dword [esp + 4]
jmp 0x463e16
test eax, eax
je 0x463f92
mov ecx, dword [esp + 0x10]
cmp dword [esp], ecx
je 0x463c18
mov esi, dword [esp]
movzx edx, byte [esi]
test dl, dl
js 0x463efb
inc esi
mov dword [esp], esi
jmp 0x463f87
movzx ebx, byte [esi + 1]
mov ecx, edx
and ecx, 0x1f
and ebx, 0x3f
cmp dl, 0xdf
jbe 0x463f5f
mov dword [esp + 0x14], ecx
movzx ecx, byte [esi + 2]
shl ebx, 6
mov dword [esp + 8], ecx
and dword [esp + 8], 0x3f
add dword [esp + 8], ebx
cmp dl, 0xf0
mov ebx, dword [esp + 8]
jb 0x463f72
movzx edx, byte [esi + 3]
mov ecx, dword [esp + 0x14]
shl ebx, 6
mov esi, dword [esp + 0xc]
and edx, 0x3f
and ecx, 7
or edx, ebx
mov ebx, dword [esp + 4]
shl ecx, 0x12
or edx, ecx
cmp edx, 0x110000
je 0x463c18
add dword [esp], 4
jmp 0x463f8b
shl ecx, 6
add esi, 2
or ecx, ebx
mov ebx, dword [esp + 4]
mov dword [esp], esi
mov edx, ecx
jmp 0x463f87
mov ecx, dword [esp + 0x14]
add esi, 3
mov dword [esp], esi
shl ecx, 0xc
or ebx, ecx
mov edx, ebx
mov ebx, dword [esp + 4]
mov esi, dword [esp + 0xc]
dec eax
jne 0x463edb
mov eax, dword [esp + 0x1c]
inc eax
cmp edx, 0x45
jne 0x463dfa
jmp 0x463dde
mov esi, dword [esp + 0xc]
test eax, eax
je 0x463fbe
mov ecx, edx
sub ecx, eax
jbe 0x463fc2
cmp byte [ebx + eax], 0xbf
jg 0x463fc8
jmp 0x4641cd
mov ecx, edx
jmp 0x463fc8
jne 0x4641cd
mov edx, ebx
xor ebx, ebx
add edx, eax
mov eax, ecx
mov ecx, dword [esp + 0x18]
test eax, eax
je 0x4640ba
cmp byte [edx], 0x2e
jne 0x4640b3
mov dword [esp + 0x10], eax
add eax, edx
mov dword [esp], edx
mov dword [esp + 0xc], esi
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov al, 0x2e
test al, al
jns 0x464070
movzx esi, byte [edx + 1]
mov ecx, eax
and cl, 0x1f
movzx ecx, cl
and esi, 0x3f
cmp al, 0xdf
jbe 0x46404b
movzx ebx, byte [edx + 2]
shl esi, 6
and ebx, 0x3f
or ebx, esi
cmp al, 0xf0
jb 0x46405b
movzx eax, byte [edx + 3]
and ecx, 7
shl ebx, 6
mov esi, dword [esp + 0xc]
shl ecx, 0x12
and eax, 0x3f
or eax, ebx
or eax, ecx
cmp eax, 0x110000
je 0x464134
add edx, 4
jmp 0x464069
shl ecx, 6
add edx, 2
or ecx, esi
mov esi, dword [esp + 0xc]
mov eax, ecx
jmp 0x464074
mov esi, dword [esp + 0xc]
shl ecx, 0xc
add edx, 3
or ebx, ecx
mov eax, ebx
mov ebx, dword [esp + 4]
jmp 0x464074
inc edx
movzx eax, al
lea ecx, [eax - 0x21]
cmp ecx, 0x19
jb 0x464099
mov ecx, eax
and ecx, 0xffffffdf
add ecx, 0xffffffbf
cmp ecx, 0x1a
jb 0x464099
lea ecx, [eax - 0x3a]
cmp ecx, 7
jb 0x464099
lea ecx, [eax - 0x5b]
cmp ecx, 6
jae 0x4640ab
cmp edx, dword [esp + 8]
je 0x4640c7
movzx eax, byte [edx]
test al, al
jns 0x464070
jmp 0x464000
add eax, 0xffffff81
cmp eax, 0xfffffffc
jae 0x464099
mov edx, 2
jmp 0x4640f4
mov dword [esp], edx
mov dword [esp + 0x10], 0
jmp 0x4640cb
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x1c]
mov dword [eax + 4], ebx
mov dword [eax + 8], edi
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], esi
mov esi, dword [esp]
mov edx, dword [esp + 0x10]
mov dword [eax + 0x18], esi
mov dword [eax + 0x1c], edx
mov edx, 1
mov eax, dword [esp + 0x34]
mov dword [eax], edx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [esp + 0x20]
add ecx, edx
mov edx, dword [esp + 0x10]
cmp edx, ecx
cmova ecx, edx
push 0x5025dc
call fcn.0040cf20
add esi, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
cmp edx, esi
cmova esi, edx
mov ecx, esi
push 0x5025dc
call fcn.0040cf20
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 4]
jmp 0x4640cb
mov ecx, edi
push 0x5025cc
call fcn.0040cf20
mov edx, dword [esp + 0x10]
push 0x5025cc
call fcn.0040cf20
cmp dword [esp + 0x14], 0
je 0x46381e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
push 0x5025bc
call fcn.0040cf20
mov edx, esi
push 0x501f08
push esi
push 1
call fcn.00412810
mov edx, esi
push 0x501f18
push esi
push 2
call fcn.00412810
lea eax, [esp + 0x78]
mov ecx, str._fmt::Error_s_should_be_impossible_without_a__fmt::Formatter_
mov edx, 0x3d
push 0x501f68
push 0x501cb4
push eax
call fcn.00410e30
push 0x501d8c
push edx
push 2
call fcn.00412810
mov edx, esi
push 0x501d9c
push esi
push 3
call fcn.00412810
mov ecx, ebx
push 0x501f78
push edx
push eax
call fcn.00412810
mov edx, esi
push 0x501ef8
jmp 0x4641c5
push 0x501d7c
push edx
push 4
call fcn.00412810
nop word cs:[eax + eax]
nop dword [eax + eax]
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x54
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
mov eax, dword [eax]
mov ecx, dword [eax]
test ecx, ecx
mov dword [ebp - 0x4c], ecx
je 0x464ac1
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x48], eax
jmp 0x46425d
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0x18]
push dword [ebp - 0x20]
push dword [ebp - 0x10]
push dword [ecx + 0x14]
call dword [eax + 0xc]
add esp, 0xc
test al, al
jne 0x464b02
mov eax, dword [ebp - 0x28]
cmp eax, dword [ebp - 0x48]
mov dword [ebp - 0x18], eax
setne al
mov dword [ebp - 0x1c], eax
je 0x464b02
cmp dword [ebp - 0x24], 0
mov ebx, dword [ebp - 0x4c]
je 0x464b0d
mov eax, dword [ebp - 0x18]
movzx ecx, byte [ebx]
mov edi, dword [ebp - 0x24]
inc eax
mov dword [ebp - 0x28], eax
xor eax, eax
test cl, cl
jns 0x464330
jmp 0x4642bd
cmp edi, 2
jb 0x464b0d
movzx ecx, byte [ebx + eax + 1]
cmp cl, 0xbf
jle 0x464b21
dec edi
inc eax
test cl, cl
jns 0x464330
mov dword [ebp - 0x14], edi
movzx edi, byte [ebx + eax + 1]
mov edx, ecx
and dl, 0x1f
movzx edx, dl
and edi, 0x3f
cmp cl, 0xdf
jbe 0x464310
movzx esi, byte [ebx + eax + 2]
shl edi, 6
and esi, 0x3f
or esi, edi
cmp cl, 0xf0
jb 0x464320
movzx ecx, byte [ebx + eax + 3]
and edx, 7
shl esi, 6
mov edi, dword [ebp - 0x14]
shl edx, 0x12
and ecx, 0x3f
or ecx, esi
or ecx, edx
cmp ecx, 0x110000
jne 0x464333
jmp 0x464b0d
shl edx, 6
or edx, edi
mov edi, dword [ebp - 0x14]
mov ecx, edx
jmp 0x464333
mov edi, dword [ebp - 0x14]
shl edx, 0xc
or esi, edx
mov ecx, esi
jmp 0x464333
movzx ecx, cl
add ecx, 0xffffffd0
lea esi, [ebx + eax]
cmp ecx, 9
jbe 0x4642a0
mov eax, dword [ebp - 0x24]
sub eax, edi
je 0x464359
jb 0x464b3f
cmp byte [ebx + eax], 0xbf
jle 0x464b3f
lea ecx, [ebp - 0x44]
mov edx, ebx
push eax
call fcn.00415230
add esp, 4
cmp byte [ebp - 0x44], 0
jne 0x464b51
mov ecx, dword [ebp - 0x40]
test ecx, ecx
je 0x464390
mov eax, edi
sub eax, ecx
mov dword [ebp - 0x24], eax
jbe 0x4643b0
cmp byte [esi + ecx], 0xbf
jg 0x4643bf
jmp 0x464b8c
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x24], edi
cmp dword [ebp - 0x18], 0
jne 0x4644c6
jmp 0x4644e5
cmp edi, ecx
mov dword [ebp - 0x24], 0
jne 0x464b8c
mov eax, dword [ebp - 0x28]
cmp eax, dword [ebp - 0x48]
jne 0x464aaf
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebx + 0x1c]
and eax, 4
je 0x4644c0
cmp byte [esi], 0x68
jne 0x4644c0
mov eax, ecx
xor ecx, ecx
cmp eax, 2
mov dword [ebp - 0x10], eax
jb 0x4643ff
cmp byte [esi + 1], 0xbf
jle 0x464bf3
mov eax, dword [ebp - 0x10]
lea ecx, [eax - 1]
lea edi, [esi + ecx + 1]
lea eax, [esi + 1]
mov dword [ebp - 0x14], edi
nop dword [eax]
cmp eax, edi
je 0x464af4
movzx edx, byte [eax]
test dl, dl
js 0x464430
inc eax
jmp 0x464493
movzx ecx, byte [eax + 1]
mov edi, edx
and edi, 0x1f
and ecx, 0x3f
cmp dl, 0xdf
jbe 0x464477
movzx ebx, byte [eax + 2]
shl ecx, 6
and ebx, 0x3f
or ebx, ecx
cmp dl, 0xf0
jb 0x464483
movzx edx, byte [eax + 3]
and edi, 7
shl ebx, 6
shl edi, 0x12
and edx, 0x3f
or edx, ebx
or edx, edi
cmp edx, 0x110000
je 0x464af4
add eax, 4
jmp 0x46448d
shl edi, 6
add eax, 2
or edi, ecx
mov edx, edi
jmp 0x464490
shl edi, 0xc
add eax, 3
or ebx, edi
mov edx, ebx
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebp - 0x14]
lea ecx, [edx - 0x30]
cmp ecx, 0xa
jb 0x464410
or edx, 0x20
add edx, 0xffffff9f
cmp edx, 6
jb 0x464410
mov ecx, dword [ebp - 0x10]
nop word cs:[eax + eax]
nop dword [eax + eax]
cmp dword [ebp - 0x18], 0
je 0x4644e5
mov eax, dword [ebx + 0x18]
push 2
push str.::__M
push dword [ebx + 0x14]
mov edi, ecx
call dword [eax + 0xc]
mov ecx, edi
add esp, 0xc
test al, al
jne 0x464b02
cmp ecx, 2
mov edx, ecx
mov edi, esi
jb 0x464510
movzx eax, word [esi]
mov edx, ecx
mov edi, esi
cmp eax, 0x245f
jne 0x464510
cmp byte [esi + 1], 0xbf
jle 0x464bd7
lea edi, [esi + 1]
lea edx, [ecx - 1]
nop dword [eax]
add esi, ecx
mov dword [ebp - 0x4c], esi
mov ecx, edi
test edx, edx
je 0x464590
movzx eax, byte [ecx]
cmp eax, 0x24
je 0x4646a0
cmp eax, 0x2e
jne 0x464590
cmp edx, 2
jb 0x464796
movzx eax, byte [ecx + 1]
cmp al, 0xbf
jle 0x464bbd
test al, al
mov dword [ebp - 0x10], ecx
jns 0x46498a
movzx esi, byte [ecx + 2]
mov edi, eax
and edi, 0x1f
and esi, 0x3f
cmp al, 0xdf
jbe 0x46496d
mov dword [ebp - 0x20], edx
movzx edx, byte [ecx + 3]
shl esi, 6
and edx, 0x3f
or edx, esi
cmp al, 0xf0
jb 0x464980
movzx eax, byte [ecx + 4]
and edi, 7
shl edx, 6
shl edi, 0x12
and eax, 0x3f
or eax, edx
or eax, edi
jmp 0x464987
lea ebx, [ecx + edx]
xor eax, eax
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x18], ebx
nop
cmp ecx, ebx
je 0x464240
movzx edx, byte [ecx]
mov esi, eax
test dl, dl
js 0x4645c0
lea edi, [ecx + 1]
jmp 0x46462c
mov dword [ebp - 0x14], esi
movzx esi, byte [ecx + 1]
mov ebx, edx
and ebx, 0x1f
and esi, 0x3f
cmp dl, 0xdf
jbe 0x464610
movzx eax, byte [ecx + 2]
shl esi, 6
and eax, 0x3f
or eax, esi
cmp dl, 0xf0
jb 0x46461c
movzx edx, byte [ecx + 3]
and ebx, 7
shl eax, 6
mov esi, dword [ebp - 0x14]
shl ebx, 0x12
and edx, 0x3f
or edx, eax
or edx, ebx
mov ebx, dword [ebp - 0x18]
cmp edx, 0x110000
je 0x464240
lea edi, [ecx + 4]
jmp 0x46462c
shl ebx, 6
lea edi, [ecx + 2]
or ebx, esi
mov edx, ebx
jmp 0x464626
shl ebx, 0xc
lea edi, [ecx + 3]
or eax, ebx
mov edx, eax
mov esi, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x18]
cmp edx, 0x24
je 0x464642
mov eax, esi
sub eax, ecx
mov ecx, edi
add eax, edi
cmp edx, 0x2e
jne 0x4645a0
test esi, esi
je 0x464738
mov ebx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x10]
sub ebx, esi
jbe 0x46475b
cmp byte [edi + esi], 0xbf
jle 0x464b75
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0x18]
push esi
push edi
push dword [edx + 0x14]
call dword [eax + 0xc]
add esp, 0xc
test al, al
jne 0x464afd
cmp byte [edi + esi], 0xc0
mov dword [ebp - 0x14], esi
jl 0x464baa
mov eax, ebx
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebp - 0x14]
jmp 0x46478d
xor eax, eax
cmp edx, 2
jb 0x4646b4
cmp byte [ecx + 1], 0xbf
jle 0x464bc4
lea eax, [edx - 1]
mov dword [ebp - 0x10], ecx
inc ecx
mov dword [ebp - 0x20], edx
lea edx, [ebp - 0x44]
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x18], ecx
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x44], 0x24
mov dword [ebp - 0x30], 1
mov dword [ebp - 0x2c], 0x24
call fcn.0045e9a0
cmp dword [ebp - 0x60], 0
je 0x464240
mov esi, dword [ebp - 0x5c]
cmp esi, 0xffffffff
je 0x464b87
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x10]
lea eax, [esi + 1]
cmp edx, 2
jb 0x46471e
mov edi, dword [ebp - 0x18]
cmp byte [edi], 0xc0
jl 0x464b32
cmp eax, edx
jae 0x4647bb
cmp byte [ecx + eax], 0xc0
jl 0x464b32
lea edi, [esi + 2]
jmp 0x4647cd
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebx + 0x18]
push 0
mov edi, dword [ebp - 0x10]
push edi
push dword [ebx + 0x14]
call dword [eax + 0xc]
add esp, 0xc
xor esi, esi
test al, al
mov eax, dword [ebp - 0x20]
je 0x46478d
jmp 0x464afd
jne 0x464b75
test edi, edi
je 0x464b75
mov edx, dword [ebp + 0xc]
mov esi, dword [ebp - 0x20]
mov eax, dword [edx + 0x18]
push esi
push edi
push dword [edx + 0x14]
call dword [eax + 0xc]
add esp, 0xc
test al, al
jne 0x464afd
mov eax, ebx
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebp - 0x10]
add edi, esi
mov edx, eax
jmp 0x464515
mov eax, dword [ebx + 0x18]
push 1
push 0x505c51
push dword [ebx + 0x14]
mov edi, ecx
call dword [eax + 0xc]
add esp, 0xc
xor edx, edx
test al, al
jne 0x464afd
inc edi
jmp 0x464515
jne 0x464b32
mov edi, esi
mov eax, ecx
mov dword [ebp - 0x14], edx
add edi, 2
je 0x46480d
mov edx, dword [ebp - 0x20]
mov eax, edx
sub eax, edi
mov dword [ebp - 0x14], eax
jbe 0x4647e7
mov ecx, dword [ebp - 0x10]
cmp byte [ecx + edi], 0xc0
jge 0x4647f0
jmp 0x464b9e
mov ecx, dword [ebp - 0x10]
jne 0x464b9e
mov ebx, dword [ebp + 0xc]
add edi, ecx
cmp esi, 1
je 0x46482c
cmp esi, 2
je 0x4648ff
test esi, esi
mov eax, edi
je 0x464240
mov ecx, dword [ebp - 0x10]
cmp byte [ecx + 1], 0x75
jne 0x464240
mov ecx, dword [ebp - 0x10]
cmp byte [ecx + 2], 0xbf
jle 0x464bcb
dec esi
mov edi, eax
jmp 0x46484b
mov eax, dword [ebp - 0x18]
movzx ecx, byte [eax]
mov eax, str._____
cmp ecx, 0x43
je 0x464a93
xor esi, esi
cmp ecx, 0x75
jne 0x464240
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x54], esi
mov dword [ebp - 0x18], edi
lea ecx, [eax + 2]
lea edx, [eax + esi + 2]
mov esi, ecx
mov dword [ebp - 0x50], ecx
cmp esi, edx
je 0x464a0b
movzx eax, byte [esi]
test al, al
js 0x464880
inc esi
jmp 0x4648e0
movzx ecx, byte [esi + 1]
mov ebx, eax
and ebx, 0x1f
and ecx, 0x3f
cmp al, 0xdf
jbe 0x4648c7
movzx edi, byte [esi + 2]
shl ecx, 6
and edi, 0x3f
or edi, ecx
cmp al, 0xf0
jb 0x4648d3
movzx eax, byte [esi + 3]
and ebx, 7
shl edi, 6
shl ebx, 0x12
and eax, 0x3f
or eax, edi
or eax, ebx
cmp eax, 0x110000
je 0x464a08
mov edi, dword [ebp - 0x18]
add esi, 4
jmp 0x4648e0
shl ebx, 6
add esi, 2
or ebx, ecx
mov eax, ebx
jmp 0x4648e0
shl ebx, 0xc
add esi, 3
or edi, ebx
mov eax, edi
mov edi, dword [ebp - 0x18]
lea ecx, [eax - 0x30]
cmp ecx, 0xa
jb 0x464860
add eax, 0xffffff9f
cmp eax, 6
jb 0x464860
mov bl, 1
jmp 0x464a0d
mov ecx, dword [ebp - 0x18]
movzx eax, word [ecx]
cmp eax, 0x5053
je 0x464963
movzx eax, word [ecx]
cmp eax, 0x5042
je 0x464976
movzx eax, word [ecx]
cmp eax, 0x4652
je 0x4649fe
movzx eax, word [ecx]
cmp eax, 0x544c
je 0x464a79
movzx eax, word [ecx]
cmp eax, 0x5447
je 0x464a80
movzx eax, word [ecx]
cmp eax, 0x504c
je 0x464a87
movzx eax, word [ecx]
cmp eax, 0x5052
je 0x464a8e
mov eax, edi
jmp 0x46480d
mov eax, 0x501e96
jmp 0x464a93
shl edi, 6
or edi, esi
mov eax, edi
jmp 0x46498a
mov eax, 0x501e95
jmp 0x464a93
shl edi, 0xc
or edx, edi
mov eax, edx
mov edx, dword [ebp - 0x20]
mov esi, edx
cmp eax, 0x2e
jne 0x4649cd
mov eax, dword [ebx + 0x18]
push 2
push str.::__M
push dword [ebx + 0x14]
call dword [eax + 0xc]
add esp, 0xc
test al, al
jne 0x464afd
mov edi, dword [ebp - 0x10]
xor edx, edx
cmp esi, 3
jb 0x4649c5
cmp byte [edi + 2], 0xc0
jl 0x464c05
add esi, 0xfffffffe
mov edx, esi
add edi, 2
jmp 0x464515
mov eax, dword [ebx + 0x18]
push 1
push 0x505c51
push dword [ebx + 0x14]
call dword [eax + 0xc]
add esp, 0xc
test al, al
jne 0x464afd
mov edi, dword [ebp - 0x10]
cmp byte [edi + 1], 0xc0
jl 0x464be2
dec esi
inc edi
mov edx, esi
jmp 0x464515
mov eax, 0x501e94
jmp 0x464a93
mov edi, dword [ebp - 0x18]
xor ebx, ebx
mov edx, dword [ebp - 0x50]
lea ecx, [ebp - 0x44]
push 0x10
push dword [ebp - 0x54]
call fcn.00414f10
add esp, 8
cmp byte [ebp - 0x44], 0
jne 0x464240
mov ecx, dword [ebp - 0x40]
mov eax, ecx
xor eax, 0xd800
add eax, 0xffef0000
cmp eax, 0xffef0800
mov eax, 0x110000
cmovb ecx, eax
cmp ecx, 0x110000
sete al
or bl, al
jne 0x464240
mov dword [ebp - 0x44], ecx
call fcn.00417830
test al, al
jne 0x464240
mov ebx, dword [ebp + 0xc]
push ebx
lea eax, [ebp - 0x44]
push eax
call fcn.00412f70
add esp, 8
jmp 0x464aa2
mov eax, 0x501e93
jmp 0x464a93
mov eax, 0x501e92
jmp 0x464a93
mov eax, 0x501e91
jmp 0x464a93
mov eax, 0x508052
mov ecx, dword [ebx + 0x18]
push 1
push eax
push dword [ebx + 0x14]
call dword [ecx + 0xc]
add esp, 0xc
mov edx, dword [ebp - 0x14]
test al, al
je 0x464515
jmp 0x464afd
mov ebx, dword [ebp + 0xc]
cmp dword [ebp - 0x18], 0
jne 0x4644c6
jmp 0x4644e5
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], edx
lea ecx, [ebp - 0x44]
mov edx, 1
mov dword [ebp - 0x30], 0
call fcn.0045ebf0
jmp 0x464aff
mov dword [ebp - 0x1c], 0
jmp 0x464b02
mov al, 1
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
add esp, 0x54
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, 0x5063db
mov edx, 0x2b
push 0x501dbc
call fcn.0040db80
mov ecx, esi
mov edx, edi
push 0x501dcc
push edi
push 1
call fcn.00412810
push 0x501e50
push eax
push 1
call fcn.00412810
mov edx, dword [ebp - 0x24]
mov ecx, ebx
push 0x501ddc
push eax
push 0
call fcn.00412810
movzx eax, byte [ebp - 0x43]
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov edx, 0x2b
mov byte [ebp - 0x60], al
push 0x501dec
push 0x501cd4
lea eax, [ebp - 0x60]
push eax
call fcn.00410e30
mov edx, dword [ebp - 0x20]
mov ecx, edi
push 0x501e20
push esi
push 0
call fcn.00412810
call fcn.00413350
mov eax, ecx
mov ecx, esi
mov edx, edi
push 0x501dfc
push edi
push eax
call fcn.00412810
push 0x501e60
push edx
push edi
call fcn.00412810
mov edx, dword [ebp - 0x20]
mov ecx, edi
push 0x501e30
push edx
push dword [ebp - 0x14]
call fcn.00412810
push 0x501e98
jmp 0x464bfd
push 0x501e40
jmp 0x464bfd
mov ecx, dword [ebp - 0x18]
mov edx, esi
push 0x501e80
jmp 0x464beb
mov edx, ecx
mov ecx, esi
push 0x501e10
jmp 0x464bfd
mov ecx, edi
mov edx, esi
push 0x501eb8
push esi
push 1
call fcn.00412810
mov edx, dword [ebp - 0x10]
mov ecx, esi
push 0x501dac
push edx
push 1
call fcn.00412810
mov ecx, edi
mov edx, esi
push 0x501ea8
push esi
push 2
call fcn.00412810
nop word cs:[eax + eax]
push ebp
mov ebp, esp
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x18]
push 0x12
push str.SizeLimitExhausted
push dword [eax + 0x14]
call dword [ecx + 0xc]
add esp, 0xc
pop ebp
ret