Function at 0x10012280
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 + 8], edx
push 6
push str..llvm._rust_deps_rustc_demangle_0.1.24_src_lib.rs
push dword [ebp + 8]
call fcn.1000a540
add esp, 0xc
cmp dword [esp + 0x38], 0
je 0x10012440
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x68]
mov edi, dword [esp + 0x6c]
mov esi, dword [esp + 0x70]
mov dword [esp + 0x14], eax
dec eax
cmp ecx, 0xffffffff
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], edi
mov dword [esp + 0xc], edx
mov dword [esp], eax
je 0x1001249e
mov ebx, dword [esp + 0x54]
lea ecx, [ebx + eax]
cmp ecx, edi
jae 0x10012678
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x14]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x50]
sub esi, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], esi
jmp 0x1001234a
add ebx, dword [esp + 0x14]
mov dword [esp + 0x10], 0
mov eax, dword [esp]
lea ecx, [ebx + eax]
cmp ecx, edi
jae 0x10012678
movzx ecx, byte [edx + ecx]
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 + 0x2c]
and esi, dword [esp + 0x30]
or esi, eax
je 0x10012330
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 4]
mov edi, dword [esp + 0x14]
add edx, ebx
cmp ecx, eax
cmova eax, ecx
cmp eax, edi
mov ecx, eax
mov dword [esp + 0x28], eax
cmova edi, eax
nop word cs:[eax + eax]
nop dword [eax]
cmp edi, ecx
je 0x100123f0
mov eax, ecx
add ecx, ebx
mov esi, ebx
cmp ecx, dword [esp + 0x18]
jae 0x10012d28
mov ebx, dword [esp + 0x1c]
lea ecx, [eax + 1]
movzx ebx, byte [ebx + eax]
cmp bl, byte [edx + eax]
mov ebx, esi
je 0x100123a0
sub ebx, dword [esp + 4]
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0xc]
mov dword [esp + 0x10], 0
lea ebx, [ebx + eax + 1]
jmp 0x1001233c
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0xc]
nop dword [eax + eax]
cmp dword [esp + 0x10], ecx
jae 0x1001246e
dec ecx
cmp ecx, dword [esp + 0x14]
jae 0x10012d0d
lea edi, [ecx + ebx]
cmp edi, dword [esp + 0x18]
jae 0x10012d58
mov eax, dword [esp + 0x1c]
movzx eax, byte [eax + ecx]
cmp al, byte [edx + edi]
je 0x10012400
mov eax, dword [esp + 0x20]
add ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x10], eax
jmp 0x1001233c
lea ebx, [esp + 0x78]
lea edi, [esp + 0x38]
nop dword [eax + eax]
mov ecx, ebx
mov edx, edi
call fcn.10010d60
mov eax, dword [esp + 0x78]
cmp eax, 1
je 0x10012450
test eax, eax
jne 0x10012678
mov ebx, dword [esp + 0x7c]
mov ecx, dword [esp + 8]
mov edx, dword [ebp + 8]
mov esi, ebx
add esi, 6
je 0x100125c2
cmp esi, edx
jae 0x100125bc
cmp byte [ecx + esi], 0xbf
jg 0x100125c2
push 0x1007aa80
push edx
push esi
call fcn.10009c30
mov ebx, dword [esp + 0x54]
lea ecx, [ebx + eax]
cmp ecx, edi
jae 0x10012678
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x48]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 4], esi
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x14]
cmp esi, eax
cmova eax, esi
mov dword [esp + 0x10], eax
lea eax, [esi - 1]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x1c]
lea eax, [eax + esi - 1]
mov dword [esp + 0x24], eax
jmp 0x10012502
add ebx, dword [esp + 0x14]
mov eax, dword [esp]
lea ecx, [ebx + eax]
cmp ecx, edi
jae 0x10012678
movzx ecx, byte [edx + ecx]
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 + 0x2c]
and esi, dword [esp + 0x30]
or esi, eax
je 0x100124f0
mov eax, dword [esp + 4]
lea ecx, [edx + ebx]
nop word cs:[eax + eax]
nop dword [eax]
cmp dword [esp + 0x10], eax
je 0x10012574
mov esi, eax
add eax, ebx
mov edx, ebx
cmp eax, edi
jae 0x10012d41
mov ebx, dword [esp + 0x1c]
lea eax, [esi + 1]
movzx ebx, byte [ebx + esi]
cmp bl, byte [ecx + esi]
mov ebx, edx
mov edx, dword [esp + 0xc]
je 0x10012540
sub ebx, dword [esp + 4]
lea ebx, [ebx + esi + 1]
jmp 0x100124f4
mov ecx, dword [esp + 0x28]
cmp ecx, dword [esp + 0x14]
jae 0x10012d02
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 4]
add ecx, ebx
nop dword [eax]
sub edi, 1
jb 0x1001246e
cmp ecx, dword [esp + 0x18]
jae 0x10012d5a
movzx eax, byte [esi]
dec esi
cmp al, byte [edx + ecx]
lea ecx, [ecx - 1]
je 0x10012590
add ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
jmp 0x100124f4
jne 0x10012492
add esi, ecx
add ecx, edx
mov dword [esp + 0x1c], ebx
nop word [eax + eax]
cmp esi, ecx
je 0x100126f7
movzx edx, byte [esi]
test dl, dl
js 0x100125f0
inc esi
jmp 0x10012660
mov eax, ecx
movzx ecx, byte [esi + 1]
mov edi, edx
and edi, 0x1f
and ecx, 0x3f
cmp dl, 0xdf
jbe 0x1001263f
movzx ebx, byte [esi + 2]
shl ecx, 6
and ebx, 0x3f
or ebx, ecx
cmp dl, 0xf0
jb 0x1001264d
movzx edx, byte [esi + 3]
shl ebx, 6
and edi, 7
shl edi, 0x12
and edx, 0x3f
or edx, ebx
mov ebx, dword [esp + 0x1c]
or edx, edi
cmp edx, 0x110000
je 0x100126f7
mov ecx, eax
add esi, 4
jmp 0x10012660
shl edi, 6
add esi, 2
or edi, ecx
mov ecx, eax
mov edx, edi
jmp 0x10012660
shl edi, 0xc
add esi, 3
mov ecx, eax
or ebx, edi
mov edx, ebx
mov ebx, dword [esp + 0x1c]
nop dword [eax]
lea eax, [edx - 0x40]
cmp eax, 7
jb 0x100125d0
add edx, 0xffffffd0
cmp edx, 0xa
jb 0x100125d0
mov ecx, dword [esp + 8]
mov edx, dword [ebp + 8]
cmp edx, 3
jae 0x100126b4
mov esi, 2
cmp edx, 2
jne 0x10012cf4
movzx eax, word [ecx]
cmp eax, 0x4e5a
jne 0x10012801
mov eax, 0xfffffffe
mov ebx, 2
mov edx, 2
jmp 0x1001275d
movzx eax, word [ecx]
mov esi, edx
movzx edx, byte [ecx + 2]
xor eax, 0x5a5f
xor edx, 0x4e
or dx, ax
je 0x1001271b
movzx eax, word [ecx]
cmp eax, 0x4e5a
je 0x10012731
mov ebx, 3
cmp esi, 3
je 0x100127b6
cmp dword [ecx], 0x4e5a5f5f
mov edx, esi
je 0x10012b0c
mov ebx, edx
jmp 0x100127b6
test ebx, ebx
je 0x10012747
mov edx, dword [ebp + 8]
cmp ebx, edx
jae 0x10012951
mov ecx, dword [esp + 8]
cmp byte [ecx + ebx], 0xbf
jle 0x1001295b
mov edx, ebx
jmp 0x1001267f
mov eax, 0xfffffffd
mov edx, 3
cmp esi, 3
jne 0x10012751
mov ebx, 3
jmp 0x1001275d
cmp byte [ecx + 2], 0xbf
jle 0x10012da4
mov edx, 2
mov eax, 0xfffffffe
jmp 0x1001275b
mov esi, 2
jmp 0x10012cf4
cmp byte [ecx + 3], 0xbf
jle 0x10012db3
mov ebx, esi
add edx, ecx
add eax, ebx
lea esi, [edx + eax]
mov ecx, edx
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], edx
nop
test eax, eax
je 0x1001277f
dec eax
cmp byte [ecx], 0
lea ecx, [ecx + 1]
jns 0x10012770
jmp 0x100127ad
cmp dword [esp + 0x18], 0
je 0x100127ad
mov edi, dword [esp + 0x14]
movzx eax, byte [edi]
test al, al
js 0x10012968
inc edi
mov edx, eax
cmp edx, 0x45
je 0x10012cb2
cmp edx, 0x110000
jne 0x100129b1
mov ecx, dword [esp + 8]
cmp ebx, 3
jb 0x10012801
movzx eax, word [ecx]
cmp eax, 0x525f
je 0x10012828
cmp byte [ecx], 0x52
je 0x10012814
mov esi, 2
cmp ebx, 3
je 0x10012cf4
movzx eax, word [ecx]
movzx edx, byte [ecx + 2]
xor eax, 0x5f5f
xor edx, 0x52
or dx, ax
jne 0x10012cf4
movzx eax, byte [ecx + 3]
cmp al, 0xbf
jle 0x10012dc2
add ecx, 3
mov edx, 0xfffffffd
jmp 0x1001283c
cmp byte [ecx], 0x52
mov ebx, 2
mov esi, 2
jne 0x10012cf4
movzx eax, byte [ecx + 1]
cmp al, 0xbf
jle 0x10012d68
inc ecx
mov edx, 0xffffffff
jmp 0x1001283c
movzx eax, byte [ecx + 2]
cmp al, 0xbf
jle 0x10012d77
add ecx, 2
mov edx, 0xfffffffe
add al, 0xbf
mov esi, 2
cmp al, 0x19
ja 0x10012cf4
add edx, ebx
xor eax, eax
nop
cmp edx, eax
je 0x10012862
cmp byte [ecx + eax], 0
lea eax, [eax + 1]
jns 0x10012850
jmp 0x10012cf4
mov dword [esp + 0x38], ecx
mov dword [esp + 0x18], ecx
mov dword [esp + 4], edx
mov dword [esp + 0x3c], edx
pxor xmm0, xmm0
lea ecx, [esp + 0x38]
xor edx, edx
movq qword [esp + 0x40], xmm0
movq qword [esp + 0x48], xmm0
call fcn.1000d910
test al, al
jne 0x10012d86
mov eax, dword [esp + 0x38]
test eax, eax
je 0x10012cf4
movzx ecx, byte [esp + 0x3f]
movzx edx, word [esp + 0x3d]
mov dword [esp + 0x10], eax
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
mov edi, edx
cmp eax, edx
jae 0x10012b36
mov edx, dword [esp + 0x10]
movzx ecx, byte [edx + eax]
add cl, 0xbf
cmp cl, 0x1a
jae 0x10012b5d
mov dword [esp + 0x38], edx
lea ecx, [esp + 0x38]
xor edx, edx
mov dword [esp + 0x3c], edi
movq qword [esp + 0x40], xmm0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
call fcn.1000d910
test al, al
jne 0x10012d86
mov edi, dword [esp + 0x38]
test edi, edi
je 0x10012cf4
movzx edx, byte [esp + 0x3f]
movzx esi, word [esp + 0x3d]
movzx ecx, byte [esp + 0x3c]
mov eax, dword [esp + 0x40]
shl edx, 0x10
or esi, edx
mov edx, dword [esp + 8]
shl esi, 8
or esi, ecx
test eax, eax
jne 0x10012b6b
jmp 0x10012b87
mov ecx, dword [esp + 8]
je 0x1001267f
push 0x1007aa90
push ebx
push 0
call fcn.10009c30
mov dword [esp], esi
movzx esi, byte [edi + 1]
mov edx, eax
and edx, 0x1f
and esi, 0x3f
cmp al, 0xdf
jbe 0x10012b46
movzx ecx, byte [edi + 2]
shl esi, 6
and ecx, 0x3f
or ecx, esi
cmp al, 0xf0
jb 0x10012c9e
movzx eax, byte [edi + 3]
and edx, 7
shl ecx, 6
lea esi, [edi + 4]
shl edx, 0x12
mov edi, esi
and eax, 0x3f
or eax, ecx
or edx, eax
jmp 0x10012ca6
mov dword [esp + 4], 0
mov dword [esp + 0xc], ebx
mov dword [esp], esi
lea eax, [edx - 0x30]
cmp eax, 9
ja 0x100127ad
xor eax, eax
jmp 0x100129df
inc edi
mov edx, ecx
cmp edx, 0x110000
je 0x100127ad
lea ecx, [edx - 0x30]
cmp ecx, 0xa
jae 0x10012a6f
mov edx, 0xa
mul edx
jo 0x100127ad
add eax, ecx
jb 0x100127ad
cmp edi, esi
je 0x100127ad
movzx ecx, byte [edi]
test cl, cl
jns 0x100129d0
movzx ebx, byte [edi + 1]
mov edx, ecx
and edx, 0x1f
and ebx, 0x3f
cmp cl, 0xdf
jbe 0x10012a4a
movzx esi, byte [edi + 2]
shl ebx, 6
and esi, 0x3f
or esi, ebx
cmp cl, 0xf0
jb 0x10012a5b
movzx ecx, byte [edi + 3]
and edx, 7
shl esi, 6
add edi, 4
shl edx, 0x12
and ecx, 0x3f
or ecx, esi
or edx, ecx
jmp 0x10012a63
shl edx, 6
add edi, 2
or edx, ebx
mov ebx, dword [esp + 0xc]
jmp 0x100129d3
shl edx, 0xc
add edi, 3
or edx, esi
mov ebx, dword [esp + 0xc]
mov esi, dword [esp]
jmp 0x100129d3
test eax, eax
jne 0x10012a89
inc dword [esp + 4]
cmp edx, 0x45
jne 0x100129c0
jmp 0x10012cba
inc edi
dec eax
je 0x10012a73
cmp edi, esi
je 0x100127ad
movzx edx, byte [edi]
test dl, dl
jns 0x10012a85
movzx ebx, byte [edi + 1]
mov ecx, edx
and ecx, 0x1f
and ebx, 0x3f
cmp dl, 0xdf
jbe 0x10012ae6
movzx esi, byte [edi + 2]
shl ebx, 6
and esi, 0x3f
or esi, ebx
cmp dl, 0xf0
jb 0x10012af6
movzx edx, byte [edi + 3]
shl esi, 6
and ecx, 7
mov ebx, dword [esp + 0xc]
shl ecx, 0x12
and edx, 0x3f
or edx, esi
mov esi, dword [esp]
or edx, ecx
cmp edx, 0x110000
je 0x100127ad
add edi, 4
jmp 0x10012a86
shl ecx, 6
add edi, 2
or ecx, ebx
mov ebx, dword [esp + 0xc]
mov edx, ecx
jmp 0x10012a86
shl ecx, 0xc
mov ebx, dword [esp + 0xc]
add edi, 3
or esi, ecx
mov edx, esi
mov esi, dword [esp]
jmp 0x10012a86
mov edi, edx
mov eax, 0xfffffffc
mov edx, 4
cmp edi, 5
jb 0x10012b53
cmp byte [ecx + 4], 0xbf
jg 0x1001275b
mov edx, esi
push 0x1007a618
push esi
push 4
call fcn.10009c30
mov esi, edi
mov edx, dword [esp + 8]
mov edi, dword [esp + 0x10]
test eax, eax
jne 0x10012b6b
jmp 0x10012b87
shl edx, 6
add edi, 2
or edx, esi
jmp 0x10012ca6
mov ebx, 4
jmp 0x1001275d
mov ecx, dword [esp + 8]
mov esi, edi
mov edi, edx
mov edx, ecx
test eax, eax
je 0x10012b87
cmp esi, eax
jbe 0x10012b85
cmp byte [edi + eax], 0xbf
jg 0x10012b87
mov ecx, edi
mov edx, esi
push 0x1007a814
push esi
push eax
call fcn.10009c30
jne 0x10012b75
add edi, eax
sub esi, eax
mov dword [esp + 0x14], 0
test esi, esi
je 0x10012cc8
cmp byte [edi], 0x2e
mov dword [esp], esi
mov esi, 2
jne 0x10012cf4
mov eax, dword [esp]
mov edx, edi
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edi
add eax, edi
mov dword [esp + 0x1c], eax
mov al, 0x2e
test al, al
jns 0x10012c50
nop dword [eax]
movzx edi, byte [edx + 1]
mov ecx, eax
and cl, 0x1f
movzx ecx, cl
and edi, 0x3f
cmp al, 0xdf
jbe 0x10012c1f
movzx ebx, byte [edx + 2]
shl edi, 6
and ebx, 0x3f
or ebx, edi
cmp al, 0xf0
jb 0x10012c2f
movzx eax, byte [edx + 3]
and ecx, 7
shl ebx, 6
mov edi, dword [esp + 0x10]
shl ecx, 0x12
and eax, 0x3f
or eax, ebx
or eax, ecx
cmp eax, 0x110000
je 0x10012d1b
mov ebx, dword [esp + 0xc]
add edx, 4
jmp 0x10012c54
shl ecx, 6
add edx, 2
or ecx, edi
mov edi, dword [esp + 0x10]
mov eax, ecx
jmp 0x10012c54
shl ecx, 0xc
mov edi, dword [esp + 0x10]
add edx, 3
or ebx, ecx
mov eax, ebx
mov ebx, dword [esp + 0xc]
jmp 0x10012c54
inc edx
movzx eax, al
lea ecx, [eax - 0x21]
cmp ecx, 0x19
jb 0x10012c79
mov ecx, eax
and ecx, 0xffffffdf
add ecx, 0xffffffbf
cmp ecx, 0x1a
jb 0x10012c79
lea ecx, [eax - 0x3a]
cmp ecx, 7
jb 0x10012c79
lea ecx, [eax - 0x5b]
cmp ecx, 6
jae 0x10012c8b
cmp edx, dword [esp + 0x1c]
je 0x10012c95
movzx eax, byte [edx]
test al, al
jns 0x10012c50
jmp 0x10012bd0
add eax, 0xffffff81
cmp eax, 0xfffffffc
jae 0x10012c79
jmp 0x10012cf4
mov edx, dword [esp + 8]
mov esi, dword [esp]
jmp 0x10012cca
shl edx, 0xc
add edi, 3
or edx, ecx
mov esi, dword [esp]
cmp edx, 0x45
jne 0x100127a1
mov dword [esp + 4], 0
mov edx, dword [esp + 8]
sub esi, edi
test esi, esi
jne 0x10012b9b
xor esi, esi
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x14]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x18]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 4]
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], edx
mov dword [eax + 0x14], ebx
mov dword [eax + 0x18], edi
mov dword [eax + 0x1c], esi
mov esi, 1
mov eax, dword [esp + 0x34]
mov dword [eax], esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
cmp dword [esp + 4], 0
je 0x1001246e
mov edx, dword [esp + 0x14]
push 0x1007ace8
call fcn.10007930
mov edx, dword [esp + 8]
mov ebx, dword [esp + 0xc]
jmp 0x10012c99
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
add ecx, esi
cmp edx, ecx
cmova ecx, edx
push 0x1007ad08
call fcn.10007930
mov ecx, edx
mov edx, edi
add ecx, dword [esp + 4]
cmp edi, ecx
cmova ecx, edi
push 0x1007ad08
call fcn.10007930
mov ecx, edi
mov edx, dword [esp + 0x18]
push 0x1007acf8
call fcn.10007930
mov edx, ebx
push 0x1007a7a4
push ebx
push 1
call fcn.10009c30
mov edx, ebx
push 0x1007a7b4
push ebx
push 2
call fcn.10009c30
lea eax, [esp + 0x78]
mov ecx, str._fmt::Error_s_should_be_impossible_without_a__fmt::Formatter_
mov edx, 0x3d
push 0x1007a804
push 0x1007a540
push eax
call fcn.10008f10
mov edx, esi
push 0x1007a628
push esi
push 2
call fcn.10009c30
mov edx, esi
push 0x1007a638
push esi
push 3
call fcn.10009c30
mov edx, ebx
push 0x1007a794
push ebx
push 3
call fcn.10009c30
nop word cs:[eax + eax]
nop dword [eax + eax]
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x60
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov eax, dword [eax]
mov edx, dword [eax]
test edx, edx
je 0x10013722
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x40], eax
jmp 0x10012e30
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
mov edx, dword [ebp - 0x30]
test al, al
jne 0x10013763
mov eax, dword [ebp - 0x34]
cmp eax, dword [ebp - 0x40]
mov dword [ebp - 0x1c], eax
setne al
mov dword [ebp - 0x14], eax
je 0x10013763
cmp dword [ebp - 0x24], 0
je 0x1001376e
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x24]
inc eax
lea ecx, [esi - 1]
mov dword [ebp - 0x34], eax
movzx eax, byte [edx]
mov dword [ebp - 0x18], ecx
xor ecx, ecx
test al, al
jns 0x10012f00
jmp 0x10012e8c
cmp dword [ebp - 0x18], ecx
je 0x1001376e
movzx eax, byte [edx + ecx + 1]
cmp al, 0xbf
jle 0x10013778
dec esi
inc ecx
test al, al
jns 0x10012f00
movzx ebx, byte [edx + ecx + 1]
mov ah, al
mov dword [ebp - 0x10], esi
and ah, 0x1f
movzx esi, ah
and ebx, 0x3f
cmp al, 0xdf
jbe 0x10012ee0
movzx edi, byte [edx + ecx + 2]
shl ebx, 6
and edi, 0x3f
or edi, ebx
cmp al, 0xf0
jb 0x10012ef0
movzx ebx, byte [edx + ecx + 3]
and esi, 7
shl edi, 6
shl esi, 0x12
and ebx, 0x3f
or ebx, edi
or ebx, esi
mov esi, dword [ebp - 0x10]
cmp ebx, 0x110000
jne 0x10012f03
jmp 0x1001376e
shl esi, 6
or esi, ebx
mov ebx, esi
mov esi, dword [ebp - 0x10]
jmp 0x10012f03
shl esi, 0xc
or edi, esi
mov esi, dword [ebp - 0x10]
mov ebx, edi
jmp 0x10012f03
movzx ebx, al
add ebx, 0xffffffd0
lea edi, [edx + ecx]
cmp ebx, 9
jbe 0x10012e70
mov eax, dword [ebp - 0x24]
sub eax, esi
je 0x10012f23
cmp byte [edx + eax], 0xbf
jle 0x100137de
lea ecx, [ebp - 0x5c]
push eax
call fcn.1000b780
add esp, 4
cmp byte [ebp - 0x5c], 0
jne 0x10013789
mov eax, dword [ebp - 0x58]
test eax, eax
je 0x10012f56
cmp esi, eax
jbe 0x10012f50
cmp byte [edi + eax], 0xbf
jg 0x10012f56
jmp 0x100137c9
jne 0x100137c9
lea ebx, [edi + eax]
test eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x30], ebx
je 0x10013060
mov eax, dword [ebp - 0x34]
cmp eax, dword [ebp - 0x40]
jne 0x10013060
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x1c]
and eax, 4
je 0x10013060
cmp byte [edi], 0x68
jne 0x10013060
cmp dword [ebp - 0x18], 1
je 0x10012f9b
cmp byte [edi + 1], 0xbf
jle 0x1001383f
lea eax, [edi + 1]
mov dword [ebp - 0x10], esi
nop word cs:[eax + eax]
nop dword [eax + eax]
cmp eax, ebx
je 0x10013755
movzx ecx, byte [eax]
test cl, cl
js 0x10012fd0
inc eax
jmp 0x10013039
movzx esi, byte [eax + 1]
mov edx, ecx
and edx, 0x1f
and esi, 0x3f
cmp cl, 0xdf
jbe 0x1001301d
movzx ebx, byte [eax + 2]
shl esi, 6
and ebx, 0x3f
or ebx, esi
cmp cl, 0xf0
jb 0x10013029
movzx ecx, byte [eax + 3]
and edx, 7
shl ebx, 6
mov esi, dword [ebp - 0x10]
shl edx, 0x12
and ecx, 0x3f
or ecx, ebx
or ecx, edx
cmp ecx, 0x110000
je 0x10013755
mov ebx, dword [ebp - 0x30]
add eax, 4
jmp 0x10013039
shl edx, 6
add eax, 2
or edx, esi
mov ecx, edx
jmp 0x10013033
shl edx, 0xc
add eax, 3
or ebx, edx
mov ecx, ebx
mov esi, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x30]
lea edx, [ecx - 0x30]
cmp edx, 0xa
jb 0x10012fb0
or ecx, 0x20
add ecx, 0xffffff9f
cmp ecx, 6
jb 0x10012fb0
nop word cs:[eax + eax]
nop
cmp dword [ebp - 0x1c], 0
je 0x10013084
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0x18]
push 2
push str.::__
push dword [ecx + 0x14]
call dword [eax + 0xc]
add esp, 0xc
test al, al
jne 0x10013763
mov edx, dword [ebp - 0x18]
cmp edx, 2
jb 0x1001309a
movzx eax, word [edi]
cmp eax, 0x245f
je 0x1001370f
mov ebx, edx
mov eax, esi
sub eax, edx
mov dword [ebp - 0x24], eax
mov ecx, edi
test ebx, ebx
je 0x100130f0
movzx eax, byte [ecx]
cmp eax, 0x24
je 0x100131e0
cmp eax, 0x2e
jne 0x100130f0
cmp ebx, 1
jne 0x100132d6
mov eax, dword [ebp + 0xc]
mov edi, ecx
mov ecx, eax
mov eax, dword [eax + 0x18]
push 1
push 0x1007c0e7
push dword [ecx + 0x14]
call dword [eax + 0xc]
add esp, 0xc
test al, al
je 0x100136cb
jmp 0x1001375e
lea eax, [ecx + ebx]
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x18], eax
xor eax, eax
jmp 0x1001311b
lea ebx, [ecx + 1]
mov esi, edx
cmp esi, 0x24
je 0x10013190
mov eax, edi
sub eax, ecx
mov ecx, ebx
add eax, ebx
cmp esi, 0x2e
je 0x10013190
cmp ecx, dword [ebp - 0x18]
je 0x10012e10
movzx edx, byte [ecx]
mov edi, eax
test dl, dl
jns 0x10013100
movzx eax, byte [ecx + 1]
mov esi, edx
and esi, 0x1f
and eax, 0x3f
cmp dl, 0xdf
jbe 0x1001316c
movzx ebx, byte [ecx + 2]
shl eax, 6
and ebx, 0x3f
or ebx, eax
cmp dl, 0xf0
mov dword [ebp - 0x1c], ebx
jb 0x1001317b
movzx eax, byte [ecx + 3]
mov edx, dword [ebp - 0x1c]
and esi, 7
lea ebx, [ecx + 4]
shl esi, 0x12
shl edx, 6
and eax, 0x3f
or eax, edx
jmp 0x10013172
lea ebx, [ecx + 2]
shl esi, 6
or esi, eax
cmp esi, 0x24
jne 0x1001310e
jmp 0x10013190
shl esi, 0xc
lea ebx, [ecx + 3]
add esi, dword [ebp - 0x1c]
cmp esi, 0x24
jne 0x1001310e
nop dword [eax]
test edi, edi
je 0x10013273
mov esi, dword [ebp - 0x20]
cmp edi, esi
jae 0x10013298
mov ecx, dword [ebp - 0x10]
cmp byte [ecx + edi], 0xbf
jle 0x100137ba
mov eax, dword [ebp + 0xc]
mov ebx, ecx
mov ecx, eax
mov eax, dword [eax + 0x18]
push edi
push ebx
push dword [ecx + 0x14]
call dword [eax + 0xc]
add esp, 0xc
test al, al
jne 0x1001375e
cmp byte [ebx + edi], 0xc0
mov ecx, ebx
jge 0x100132c9
jmp 0x100137fc
cmp ebx, 1
je 0x100131ef
cmp byte [ecx + 1], 0xbf
jle 0x10013813
lea esi, [ecx + 1]
mov dword [ebp - 0x10], ecx
lea eax, [ebx - 1]
lea ecx, [ebp - 0x6c]
lea edx, [ebp - 0x5c]
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x5c], 0x24
mov byte [ebp - 0x44], 1
mov dword [ebp - 0x48], 0x24
call fcn.1000d6a0
cmp dword [ebp - 0x6c], 0
je 0x10012e10
mov eax, dword [ebp - 0x68]
cmp eax, 0xffffffff
je 0x100137d9
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x2c], eax
inc eax
cmp edx, 1
je 0x10013256
cmp byte [esi], 0xbf
jle 0x100137ad
cmp eax, edx
jae 0x10013338
cmp byte [ecx + eax], 0xc0
jl 0x100137ad
mov eax, dword [ebp - 0x2c]
lea edi, [eax + 2]
jmp 0x1001334f
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0x18]
push 0
mov esi, dword [ebp - 0x10]
push esi
push dword [ecx + 0x14]
call dword [eax + 0xc]
mov ecx, esi
add esp, 0xc
mov esi, dword [ebp - 0x20]
xor edi, edi
test al, al
je 0x100132c9
jmp 0x1001375e
mov ecx, dword [ebp - 0x10]
jne 0x100137ba
test ecx, ecx
je 0x100137ba
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0x18]
push esi
push dword [ebp - 0x10]
push dword [ecx + 0x14]
call dword [eax + 0xc]
mov ecx, dword [ebp - 0x10]
add esp, 0xc
test al, al
mov edi, esi
jne 0x1001375e
sub esi, edi
add ecx, edi
mov ebx, esi
mov edi, ecx
jmp 0x100130a3
movzx eax, byte [ecx + 1]
mov edi, dword [ebp + 0xc]
cmp al, 0xbf
jle 0x1001380a
test al, al
jns 0x10013666
mov edx, ecx
mov ecx, eax
movzx esi, byte [edx + 2]
and ecx, 0x1f
and esi, 0x3f
cmp al, 0xdf
jbe 0x10013647
mov dword [ebp - 0x10], edx
movzx edx, byte [edx + 3]
shl esi, 6
and edx, 0x3f
or edx, esi
cmp al, 0xf0
jb 0x1001365c
mov esi, dword [ebp - 0x10]
and ecx, 7
shl edx, 6
shl ecx, 0x12
movzx eax, byte [esi + 4]
and eax, 0x3f
or eax, edx
or eax, ecx
mov ecx, esi
jmp 0x10013666
jne 0x100137ad
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x28], edx
mov edi, eax
mov edx, eax
mov eax, ecx
add edi, 2
je 0x1001338f
mov edx, dword [ebp - 0x20]
mov ebx, edx
sub ebx, edi
jbe 0x10013366
mov ecx, dword [ebp - 0x10]
cmp byte [ecx + edi], 0xbf
jg 0x1001336f
jmp 0x100137f0
mov ecx, dword [ebp - 0x10]
jne 0x100137f0
mov edx, dword [ebp - 0x2c]
add edi, ecx
cmp edx, 1
je 0x1001341c
cmp edx, 2
je 0x100133b0
test edx, edx
mov eax, edi
mov dword [ebp - 0x28], ebx
je 0x10012e10
mov ecx, dword [ebp - 0x10]
cmp byte [ecx + 1], 0x75
jne 0x10012e10
mov ecx, dword [ebp - 0x10]
mov edi, eax
cmp byte [ecx + 2], 0xbf
jg 0x10013439
jmp 0x1001381c
movzx eax, word [esi]
cmp eax, 0x5053
je 0x1001363d
movzx eax, word [esi]
cmp eax, 0x5042
je 0x10013652
movzx eax, word [esi]
cmp eax, 0x4652
je 0x100136d2
movzx eax, word [esi]
cmp eax, 0x544c
je 0x100136d9
movzx eax, word [esi]
cmp eax, 0x5447
je 0x100136e0
movzx eax, word [esi]
cmp eax, 0x504c
je 0x100136e7
movzx eax, word [esi]
cmp eax, 0x5052
je 0x100136ee
mov eax, edi
mov dword [ebp - 0x28], ebx
jmp 0x1001338f
movzx ecx, byte [esi]
mov eax, str._____
cmp ecx, 0x43
je 0x100136f3
cmp ecx, 0x75
mov dword [ebp - 0x28], ebx
jne 0x10012e10
mov ecx, dword [ebp - 0x10]
lea eax, [edx - 1]
add esi, edx
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x1c], esi
lea ebx, [ecx + 2]
mov ecx, ebx
mov dword [ebp - 0x3c], ebx
nop
cmp ecx, esi
je 0x10013501
movzx edx, byte [ecx]
test dl, dl
js 0x10013470
inc ecx
jmp 0x100134e0
mov al, 1
mov esi, edx
mov dword [ebp - 0x18], eax
movzx eax, byte [ecx + 1]
and esi, 0x1f
and eax, 0x3f
cmp dl, 0xdf
jbe 0x100134bb
movzx ebx, byte [ecx + 2]
shl eax, 6
and ebx, 0x3f
or ebx, eax
cmp dl, 0xf0
jb 0x100134ca
movzx edx, byte [ecx + 3]
shl ebx, 6
and esi, 7
shl esi, 0x12
and edx, 0x3f
or edx, ebx
mov ebx, dword [ebp - 0x3c]
or edx, esi
cmp edx, 0x110000
je 0x10013506
add ecx, 4
jmp 0x100134c5
shl esi, 6
add ecx, 2
or esi, eax
mov edx, esi
mov esi, dword [ebp - 0x1c]
jmp 0x100134e0
shl esi, 0xc
add ecx, 3
or ebx, esi
mov esi, dword [ebp - 0x1c]
mov edx, ebx
mov ebx, dword [ebp - 0x3c]
nop word [eax + eax]
lea eax, [edx - 0x30]
cmp eax, 0xa
jb 0x10013450
add edx, 0xffffff9f
cmp edx, 6
jb 0x10013450
mov dword [ebp - 0x18], 0
jmp 0x10013506
mov al, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x2c]
cmp ecx, 2
je 0x10013531
mov esi, dword [ebp - 0x38]
cmp ecx, 1
je 0x10012e10
cmp byte [ebx], 0x2b
jne 0x1001354a
mov eax, dword [ebp - 0x10]
add ecx, 0xfffffffe
cmp esi, 0xa
mov esi, ecx
lea ebx, [eax + 3]
jb 0x1001354f
jmp 0x10013591
movzx eax, byte [ebx]
mov esi, dword [ebp - 0x38]
cmp eax, 0x2b
je 0x10012e10
cmp eax, 0x2d
jne 0x1001354f
jmp 0x10012e10
cmp esi, 8
ja 0x10013591
xor ecx, ecx
jmp 0x10013569
shl ecx, 4
inc ebx
or ecx, edx
dec esi
je 0x100135de
movzx eax, byte [ebx]
lea edx, [eax - 0x30]
cmp edx, 0xa
jb 0x10013560
or eax, 0x20
mov edx, 0xffffffff
add eax, 0xffffff9f
add eax, 0xa
cmovb eax, edx
cmp eax, 0xf
mov edx, eax
jbe 0x10013560
jmp 0x10012e10
xor ecx, ecx
sub esi, 1
jb 0x100135de
nop dword [eax + eax]
movzx edx, byte [ebx]
lea eax, [edx - 0x30]
cmp eax, 0xa
jb 0x100135c7
or edx, 0x20
mov eax, 0xffffffff
add edx, 0xffffff9f
add edx, 0xa
cmovb edx, eax
cmp edx, 0xf
mov eax, edx
ja 0x10012e10
cmp ecx, 0xfffffff
ja 0x10012e10
shl ecx, 4
inc ebx
or ecx, eax
sub esi, 1
jae 0x100135a0
mov eax, ecx
mov edx, dword [ebp - 0x18]
xor eax, 0xd800
add eax, 0xffef0000
cmp eax, 0xffef0800
mov eax, 0x110000
cmovb ecx, eax
cmp ecx, 0x110000
sete al
xor dl, 1
or dl, al
jne 0x10012e10
mov dword [ebp - 0x60], ecx
call fcn.1000bad0
test al, al
jne 0x10012e10
push dword [ebp + 0xc]
lea eax, [ebp - 0x60]
push eax
call fcn.1000a2d0
add esp, 8
mov ebx, dword [ebp - 0x28]
test al, al
je 0x100130a3
jmp 0x1001375e
mov eax, 0x1007a732
jmp 0x100136f3
shl ecx, 6
or ecx, esi
mov eax, ecx
mov ecx, edx
jmp 0x10013666
mov eax, 0x1007a731
jmp 0x100136f3
shl ecx, 0xc
or edx, ecx
mov ecx, dword [ebp - 0x10]
mov eax, edx
mov esi, ecx
cmp eax, 0x2e
jne 0x100136a4
mov eax, dword [edi + 0x18]
push 2
push str.::__
push dword [edi + 0x14]
call dword [eax + 0xc]
add esp, 0xc
test al, al
jne 0x1001375e
cmp ebx, 3
mov edi, esi
jb 0x10013699
cmp byte [edi + 2], 0xc0
jl 0x10013851
add ebx, 0xfffffffe
add edi, 2
jmp 0x100130a3
mov eax, dword [edi + 0x18]
push 1
push 0x1007c0e7
push dword [edi + 0x14]
call dword [eax + 0xc]
add esp, 0xc
test al, al
jne 0x1001375e
cmp byte [esi + 1], 0xc0
mov edi, esi
jl 0x1001382e
dec ebx
inc edi
jmp 0x100130a3
mov eax, 0x1007a730
jmp 0x100136f3
mov eax, 0x1007a72f
jmp 0x100136f3
mov eax, 0x1007a72e
jmp 0x100136f3
mov eax, 0x1007a72d
jmp 0x100136f3
mov eax, 0x1007bec0
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x18]
push 1
push eax
push dword [edx + 0x14]
call dword [ecx + 0xc]
add esp, 0xc
test al, al
je 0x100130a3
jmp 0x1001375e
cmp byte [edi + 1], 0xbf
jle 0x10013825
inc edi
lea ebx, [edx - 1]
jmp 0x1001309c
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov edx, 1
mov dword [ebp - 0x5c], ecx
lea ecx, [ebp - 0x5c]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x48], 0
call fcn.1000d910
jmp 0x10013766
mov dword [ebp - 0x14], 0
jmp 0x10013763
mov al, 1
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
add esp, 0x60
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, 0x1007a658
call fcn.10009070
mov ecx, edi
mov edx, esi
push 0x1007a668
push esi
push 1
call fcn.10009c30
movzx eax, byte [ebp - 0x5b]
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov edx, 0x2b
mov byte [ebp - 0x6c], al
push 0x1007a688
push 0x1007a570
lea eax, [ebp - 0x6c]
push eax
call fcn.10008f10
push 0x1007a6ec
push eax
push 1
call fcn.10009c30
mov edx, esi
push 0x1007a6bc
push edi
push 0
call fcn.10009c30
mov ecx, edi
mov edx, esi
push 0x1007a698
push esi
push eax
call fcn.10009c30
call fcn.1000a500
mov ecx, edx
mov edx, dword [ebp - 0x24]
push 0x1007a678
push eax
push 0
call fcn.10009c30
push 0x1007a6fc
push edx
push edi
call fcn.10009c30
mov edx, esi
push 0x1007a6cc
push esi
push edi
call fcn.10009c30
mov edx, ebx
push 0x1007a734
jmp 0x10013837
mov edx, ebx
push 0x1007a6dc
jmp 0x10013837
mov ecx, esi
push 0x1007a71c
jmp 0x10013849
mov ecx, edi
push 0x1007a6ac
jmp 0x10013849
mov ecx, edi
mov edx, ebx
push 0x1007a754
push ebx
push 1
call fcn.10009c30
mov edx, dword [ebp - 0x18]
mov ecx, edi
push 0x1007a648
push edx
push 1
call fcn.10009c30
mov ecx, edi
mov edx, ebx
push 0x1007a744
push ebx
push 2
call fcn.10009c30
nop word cs:[eax + eax]
nop dword [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