Function at 0x10039d2a
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 0x101e5ce2
push dword [ebp + 8]
call sym.core::str::pattern::StrSearcher::new::h31365d9c89f7e80a
add esp, 0xc
cmp dword [esi], 0
je 0x10039f78
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 0x1003a07a
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 0x10039eaa
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 0x10039ebf
mov edi, dword [esp + 0x1c]
cmp edi, dword [esp + 4]
jae 0x1003a08a
lea edi, [edx + esi]
cmp edi, dword [esp + 8]
jae 0x1003a098
mov edi, dword [esp + 0x10]
mov bl, byte [edi + esi - 1]
cmp bl, byte [eax + esi]
mov esi, ecx
je 0x10039e5d
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 0x10039e07
jmp 0x10039f25
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 4]
mov ecx, edi
cmp eax, 0xffffffff
je 0x10039e07
jmp 0x10039f20
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 0x10039f33
cmp ebx, edx
jae 0x1003a0a8
cmp ecx, dword [esp + 8]
jae 0x1003a0bb
mov al, byte [edi]
mov esi, dword [esp + 0x18]
inc edi
inc ebx
cmp al, byte [esi + ecx]
lea ecx, [ecx + 1]
je 0x10039ed4
mov ecx, dword [esp]
mov eax, dword [esp + 0x14]
sub ecx, dword [esp + 0x20]
cmp eax, 0xffffffff
je 0x10039e07
mov dword [esp], ecx
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0xc]
jmp 0x10039de5
mov dword [esp], edi
jmp 0x10039f28
mov dword [esp], ecx
mov ecx, dword [esp + 0xc]
mov ebx, edx
jmp 0x10039de5
mov edx, dword [esp + 0x34]
inc edx
mov ecx, dword [esp + 0x30]
mov eax, edx
mov edx, dword [ebp + 8]
push 0x101a1604
push eax
call sym.core::str::traits::__LT_impl_u20_core..ops..index..Index_LT_I_GT__u20_for_u20_str_GT_::index::he9ff7641e0383b87
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 0x1003a07c
mov ecx, dword [esp + 0x24]
shr eax, 0x10
mov dword [ecx + 4], edi
mov word [ecx + 8], ax
mov ecx, esi
jmp 0x1003a07c
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 0x1003a07a
mov al, bh
mov edi, edx
mov ecx, edx
mov edx, esi
xor al, 1
mov byte [esp + 0x5d], al
push 0x101a0fc4
push dword [esp + 0xc]
call fcn.10039aed
pop ecx
pop ecx
test edx, edx
je 0x1003a070
movzx ecx, byte [eax + edx - 1]
test cl, cl
js 0x10039fd5
mov edx, edi
jmp 0x1003a02d
mov byte [esp + 4], bh
movzx ebx, byte [eax + edx - 2]
cmp bl, 0xc0
jge 0x1003a003
mov dword [esp + 0x1c], ebx
movzx ebx, byte [eax + edx - 3]
cmp bl, 0xc0
jge 0x1003a00c
movzx eax, byte [eax + edx - 4]
and ebx, 0x3f
and eax, 7
shl eax, 6
or ebx, eax
jmp 0x1003a00f
and ebx, 0x1f
mov edx, edi
mov eax, ebx
jmp 0x1003a01d
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 0x10039f37
cmp ecx, 0x110000
je 0x1003a07a
cmp ecx, 0x80
mov eax, 0xffffffff
jb 0x1003a063
cmp ecx, 0x800
push 0xfffffffffffffffe
pop eax
jb 0x1003a063
xor eax, eax
cmp ecx, 0x10000
setb al
or eax, 0xfffffffc
add edx, eax
mov bh, 1
mov dword [esp + 0x58], edx
jmp 0x10039f9a
test bh, bh
mov edx, edi
jne 0x10039f37
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 0x101a0e0c
call dbg.panic_bounds_check
mov edx, dword [esp + 8]
mov ecx, edi
push 0x101a0e1c
call dbg.panic_bounds_check
mov ecx, dword [esp + 0xc]
cmp ecx, edx
cmovbe ecx, edx
push 0x101a0dec
call dbg.panic_bounds_check
mov edx, dword [esp + 8]
push 0x101a0dfc
call dbg.panic_bounds_check