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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x80
mov dword [esp + 0xc], edx
mov edx, dword [edx + 0x128]
call 0x4233ae
pop eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x68], eax
test edx, edx
mov eax, edx
mov dword [esp + 8], edx
je 0x4234e6
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi]
mov edx, dword [esi + 4]
test eax, eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x70], ecx
mov dword [esp + 0x6c], edx
je 0x4238bc
mov eax, dword [esp + 0xc]
mov edi, dword [esi + 8]
mov ebx, dword [esi + 0xc]
mov esi, dword [eax + 0x38]
mov eax, dword [eax + 0x3c]
mov dword [esp + 4], eax
push eax
mov dword [esp + 4], esi
push esi
mov dword [esp + 0x2c], ebx
push ebx
mov dword [esp + 0x34], edi
push edi
call sym.indexmap::map::IndexMap_LT_K_C_V_C_S_GT_::hash::h24d0e31b59db8ae2
add esp, 0x10
mov esi, dword [ebp + 8]
mov ecx, dword [esi + 0x20]
mov ebx, dword [esi + 0x14]
mov dword [esp + 0x14], ecx
mov ecx, dword [esi + 0x10]
mov edx, ebx
mov dword [esp + 0x18], ebx
and edx, eax
shr eax, 0x19
movd xmm0, eax
mov eax, dword [esi + 0x28]
punpcklbw xmm0, xmm0
movdqu xmm1, xmmword [ecx + edx]
pshuflw xmm0, xmm0, 0
mov esi, ecx
mov dword [esp + 0x1c], ecx
pshufd xmm0, xmm0, 0
movdqa xmm2, xmm0
mov dword [esp + 0x10], eax
xor eax, eax
pcmpeqb xmm2, xmm1
pmovmskb edi, xmm2
pcmpeqd xmm2, xmm2
test di, di
jne 0x42349e
nop word cs:[eax + eax]
pcmpeqb xmm1, xmm2
pmovmskb ecx, xmm1
test ecx, ecx
jne 0x4238e0
lea edx, [eax + edx + 0x10]
movdqa xmm3, xmm0
add eax, 0x10
and edx, ebx
movdqu xmm1, xmmword [esi + edx]
pcmpeqb xmm3, xmm1
pmovmskb edi, xmm3
test edi, edi
je 0x423470
tzcnt ecx, edi
add ecx, edx
and ecx, ebx
mov ebx, esi
shl ecx, 2
sub ebx, ecx
mov ecx, dword [ebx - 4]
cmp dword [esp + 0x10], ecx
jbe 0x423b85
mov esi, dword [esp + 0x14]
lea ebx, [edi - 1]
imul ecx, ecx, 0x38
and ebx, edi
mov edi, dword [esi + ecx + 4]
mov ecx, dword [esi + ecx]
mov esi, dword [esp + 0x1c]
xor edi, dword [esp + 4]
xor ecx, dword [esp]
or ecx, edi
mov edi, ebx
mov ebx, dword [esp + 0x18]
jne 0x423461
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x11c]
test eax, eax
mov dword [esp + 0x10], eax
je 0x423668
mov eax, dword [ebp + 8]
cmp dword [eax + 0x1c], 0
je 0x423611
mov ebx, dword [ebp + 8]
mov eax, dword [esp + 0xc]
mov esi, dword [eax + 0x38]
mov edx, dword [ebx + 4]
mov eax, dword [eax + 0x3c]
mov ecx, dword [ebx]
mov dword [esp + 0x18], eax
push eax
mov dword [esp + 0xc], esi
push esi
push dword [ebx + 0xc]
push dword [ebx + 8]
call sym.indexmap::map::IndexMap_LT_K_C_V_C_S_GT_::hash::h24d0e31b59db8ae2
add esp, 0x10
mov esi, dword [ebx + 0x14]
mov edi, dword [ebx + 0x10]
mov ecx, dword [ebx + 0x20]
mov dword [esp], esi
and esi, eax
shr eax, 0x19
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], edi
movd xmm0, eax
movdqu xmm1, xmmword [edi + esi]
mov eax, dword [ebx + 0x28]
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
movdqa xmm2, xmm0
mov dword [esp + 4], eax
xor eax, eax
pcmpeqb xmm2, xmm1
pmovmskb edx, xmm2
pcmpeqd xmm2, xmm2
test dx, dx
je 0x423590
mov ebx, dword [esp]
jmp 0x4235ca
mov ebx, dword [esp]
nop word cs:[eax + eax]
nop dword [eax]
pcmpeqb xmm1, xmm2
pmovmskb ecx, xmm1
test ecx, ecx
jne 0x423611
lea esi, [eax + esi + 0x10]
movdqa xmm3, xmm0
add eax, 0x10
and esi, ebx
movdqu xmm1, xmmword [edi + esi]
pcmpeqb xmm3, xmm1
pmovmskb edx, xmm3
test edx, edx
je 0x4235a0
tzcnt ecx, edx
add ecx, esi
and ecx, ebx
mov ebx, edi
shl ecx, 2
sub ebx, ecx
mov ecx, dword [ebx - 4]
cmp dword [esp + 4], ecx
jbe 0x423b87
mov edi, dword [esp + 0x14]
lea ebx, [edx - 1]
imul ecx, ecx, 0x38
and ebx, edx
mov edx, dword [edi + ecx + 4]
mov ecx, dword [edi + ecx]
mov edi, dword [esp + 0x1c]
xor edx, dword [esp + 0x18]
xor ecx, dword [esp + 8]
or ecx, edx
mov edx, ebx
jne 0x42357c
jmp 0x423668
mov esi, dword [esp + 0xc]
mov edx, dword [esi + 0x80]
lea ecx, [esp + 0x2c]
push dword [esp + 0x10]
push dword [esi + 0x114]
call sym.clap::parse::parser::Parser::add_value::process_default_vals::hacfbe30e266f3d3c
add esp, 8
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
shl edx, 4
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], eax
add edx, eax
mov dword [esp + 0x44], edx
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x38]
mov edx, esi
push dword [ebp + 8]
push eax
call sym.clap::parse::parser::Parser::add_multiple_vals_to_arg::h30677e2556bcb6a1
add esp, 8
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x134]
test eax, eax
mov dword [esp + 0x10], eax
je 0x423b2e
mov eax, dword [ebp + 8]
cmp dword [eax + 0x1c], 0
je 0x423b2e
mov esi, dword [ebp + 8]
mov eax, dword [esp + 0xc]
mov edi, dword [eax + 0x38]
mov edx, dword [esi + 4]
mov eax, dword [eax + 0x3c]
mov ecx, dword [esi]
mov dword [esp + 0x14], eax
push eax
mov dword [esp + 0x1c], edi
push edi
push dword [esi + 0xc]
push dword [esi + 8]
call sym.indexmap::map::IndexMap_LT_K_C_V_C_S_GT_::hash::h24d0e31b59db8ae2
add esp, 0x10
mov ebx, dword [esi + 0x14]
mov edi, dword [esi + 0x10]
mov ecx, dword [esi + 0x20]
mov dword [esp], ebx
and ebx, eax
shr eax, 0x19
mov dword [esp + 4], ecx
mov dword [esp + 0x1c], edi
movd xmm0, eax
movdqu xmm1, xmmword [edi + ebx]
mov eax, dword [esi + 0x28]
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
movdqa xmm2, xmm0
mov dword [esp + 8], eax
xor eax, eax
pcmpeqb xmm2, xmm1
pmovmskb edx, xmm2
pcmpeqd xmm2, xmm2
test dx, dx
je 0x423710
mov esi, dword [esp]
jmp 0x42374e
mov esi, dword [esp]
nop word cs:[eax + eax]
nop dword [eax]
pcmpeqb xmm1, xmm2
pmovmskb ecx, xmm1
test ecx, ecx
jne 0x423b2e
lea ebx, [eax + ebx + 0x10]
movdqa xmm3, xmm0
add eax, 0x10
and ebx, esi
movdqu xmm1, xmmword [edi + ebx]
pcmpeqb xmm3, xmm1
pmovmskb edx, xmm3
test edx, edx
je 0x423720
tzcnt ecx, edx
add ecx, ebx
and ecx, esi
shl ecx, 2
sub edi, ecx
mov ecx, dword [edi - 4]
cmp dword [esp + 8], ecx
jbe 0x423b9a
mov esi, dword [esp + 4]
lea edi, [edx - 1]
imul ecx, ecx, 0x38
and edi, edx
mov edx, dword [esi + ecx + 4]
mov esi, dword [esi + ecx]
xor edx, dword [esp + 0x14]
xor esi, dword [esp + 0x18]
or esi, edx
mov edx, edi
mov edi, dword [esp + 0x1c]
jne 0x4236fe
mov eax, dword [esp + 4]
mov eax, dword [eax + ecx + 0x24]
test eax, eax
je 0x423860
mov edx, dword [esp + 4]
xor esi, esi
cmp eax, 8
mov ecx, dword [edx + ecx + 0x1c]
mov edx, 0
jb 0x42383d
mov edx, eax
lea esi, [ecx + 0x5c]
pxor xmm0, xmm0
pxor xmm1, xmm1
and edx, 0xfffffff8
mov edi, edx
nop dword [eax + eax]
movd xmm2, dword [esi - 0x30]
movd xmm3, dword [esi - 0x3c]
movd xmm4, dword [esi - 0x54]
movd xmm6, dword [esi - 0xc]
movd xmm5, dword [esi - 0x18]
punpckldq xmm3, xmm2
movd xmm2, dword [esi - 0x48]
punpckldq xmm4, xmm2
movd xmm2, dword [esi]
punpcklqdq xmm4, xmm3
paddd xmm0, xmm4
movd xmm4, dword [esi - 0x24]
add esi, 0x60
add edi, 0xfffffff8
punpckldq xmm6, xmm2
punpckldq xmm4, xmm5
punpcklqdq xmm4, xmm6
paddd xmm1, xmm4
jne 0x4237d0
paddd xmm1, xmm0
cmp eax, edx
pshufd xmm0, xmm1, 0xee
paddd xmm0, xmm1
pshufd xmm1, xmm0, 0x55
paddd xmm1, xmm0
movd esi, xmm1
je 0x423858
sub eax, edx
lea edx, [edx + edx*2]
lea ecx, [ecx + edx*4 + 8]
nop word cs:[eax + eax]
add esi, dword [ecx]
add ecx, 0xc
dec eax
jne 0x423850
test esi, esi
jne 0x423b2e
mov esi, dword [esp + 0xc]
mov edx, dword [esi + 0x80]
lea ecx, [esp + 0x2c]
push dword [esp + 0x10]
push dword [esi + 0x12c]
call sym.clap::parse::parser::Parser::add_value::process_default_vals::hacfbe30e266f3d3c
add esp, 8
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
shl edx, 4
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], eax
add edx, eax
mov dword [esp + 0x44], edx
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x38]
mov edx, esi
push dword [ebp + 8]
push eax
call sym.clap::parse::parser::Parser::add_multiple_vals_to_arg::h30677e2556bcb6a1
add esp, 8
jmp 0x423b2e
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 8]
mov ebx, dword [esi + 0x14]
mov dword [esp + 0x14], ecx
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x24], edx
mov edx, dword [esi + 0x28]
mov dword [esp + 0x28], eax
mov esi, ecx
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], ebx
mov ecx, dword [eax + 0x120]
mov eax, dword [esp + 8]
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
mov dword [esp + 0x74], eax
jmp 0x423920
mov ecx, dword [esp]
add ecx, 0x18
cmp ecx, dword [esp + 0x74]
je 0x4234e6
cmp dword [esp + 0x78], 0
mov dword [esp], ecx
je 0x423910
mov eax, dword [esp]
mov edi, dword [eax]
mov eax, dword [eax + 4]
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x70]
mov dword [esp + 8], eax
push eax
mov dword [esp + 8], edi
push edi
push dword [esp + 0x2c]
push dword [esp + 0x34]
call sym.indexmap::map::IndexMap_LT_K_C_V_C_S_GT_::hash::h24d0e31b59db8ae2
pcmpeqd xmm3, xmm3
add esp, 0x10
mov edx, ebx
and edx, eax
shr eax, 0x19
movd xmm0, eax
movdqu xmm1, xmmword [esi + edx]
xor eax, eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
movdqa xmm2, xmm0
pcmpeqb xmm2, xmm1
pmovmskb edi, xmm2
test di, di
jne 0x4239be
nop dword [eax]
pcmpeqb xmm1, xmm3
pmovmskb ecx, xmm1
test ecx, ecx
jne 0x423910
lea edx, [eax + edx + 0x10]
movdqa xmm2, xmm0
add eax, 0x10
and edx, ebx
movdqu xmm1, xmmword [esi + edx]
pcmpeqb xmm2, xmm1
pmovmskb edi, xmm2
test edi, edi
je 0x423990
tzcnt ecx, edi
add ecx, edx
and ecx, ebx
mov ebx, esi
shl ecx, 2
sub ebx, ecx
mov ecx, dword [ebx - 4]
cmp dword [esp + 0x10], ecx
jbe 0x423b72
mov esi, dword [esp + 0x14]
lea ebx, [edi - 1]
imul ecx, ecx, 0x38
and ebx, edi
mov edi, dword [esi + ecx + 4]
mov esi, dword [esi + ecx]
xor edi, dword [esp + 8]
xor esi, dword [esp + 4]
or esi, edi
mov edi, ebx
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
jne 0x423984
mov edx, dword [esp]
mov eax, dword [edx + 8]
test eax, eax
mov dword [esp + 4], eax
je 0x423a99
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov eax, dword [eax + ecx + 0x24]
test eax, eax
je 0x423910
mov edx, dword [esp + 0x14]
lea eax, [eax + eax*2]
mov ecx, dword [edx + ecx + 0x1c]
lea eax, [ecx + eax*4]
mov dword [esp + 0x64], eax
jmp 0x423a52
mov ecx, dword [esp + 8]
mov ebx, dword [esp + 0x18]
cmp ecx, dword [esp + 0x64]
je 0x423910
mov edi, dword [ecx]
mov ebx, dword [ecx + 8]
mov edx, dword [esp]
mov eax, ecx
lea eax, [ecx + 0xc]
mov dword [esp + 8], eax
add edi, 8
shl ebx, 4
jmp 0x423a76
add edi, 0x10
add ebx, 0xfffffff0
test ebx, ebx
je 0x423a40
mov eax, dword [edi]
cmp dword [edx + 0xc], eax
jne 0x423a70
push eax
push dword [edi - 8]
push dword [esp + 0xc]
call sub.msvcrt.dll_memcmp
mov edx, dword [esp + 0xc]
add esp, 0xc
test eax, eax
jne 0x423a70
mov eax, edx
mov edx, dword [edx + 0x10]
test edx, edx
je 0x423b2e
lea ecx, [esp + 0x38]
push dword [eax + 0x14]
call sym.os_str_bytes::imp::os_str_to_bytes::h3b6e3a7e19cc36c9
add esp, 4
mov edi, dword [esp + 0x38]
mov ebx, dword [esp + 0x3c]
test edi, edi
mov eax, edi
cmove eax, ebx
movzx esi, byte [ebp + 0xc]
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0x38]
push esi
push 0
push 2
push dword [ebp + 8]
push dword [esp + 0x50]
push eax
push dword [esp + 0x24]
call sym.clap::parse::parser::Parser::add_val_to_arg::h21e9697b3ee8c45c
add esp, 0x1c
mov eax, dword [esp + 0x38]
cmp eax, 7
ja 0x423b18
mov ecx, dword [esp + 0x68]
add ecx, dword [eax*4 + 0x423bd0]
jmp ecx
test edi, edi
je 0x423b2e
test ebx, ebx
je 0x423b2e
push edi
push 0
push dword [0x5c6108]
call sub.KERNEL32.dll_HeapFree
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, dword [esp + 0x10]
push 0x55543c
call dbg.panic_bounds_check
add esp, 4
ud2
jmp 0x423b72
mov edx, dword [esp + 4]
push 0x55543c
call dbg.panic_bounds_check
add esp, 4
ud2
mov edx, dword [esp + 8]
push 0x55543c
call dbg.panic_bounds_check
add esp, 4
ud2