Function at 0x405ad0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xd0
mov eax, dword [0x40a004]
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 0x405b7d
mov ecx, dword [esi]
call fcn.00405770
lea eax, [edi - 0x31]
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00406480
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 4]
mov ecx, 0x408cdc
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x405ba5
test dl, dl
je 0x405ba1
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x405ba5
add eax, 2
add ecx, 2
test dl, dl
jne 0x405b85
xor eax, eax
jmp 0x405baa
sbb eax, eax
or eax, 1
test eax, eax
jne 0x405bca
mov ecx, dword [esi]
call fcn.00405770
pop edi
mov eax, 1
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00406480
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 0x4063cb
cmp eax, 0x80
je 0x4063d5
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 0x406315
mov esi, dword [esi + ebx*4]
mov ecx, 0x408cdc
mov eax, esi
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x405c50
test dl, dl
je 0x405c4c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x405c50
add eax, 2
add ecx, 2
test dl, dl
jne 0x405c30
xor eax, eax
jmp 0x405c55
sbb eax, eax
or eax, 1
test eax, eax
je 0x4062f2
mov ecx, 0x408d38
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x405c84
test dl, dl
je 0x405c80
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x405c84
add eax, 2
add ecx, 2
test dl, dl
jne 0x405c64
xor eax, eax
jmp 0x405c89
sbb eax, eax
or eax, 1
test eax, eax
jne 0x405d2b
cmp dword [ebp - 0xbc], eax
jne 0x40641b
mov eax, dword [ebp + 8]
dec eax
mov dword [ebp - 0xbc], 1
cmp ebx, eax
jge 0x4063fd
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 0x4063f3
cmp ecx, 0xffffffff
je 0x4063f3
cmp ecx, 0x15
ja 0x4063f3
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 0x4063df
jb 0x405d1a
cmp edx, 0xffffffff
jae 0x4063df
cmp edx, 0x200000
ja 0x4063df
jmp 0x40613d
mov ecx, 0x408d9c
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x405d52
test dl, dl
je 0x405d4e
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x405d52
add eax, 2
add ecx, 2
test dl, dl
jne 0x405d32
xor eax, eax
jmp 0x405d57
sbb eax, eax
or eax, 1
test eax, eax
jne 0x405dcb
cmp dword [ebp - 0xbc], eax
jne 0x40641b
mov eax, dword [ebp + 8]
dec eax
mov dword [ebp - 0xbc], 1
cmp ebx, eax
jge 0x406411
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 0x406407
cmp eax, 0xffffffff
je 0x406407
or ecx, 0xffffffff
cmp eax, 0xffffffff
cmovb ecx, eax
mov dword [ebp - 0x94], ecx
cmp ecx, 0x200000
ja 0x4063df
jmp 0x40613d
mov ecx, 0x408dd0
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x405df2
test dl, dl
je 0x405dee
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x405df2
add eax, 2
add ecx, 2
test dl, dl
jne 0x405dd2
xor eax, eax
jmp 0x405df7
sbb eax, eax
or eax, 1
test eax, eax
jne 0x405e40
mov eax, dword [ebp + 8]
dec eax
cmp ebx, eax
jge 0x406425
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 0x4063e9
cmp eax, 0xffffffff
je 0x4063e9
jmp 0x40613d
mov ecx, 0x408e04
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x405e67
test dl, dl
je 0x405e63
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x405e67
add eax, 2
add ecx, 2
test dl, dl
jne 0x405e47
xor eax, eax
jmp 0x405e6c
sbb eax, eax
or eax, 1
test eax, eax
jne 0x405ec9
mov eax, dword [ebp + 8]
dec eax
cmp ebx, eax
jge 0x406439
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 0x40642f
cmp ecx, 0xffffffff
je 0x40642f
cmp ecx, 0xffffff
ja 0x40642f
mov dword [ebp - 0xb0], ecx
jmp 0x40613d
mov ecx, 0x408e38
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x405ef0
test dl, dl
je 0x405eec
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x405ef0
add eax, 2
add ecx, 2
test dl, dl
jne 0x405ed0
xor eax, eax
jmp 0x405ef5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x405f2d
mov eax, dword [ebp + 8]
dec eax
cmp ebx, eax
jge 0x406443
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 0x40613d
mov ecx, 0x408e50
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x405f54
test dl, dl
je 0x405f50
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x405f54
add eax, 2
add ecx, 2
test dl, dl
jne 0x405f34
xor eax, eax
jmp 0x405f59
sbb eax, eax
or eax, 1
test eax, eax
jne 0x405f72
inc dword [ebp - 0xa8]
mov dword [ebp - 0x90], 1
jmp 0x40613d
mov ecx, 0x408e54
mov eax, esi
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x405fa0
test dl, dl
je 0x405f9c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x405fa0
add eax, 2
add ecx, 2
test dl, dl
jne 0x405f80
xor eax, eax
jmp 0x405fa5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x405fba
inc dword [ebp - 0xa8]
mov dword [ebp - 0x90], eax
jmp 0x40613d
mov ecx, 0x408e58
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x405fe1
test dl, dl
je 0x405fdd
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x405fe1
add eax, 2
add ecx, 2
test dl, dl
jne 0x405fc1
xor eax, eax
jmp 0x405fe6
sbb eax, eax
or eax, 1
test eax, eax
jne 0x405fff
inc dword [ebp - 0xa8]
mov dword [ebp - 0x90], 2
jmp 0x40613d
mov ecx, 0x408e5c
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x406026
test dl, dl
je 0x406022
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x406026
add eax, 2
add ecx, 2
test dl, dl
jne 0x406006
xor eax, eax
jmp 0x40602b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40603e
mov dword [ebp - 0x9c], 1
jmp 0x40613d
mov ecx, 0x408e60
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x406065
test dl, dl
je 0x406061
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x406065
add eax, 2
add ecx, 2
test dl, dl
jne 0x406045
xor eax, eax
jmp 0x40606a
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40607d
mov dword [ebp - 0xac], 1
jmp 0x40613d
mov eax, 0x408e64
mov cl, byte [esi]
cmp cl, byte [eax]
jne 0x4060a2
test cl, cl
je 0x40609e
mov cl, byte [esi + 1]
cmp cl, byte [eax + 1]
jne 0x4060a2
add esi, 2
add eax, 2
test cl, cl
jne 0x406082
xor eax, eax
jmp 0x4060a7
sbb eax, eax
or eax, 1
test eax, eax
jne 0x406475
mov eax, dword [ebp + 8]
dec eax
cmp ebx, eax
jge 0x40646b
mov ecx, dword [ebp - 0x98]
inc ebx
mov dword [ebp - 0x8c], ebx
mov edx, dword [ecx + ebx*4]
mov ecx, 0x408e68
mov eax, edx
mov bl, byte [eax]
cmp bl, byte [ecx]
jne 0x4060f2
test bl, bl
je 0x4060ee
mov bl, byte [eax + 1]
cmp bl, byte [ecx + 1]
jne 0x4060f2
add eax, 2
add ecx, 2
test bl, bl
jne 0x4060d2
xor eax, eax
jmp 0x4060f7
sbb eax, eax
or eax, 1
test eax, eax
jne 0x406100
lea edi, [eax + 0x10]
jmp 0x406137
mov eax, 0x408e6c
mov cl, byte [edx]
cmp cl, byte [eax]
jne 0x406125
test cl, cl
je 0x406121
mov cl, byte [edx + 1]
cmp cl, byte [eax + 1]
jne 0x406125
add edx, 2
add eax, 2
test cl, cl
jne 0x406105
xor eax, eax
jmp 0x40612a
sbb eax, eax
or eax, 1
test eax, eax
jne 0x406461
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 0x4061af
mov ebx, dword [ebp - 0x8c]
mov edi, dword [ebp - 0x88]
mov esi, dword [ebp - 0x98]
jmp 0x405c22
cmp dword [ebp - 0xa8], 1
jg 0x40644d
cmp dword [ebp - 0x9c], 0
je 0x4061d8
mov ebx, dword [ebp - 0xac]
test ebx, ebx
jne 0x406457
jmp 0x40636c
cmp dword [ebp - 0xac], 0
jne 0x406366
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 0x4062a5
sub eax, 1
je 0x406315
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 0x40629b
xor eax, eax
jmp 0x406326
mov eax, str.Argon2id
jmp 0x406326
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 0x406326
mov ecx, dword [ebp - 0x98]
mov ecx, dword [ecx]
call fcn.00405770
pop ebx
pop edi
mov eax, 1
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00406480
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.00405730
push dword [ebp - 0xa4]
push str.Iterations:_t_u_n
call fcn.00405730
push dword [ebp - 0x94]
push str.Memory:_t_t_u_KiB_n
call fcn.00405730
push dword [ebp - 0xa0]
push str.Parallelism:_t_u_n
call fcn.00405730
add esp, 0x20
jmp 0x406372
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.00405860
mov ecx, dword [ebp - 4]
add esp, 0x28
xor ecx, ebp
xor eax, eax
pop ebx
pop edi
pop esi
call fcn.00406480
mov esp, ebp
pop ebp
ret
mov ecx, str.no_password_read
call fcn.00405830
mov ecx, str.Provided_password_longer_than_supported_in_command_line_utility
call fcn.00405830
mov ecx, str.m_cost_overflow
call fcn.00405830
mov ecx, str.bad_numeric_input_for__t
call fcn.00405830
mov ecx, str.bad_numeric_input_for__m
call fcn.00405830
mov ecx, str.missing__m_argument
call fcn.00405830
mov ecx, str.bad_numeric_input_for__k
call fcn.00405830
mov ecx, str.missing__k_argument
call fcn.00405830
mov ecx, str._m_or__k_can_only_be_used_once
call fcn.00405830
mov ecx, str.missing__t_argument
call fcn.00405830
mov ecx, str.bad_numeric_input_for__p
call fcn.00405830
mov ecx, str.missing__p_argument
call fcn.00405830
mov ecx, str.missing__l_argument
call fcn.00405830
mov ecx, str.cannot_specify_multiple_Argon2_types
call fcn.00405830
mov ecx, str.cannot_provide_both__e_and__r
call fcn.00405830
mov ecx, str.invalid_Argon2_version
call fcn.00405830
mov ecx, str.missing__v_argument
call fcn.00405830
mov ecx, str.unknown_argument
call fcn.00405830
int3