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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x98
lea esi, [esp + 0x50]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x30], edx
mov ecx, esi
push 1
push 0x101f55e2
push dword [ebp + 8]
call sym.core::str::pattern::StrSearcher::new::h31365d9c89f7e80a
add esp, 0xc
cmp dword [esi], 0
je 0x1003973c
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x8c]
mov ebx, dword [esp + 0x70]
mov eax, dword [esp + 0x74]
mov edi, ecx
mov dword [esp], ebx
mov ebx, dword [esp + 0x58]
mov esi, edx
mov dword [esp + 4], edx
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], ecx
sub edi, edx
not esi
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x80]
mov dword [esp + 0x3c], esi
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x84]
mov dword [esp + 0x44], ebx
mov ebx, dword [esp + 0x68]
mov dword [esp + 8], edi
mov edi, dword [esp + 0x88]
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x78]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x18]
add esi, edi
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x10]
add esi, ecx
mov dword [esp + 0x28], esi
cmp ecx, ebx
mov esi, ebx
cmovb esi, ecx
cmp eax, 0xffffffff
cmove esi, ecx
cmove ebx, edx
lea ecx, [esi - 1]
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x40], esi
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp]
mov edi, ecx
sub edi, edx
cmp edi, dword [esp + 8]
jae 0x1003983e
mov eax, dword [esp + 0x18]
mov dword [esp], ecx
mov cl, byte [eax + edi]
xor eax, eax
xor esi, esi
inc esi
shld eax, esi, cl
shl esi, cl
test cl, 0x20
mov ecx, 0
cmovne eax, esi
cmovne esi, ecx
and eax, dword [esp + 0x44]
and esi, dword [esp + 0x48]
or esi, eax
je 0x1003966e
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp]
mov esi, dword [esp + 0x40]
mov dword [esp + 0x34], edi
lea edx, [eax + ecx]
mov eax, dword [esp + 0x38]
add eax, ecx
mov ecx, esi
sub ecx, 1
jb 0x10039683
mov edi, dword [esp + 0x1c]
cmp edi, dword [esp + 4]
jae 0x1003984e
lea edi, [edx + esi]
cmp edi, dword [esp + 8]
jae 0x1003985c
mov edi, dword [esp + 0x10]
mov bl, byte [edi + esi - 1]
cmp bl, byte [eax + esi]
mov esi, ecx
je 0x10039621
mov eax, dword [esp]
mov edx, dword [esp + 4]
add eax, ecx
mov ecx, eax
mov eax, dword [esp + 0x14]
sub ecx, dword [esp + 0xc]
cmp eax, 0xffffffff
je 0x100395cb
jmp 0x100396e9
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 4]
mov ecx, edi
cmp eax, 0xffffffff
je 0x100395cb
jmp 0x100396e4
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp]
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0xc]
mov edx, dword [esp + 4]
add ecx, eax
cmp ebx, dword [esp + 0x4c]
jae 0x100396f7
cmp ebx, edx
jae 0x1003986c
cmp ecx, dword [esp + 8]
jae 0x1003987f
mov al, byte [edi]
mov esi, dword [esp + 0x18]
inc edi
inc ebx
cmp al, byte [esi + ecx]
lea ecx, [ecx + 1]
je 0x10039698
mov ecx, dword [esp]
mov eax, dword [esp + 0x14]
sub ecx, dword [esp + 0x20]
cmp eax, 0xffffffff
je 0x100395cb
mov dword [esp], ecx
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0xc]
jmp 0x100395a9
mov dword [esp], edi
jmp 0x100396ec
mov dword [esp], ecx
mov ecx, dword [esp + 0xc]
mov ebx, edx
jmp 0x100395a9
mov edx, dword [esp + 0x34]
inc edx
mov ecx, dword [esp + 0x30]
mov eax, edx
mov edx, dword [ebp + 8]
push 0x101b0904
push eax
call sym.core::str::traits::__LT_impl_u20_core..ops..index..Index_LT_I_GT__u20_for_u20_str_GT_::index::hf658959e89196e44
pop ecx
pop ecx
mov ecx, eax
mov esi, eax
mov edi, edx
call sym.core::num::__LT_impl_u20_core..str..traits..FromStr_u20_for_u20_u16_GT_::from_str::h207051ec3d36263a
xor ecx, ecx
test al, 1
jne 0x10039840
mov ecx, dword [esp + 0x24]
shr eax, 0x10
mov dword [ecx + 4], edi
mov word [ecx + 8], ax
mov ecx, esi
jmp 0x10039840
mov bl, byte [esp + 0x5e]
mov eax, dword [esp + 0x84]
mov esi, dword [esp + 0x80]
mov bh, byte [esp + 0x5d]
mov edx, dword [esp + 0x58]
mov dword [esp + 8], eax
mov byte [esp + 0x10], bl
test bl, bl
jne 0x1003983e
mov al, bh
mov edi, edx
mov ecx, edx
mov edx, esi
xor al, 1
mov byte [esp + 0x5d], al
push 0x101b02c4
push dword [esp + 0xc]
call fcn.100392b1
pop ecx
pop ecx
test edx, edx
je 0x10039834
movzx ecx, byte [eax + edx - 1]
test cl, cl
js 0x10039799
mov edx, edi
jmp 0x100397f1
mov byte [esp + 4], bh
movzx ebx, byte [eax + edx - 2]
cmp bl, 0xc0
jge 0x100397c7
mov dword [esp + 0x1c], ebx
movzx ebx, byte [eax + edx - 3]
cmp bl, 0xc0
jge 0x100397d0
movzx eax, byte [eax + edx - 4]
and ebx, 0x3f
and eax, 7
shl eax, 6
or ebx, eax
jmp 0x100397d3
and ebx, 0x1f
mov edx, edi
mov eax, ebx
jmp 0x100397e1
and ebx, 0xf
mov eax, dword [esp + 0x1c]
shl ebx, 6
mov edx, edi
and eax, 0x3f
or eax, ebx
mov bl, byte [esp + 0x10]
mov bh, byte [esp + 4]
shl eax, 6
and ecx, 0x3f
or ecx, eax
test bh, bh
jne 0x100396fb
cmp ecx, 0x110000
je 0x1003983e
cmp ecx, 0x80
mov eax, 0xffffffff
jb 0x10039827
cmp ecx, 0x800
push 0xfffffffffffffffe
pop eax
jb 0x10039827
xor eax, eax
cmp ecx, 0x10000
setb al
or eax, 0xfffffffc
add edx, eax
mov bh, 1
mov dword [esp + 0x58], edx
jmp 0x1003975e
test bh, bh
mov edx, edi
jne 0x100396fb
xor ecx, ecx
mov eax, dword [esp + 0x24]
mov dword [eax], ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, dword [esp + 4]
push 0x101b010c
call dbg.panic_bounds_check
mov edx, dword [esp + 8]
mov ecx, edi
push 0x101b011c
call dbg.panic_bounds_check
mov ecx, dword [esp + 0xc]
cmp ecx, edx
cmovbe ecx, edx
push 0x101b00ec
call dbg.panic_bounds_check
mov edx, dword [esp + 8]
push 0x101b00fc
call dbg.panic_bounds_check