Function at 0x404ee0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xd0
mov eax, dword [0x409004]
xor eax, ebp
mov dword [ebp - 4], eax
cmp dword [ebp + 8], 2
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, 0x13
mov dword [ebp - 0x98], esi
mov dword [ebp - 0xb4], 0x20
mov dword [ebp - 0x94], 0x1000
mov dword [ebp - 0xa4], 3
mov dword [ebp - 0xa0], 1
mov dword [ebp - 0xb0], 1
mov dword [ebp - 0x90], 1
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0x9c], 0
mov dword [ebp - 0xac], 0
mov dword [ebp - 0x88], edi
jge 0x404f8d
mov ecx, dword [esi]
call fcn.00404b80
lea eax, [edi - 0x31]
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00405890
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 4]
mov ecx, 0x407cdc
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x404fb5
test dl, dl
je 0x404fb1
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x404fb5
add eax, 2
add ecx, 2
test dl, dl
jne 0x404f95
xor eax, eax
jmp 0x404fba
sbb eax, eax
or eax, 1
test eax, eax
jne 0x404fda
mov ecx, dword [esi]
call fcn.00404b80
pop edi
mov eax, 1
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00405890
mov esp, ebp
pop ebp
ret
push 0
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
push eax
push 0x80
lea eax, [ebp - 0x84]
push 1
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
add esp, 0x14
mov dword [ebp - 0xd0], eax
cmp eax, 1
jb 0x4057db
cmp eax, 0x80
je 0x4057e5
mov eax, dword [esi + 4]
push ebx
mov ebx, 2
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0x8c], ebx
cmp dword [ebp + 8], ebx
jle 0x405725
mov esi, dword [esi + ebx*4]
mov ecx, 0x407cdc
mov eax, esi
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x405060
test dl, dl
je 0x40505c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x405060
add eax, 2
add ecx, 2
test dl, dl
jne 0x405040
xor eax, eax
jmp 0x405065
sbb eax, eax
or eax, 1
test eax, eax
je 0x405702
mov ecx, 0x407d38
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x405094
test dl, dl
je 0x405090
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x405094
add eax, 2
add ecx, 2
test dl, dl
jne 0x405074
xor eax, eax
jmp 0x405099
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40513b
cmp dword [ebp - 0xbc], eax
jne 0x40582b
mov eax, dword [ebp + 8]
dec eax
mov dword [ebp - 0xbc], 1
cmp ebx, eax
jge 0x40580d
mov ecx, dword [ebp - 0x98]
inc ebx
push 0xa
push 0
mov dword [ebp - 0x8c], ebx
push dword [ecx + ebx*4]
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtoul]
mov ecx, eax
add esp, 0xc
test ecx, ecx
je 0x405803
cmp ecx, 0xffffffff
je 0x405803
cmp ecx, 0x15
ja 0x405803
xor edx, edx
xor eax, eax
bts edx, ecx
cmp ecx, 0x20
cmovae eax, edx
xor edx, eax
cmp ecx, 0x40
mov dword [ebp - 0x94], edx
cmovae eax, edx
test eax, eax
ja 0x4057ef
jb 0x40512a
cmp edx, 0xffffffff
jae 0x4057ef
cmp edx, 0x200000
ja 0x4057ef
jmp 0x40554d
mov ecx, 0x407d9c
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x405162
test dl, dl
je 0x40515e
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x405162
add eax, 2
add ecx, 2
test dl, dl
jne 0x405142
xor eax, eax
jmp 0x405167
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4051db
cmp dword [ebp - 0xbc], eax
jne 0x40582b
mov eax, dword [ebp + 8]
dec eax
mov dword [ebp - 0xbc], 1
cmp ebx, eax
jge 0x405821
mov ecx, dword [ebp - 0x98]
inc ebx
push 0xa
push 0
mov dword [ebp - 0x8c], ebx
push dword [ecx + ebx*4]
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtoul]
add esp, 0xc
test eax, eax
je 0x405817
cmp eax, 0xffffffff
je 0x405817
or ecx, 0xffffffff
cmp eax, 0xffffffff
cmovb ecx, eax
mov dword [ebp - 0x94], ecx
cmp ecx, 0x200000
ja 0x4057ef
jmp 0x40554d
mov ecx, 0x407dd0
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x405202
test dl, dl
je 0x4051fe
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x405202
add eax, 2
add ecx, 2
test dl, dl
jne 0x4051e2
xor eax, eax
jmp 0x405207
sbb eax, eax
or eax, 1
test eax, eax
jne 0x405250
mov eax, dword [ebp + 8]
dec eax
cmp ebx, eax
jge 0x405835
mov ecx, dword [ebp - 0x98]
inc ebx
push 0xa
push 0
mov dword [ebp - 0x8c], ebx
push dword [ecx + ebx*4]
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtoul]
add esp, 0xc
mov dword [ebp - 0xa4], eax
test eax, eax
je 0x4057f9
cmp eax, 0xffffffff
je 0x4057f9
jmp 0x40554d
mov ecx, 0x407e04
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x405277
test dl, dl
je 0x405273
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x405277
add eax, 2
add ecx, 2
test dl, dl
jne 0x405257
xor eax, eax
jmp 0x40527c
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4052d9
mov eax, dword [ebp + 8]
dec eax
cmp ebx, eax
jge 0x405849
mov ecx, dword [ebp - 0x98]
inc ebx
push 0xa
push 0
mov dword [ebp - 0x8c], ebx
push dword [ecx + ebx*4]
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtoul]
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0xa0], ecx
test ecx, ecx
je 0x40583f
cmp ecx, 0xffffffff
je 0x40583f
cmp ecx, 0xffffff
ja 0x40583f
mov dword [ebp - 0xb0], ecx
jmp 0x40554d
mov ecx, 0x407e38
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x405300
test dl, dl
je 0x4052fc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x405300
add eax, 2
add ecx, 2
test dl, dl
jne 0x4052e0
xor eax, eax
jmp 0x405305
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40533d
mov eax, dword [ebp + 8]
dec eax
cmp ebx, eax
jge 0x405853
mov ecx, dword [ebp - 0x98]
inc ebx
push 0xa
push 0
mov dword [ebp - 0x8c], ebx
push dword [ecx + ebx*4]
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtoul]
add esp, 0xc
mov dword [ebp - 0xb4], eax
jmp 0x40554d
mov ecx, 0x407e50
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x405364
test dl, dl
je 0x405360
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x405364
add eax, 2
add ecx, 2
test dl, dl
jne 0x405344
xor eax, eax
jmp 0x405369
sbb eax, eax
or eax, 1
test eax, eax
jne 0x405382
inc dword [ebp - 0xa8]
mov dword [ebp - 0x90], 1
jmp 0x40554d
mov ecx, 0x407e54
mov eax, esi
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4053b0
test dl, dl
je 0x4053ac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4053b0
add eax, 2
add ecx, 2
test dl, dl
jne 0x405390
xor eax, eax
jmp 0x4053b5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4053ca
inc dword [ebp - 0xa8]
mov dword [ebp - 0x90], eax
jmp 0x40554d
mov ecx, 0x407e58
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4053f1
test dl, dl
je 0x4053ed
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4053f1
add eax, 2
add ecx, 2
test dl, dl
jne 0x4053d1
xor eax, eax
jmp 0x4053f6
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40540f
inc dword [ebp - 0xa8]
mov dword [ebp - 0x90], 2
jmp 0x40554d
mov ecx, 0x407e5c
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x405436
test dl, dl
je 0x405432
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x405436
add eax, 2
add ecx, 2
test dl, dl
jne 0x405416
xor eax, eax
jmp 0x40543b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40544e
mov dword [ebp - 0x9c], 1
jmp 0x40554d
mov ecx, 0x407e60
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x405475
test dl, dl
je 0x405471
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x405475
add eax, 2
add ecx, 2
test dl, dl
jne 0x405455
xor eax, eax
jmp 0x40547a
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40548d
mov dword [ebp - 0xac], 1
jmp 0x40554d
mov eax, 0x407e64
mov cl, byte [esi]
cmp cl, byte [eax]
jne 0x4054b2
test cl, cl
je 0x4054ae
mov cl, byte [esi + 1]
cmp cl, byte [eax + 1]
jne 0x4054b2
add esi, 2
add eax, 2
test cl, cl
jne 0x405492
xor eax, eax
jmp 0x4054b7
sbb eax, eax
or eax, 1
test eax, eax
jne 0x405885
mov eax, dword [ebp + 8]
dec eax
cmp ebx, eax
jge 0x40587b
mov ecx, dword [ebp - 0x98]
inc ebx
mov dword [ebp - 0x8c], ebx
mov edx, dword [ecx + ebx*4]
mov ecx, 0x407e68
mov eax, edx
mov bl, byte [eax]
cmp bl, byte [ecx]
jne 0x405502
test bl, bl
je 0x4054fe
mov bl, byte [eax + 1]
cmp bl, byte [ecx + 1]
jne 0x405502
add eax, 2
add ecx, 2
test bl, bl
jne 0x4054e2
xor eax, eax
jmp 0x405507
sbb eax, eax
or eax, 1
test eax, eax
jne 0x405510
lea edi, [eax + 0x10]
jmp 0x405547
mov eax, 0x407e6c
mov cl, byte [edx]
cmp cl, byte [eax]
jne 0x405535
test cl, cl
je 0x405531
mov cl, byte [edx + 1]
cmp cl, byte [eax + 1]
jne 0x405535
add edx, 2
add eax, 2
test cl, cl
jne 0x405515
xor eax, eax
jmp 0x40553a
sbb eax, eax
or eax, 1
test eax, eax
jne 0x405871
mov edi, 0x13
mov dword [ebp - 0x88], edi
mov eax, dword [ebp - 0xa0]
mov edx, edi
inc dword [ebp - 0x8c]
mov esi, dword [ebp - 0xac]
mov edi, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0x90]
mov ebx, dword [ebp - 0xb0]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0x94]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0xb4]
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp + 8]
cmp dword [ebp - 0x8c], eax
jge 0x4055bf
mov ebx, dword [ebp - 0x8c]
mov edi, dword [ebp - 0x88]
mov esi, dword [ebp - 0x98]
jmp 0x405032
cmp dword [ebp - 0xa8], 1
jg 0x40585d
cmp dword [ebp - 0x9c], 0
je 0x4055e8
mov ebx, dword [ebp - 0xac]
test ebx, ebx
jne 0x405867
jmp 0x40577c
cmp dword [ebp - 0xac], 0
jne 0x405776
mov eax, dword [ebp - 0xc0]
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0xb8]
mov dword [ebp - 0xa0], eax
mov eax, ecx
mov dword [ebp - 0xb0], ebx
mov dword [ebp - 0x90], ecx
mov dword [ebp - 0x9c], edi
mov dword [ebp - 0xac], esi
mov dword [ebp - 0x88], edx
sub eax, 0
je 0x4056b5
sub eax, 1
je 0x405725
sub eax, 1
mov dword [ebp - 0xb0], ebx
mov eax, dword [ebp - 0xc0]
mov ebx, esi
mov dword [ebp - 0xb4], eax
mov esi, edx
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0xb8]
mov dword [ebp - 0x90], ecx
mov dword [ebp - 0x9c], edi
mov dword [ebp - 0x88], edx
mov dword [ebp - 0xa0], eax
je 0x4056ab
xor eax, eax
jmp 0x405736
mov eax, str.Argon2id
jmp 0x405736
mov eax, dword [ebp - 0xc0]
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0xb8]
mov dword [ebp - 0xb0], ebx
mov ebx, esi
mov dword [ebp - 0xa0], eax
mov esi, edx
mov dword [ebp - 0x90], ecx
mov eax, str.Argon2d
mov dword [ebp - 0x9c], edi
jmp 0x405736
mov ecx, dword [ebp - 0x98]
mov ecx, dword [ecx]
call fcn.00404b80
pop ebx
pop edi
mov eax, 1
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00405890
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp - 0x88]
mov eax, str.Argon2i
mov ebx, dword [ebp - 0xac]
push eax
push str.Type:_t_t_s_n
call fcn.00404b40
push dword [ebp - 0xa4]
push str.Iterations:_t_u_n
call fcn.00404b40
push dword [ebp - 0x94]
push str.Memory:_t_t_u_KiB_n
call fcn.00404b40
push dword [ebp - 0xa0]
push str.Parallelism:_t_u_n
call fcn.00404b40
add esp, 0x20
jmp 0x405782
mov ebx, dword [ebp - 0xac]
mov esi, dword [ebp - 0x88]
push esi
mov ecx, dword [ebp - 0xb4]
lea edx, [ebp - 0x84]
push ebx
push dword [ebp - 0x9c]
push dword [ebp - 0x90]
push dword [ebp - 0xb0]
push dword [ebp - 0xa0]
push dword [ebp - 0x94]
push dword [ebp - 0xa4]
push dword [ebp - 0xcc]
push dword [ebp - 0xd0]
call fcn.00404c70
mov ecx, dword [ebp - 4]
add esp, 0x28
xor ecx, ebp
xor eax, eax
pop ebx
pop edi
pop esi
call fcn.00405890
mov esp, ebp
pop ebp
ret
mov ecx, str.no_password_read
call fcn.00404c40
mov ecx, str.Provided_password_longer_than_supported_in_command_line_utility
call fcn.00404c40
mov ecx, str.m_cost_overflow
call fcn.00404c40
mov ecx, str.bad_numeric_input_for__t
call fcn.00404c40
mov ecx, str.bad_numeric_input_for__m
call fcn.00404c40
mov ecx, str.missing__m_argument
call fcn.00404c40
mov ecx, str.bad_numeric_input_for__k
call fcn.00404c40
mov ecx, str.missing__k_argument
call fcn.00404c40
mov ecx, str._m_or__k_can_only_be_used_once
call fcn.00404c40
mov ecx, str.missing__t_argument
call fcn.00404c40
mov ecx, str.bad_numeric_input_for__p
call fcn.00404c40
mov ecx, str.missing__p_argument
call fcn.00404c40
mov ecx, str.missing__l_argument
call fcn.00404c40
mov ecx, str.cannot_specify_multiple_Argon2_types
call fcn.00404c40
mov ecx, str.cannot_provide_both__e_and__r
call fcn.00404c40
mov ecx, str.invalid_Argon2_version
call fcn.00404c40
mov ecx, str.missing__v_argument
call fcn.00404c40
mov ecx, str.unknown_argument
call fcn.00404c40
int3