joyce8/EMBER2024-capa huggingface dataset:
Function at 0x421bc0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1c
push ebx
mov eax, ecx
mov dword [esp + 0xc], edx
mov ecx, dword [ebp + 8]
mov dword [esp + 8], eax
push esi
push edi
test eax, eax
je 0x421c52
test ecx, ecx
je 0x421c52
test edx, edx
jne 0x421bee
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, edx
xor ebx, ebx
lea eax, [edi*8]
mov esi, 0x7e0000
cmp eax, 0x3f00000
mov eax, dword [esp + 0x10]
push ecx
cmovb esi, edi
push esi
lea eax, [eax + ebx*8]
push 8
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
add esp, 0x10
add ebx, eax
sub edi, eax
cmp esi, eax
jne 0x421c33
mov ecx, dword [ebp + 8]
test edi, edi
jne 0x421bf2
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test edi, edi
je 0x421c49
push dword [esp + 0x14]
push ebx
push str.cimg::fread__:_Only__lu__lu_elements_could_be_read_from_file.
call fcn.00401b40
add esp, 0xc
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret
push eax
push ecx
cmp edx, 1
mov eax, 0x4587c0
mov ecx, 0x4393e2
cmovbe eax, ecx
push eax
call fcn.00401980
push eax
push edx
lea eax, [esp + 0x2c]
push str.cimg::fread__:_Invalid_reading_request_of__u__s_s_from_file__p_to_buffer__p.
push eax
call fcn.00401450
add esp, 0x1c
lea eax, [esp + 0x18]
push 0x475714
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
int3

Function at 0x421c90
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1c
push ebx
mov eax, ecx
mov dword [esp + 0xc], edx
mov ecx, dword [ebp + 8]
mov dword [esp + 8], eax
push esi
push edi
test eax, eax
je 0x421d22
test ecx, ecx
je 0x421d22
test edx, edx
jne 0x421cbe
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, edx
xor ebx, ebx
lea eax, [edi*8]
mov esi, 0x7e0000
cmp eax, 0x3f00000
mov eax, dword [esp + 0x10]
push ecx
cmovb esi, edi
push esi
lea eax, [eax + ebx*8]
push 8
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
add esp, 0x10
add ebx, eax
sub edi, eax
cmp esi, eax
jne 0x421d03
mov ecx, dword [ebp + 8]
test edi, edi
jne 0x421cc2
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test edi, edi
je 0x421d19
push dword [esp + 0x14]
push ebx
push str.cimg::fread__:_Only__lu__lu_elements_could_be_read_from_file.
call fcn.00401b40
add esp, 0xc
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret
push eax
push ecx
cmp edx, 1
mov eax, 0x4587c0
mov ecx, 0x4393e2
cmovbe eax, ecx
push eax
call fcn.00401990
push eax
push edx
lea eax, [esp + 0x2c]
push str.cimg::fread__:_Invalid_reading_request_of__u__s_s_from_file__p_to_buffer__p.
push eax
call fcn.00401450
add esp, 0x1c
lea eax, [esp + 0x18]
push 0x475714
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
int3
Function at 0x42c4e0
Capabilities:
Manipulate console buffer

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, dword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
mov ebx, ecx
push edi
call esi
cmp byte [ebx + 0x1319], 0
je 0x42c504
mov edi, dword [ebx + 0x1324]
test edi, edi
jns 0x42c50a
mov edi, dword [ebx + 0x1330]
push 0xfffffffffffffff5
mov dword [ebx + 0x1880], edi
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
cmp eax, 0xffffffff
je 0x42c52e
mov dword [ebp - 4], 0x20000
push dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
push dword [ebx + 0x1880]
push 0x439470
call fcn.00401070
add esp, 8
cmp edi, 8
ja case.default.0x42c54a
jmp dword [edi*4 + 0x42c730]
call esi
cdq
mov ecx, 0x7d0
idiv ecx
lea edi, [edx - 0x3e8]
call esi
cdq
mov ecx, 0x7d0
idiv ecx
lea esi, [edx - 0x3e8]
push esi
push edi
lea eax, [ebx + 0x138a]
push 0x465bf4
push eax
call fcn.004011b0
lea eax, [esi + edi]
push eax
jmp 0x42c714
call esi
cdq
mov ecx, 0x7d0
idiv ecx
lea edi, [edx - 0x3e8]
call esi
cdq
mov ecx, 0x7d0
idiv ecx
lea esi, [edx - 0x3e8]
push esi
push edi
lea eax, [ebx + 0x138a]
push 0x465c04
push eax
call fcn.004011b0
sub edi, esi
push edi
jmp 0x42c714
call esi
cdq
mov ecx, 0x1e
idiv ecx
lea edi, [edx - 0xa]
call esi
cdq
mov ecx, 0x1e
idiv ecx
lea esi, [edx - 0xa]
push esi
push edi
lea eax, [ebx + 0x138a]
push str._t_d_____d__
push eax
call fcn.004011b0
imul esi, edi
jmp 0x42c713
call esi
cdq
mov edi, 0x1e
idiv edi
lea eax, [edx - 0xa]
mov dword [ebp - 4], eax
nop dword [eax]
call esi
cdq
idiv edi
sub edx, 0xa
je 0x42c610
jmp 0x42c6fa
call esi
cdq
mov ecx, 0x5d
idiv ecx
lea eax, [ebx + 0x138a]
mov esi, edx
push dword [esi*4 + 0x460308]
push str._t_s___
push eax
call fcn.004011b0
mov ecx, dword [esi*4 + 0x460190]
add esp, 0xc
mov esi, ebx
mov edx, ecx
sub esi, ecx
mov al, byte [edx]
lea edx, [edx + 1]
mov byte [esi + edx + 0x1771], al
test al, al
jne 0x42c653
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x42c666
sub ecx, edx
mov byte [ecx + ebx + 0x1772], al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call esi
cdq
mov ecx, 0x14
idiv ecx
lea edi, [edx - 0xa]
call esi
cdq
mov ecx, 0x14
idiv ecx
lea esi, [edx - 0xa]
jmp 0x42c571
call esi
cdq
mov ecx, 0x14
idiv ecx
lea edi, [edx - 0xa]
call esi
cdq
mov ecx, 0x14
idiv ecx
lea esi, [edx - 0xa]
jmp 0x42c5ad
call esi
cdq
mov ecx, 0x19
idiv ecx
lea edi, [edx - 0xc]
call esi
cdq
mov ecx, 0x19
idiv ecx
lea esi, [edx - 0xc]
jmp 0x42c5e2
call esi
cdq
mov edi, 0x19
idiv edi
lea eax, [edx - 0xc]
mov dword [ebp - 4], eax
nop word [eax + eax]
call esi
cdq
idiv edi
sub edx, 0xc
je 0x42c6f0
mov esi, dword [ebp - 4]
lea eax, [ebx + 0x138a]
push edx
imul edx, esi
push edx
push str._t_d______d__
push eax
call fcn.004011b0
push esi
lea eax, [ebx + 0x1772]
push 0x439470
push eax
call fcn.004011b0
add esp, 0x1c
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x42dd50
Capabilities:
Manipulate console buffer

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
push edi
mov edi, dword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
mov ebx, ecx
call edi
cmp byte [ebx + 0x1319], 0
je 0x42dd76
mov esi, dword [ebx + 0x1324]
test esi, esi
jns 0x42dd7c
mov esi, dword [ebx + 0x1330]
push 0xfffffffffffffff5
mov dword [ebx + 0x1880], esi
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
cmp eax, 0xffffffff
je 0x42dda0
mov dword [ebp - 8], 0x20000
push dword [ebp - 8]
push eax
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
push dword [ebx + 0x1880]
push 0x439470
call fcn.00401070
add esp, 8
sub esi, 0
je 0x42deae
sub esi, 1
je 0x42de29
sub esi, 1
jne 0x42df5c
call edi
cdq
mov ecx, 0x25
idiv ecx
lea eax, [ebx + 0x138a]
mov esi, edx
push dword [esi*4 + 0x460548]
push str._tConvert__s_to_a_percent_value_to_the_nearest_tenth._n_n_If_it_is_a_whole_number__you_must_include_.0_on_the_end._
push eax
call fcn.004011b0
mov eax, dword [esi*4 + 0x460480]
add esp, 0xc
lea esi, [ebx + 0x1772]
mov edx, eax
sub esi, eax
mov cl, byte [edx]
lea edx, [edx + 1]
mov byte [esi + edx - 1], cl
test cl, cl
jne 0x42de02
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x42de12
sub eax, edx
mov byte [eax + ebx + 0x1772], cl
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call edi
call edi
cdq
mov ecx, 0xa
idiv ecx
lea edi, [edx + 0xa]
call dword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
cdq
mov ecx, 0xf
idiv ecx
lea eax, [ebx + 0x138a]
lea esi, [edx + 5]
push esi
push edi
push str._tConvert__d__d_to_a_percent_value_to_the_nearest_tenth._n_n_If_it_is_a_whole_number__you_must_include_.0_on_the_end._
push eax
call fcn.004011b0
imul eax, edi, 0x2710
cdq
idiv esi
lea ecx, [eax + 5]
mov eax, 0x66666667
imul ecx
mov eax, 0x66666667
lea ecx, [ebx + 0x1772]
sar edx, 2
mov edi, edx
shr edi, 0x1f
add edi, edx
imul edi
sar edx, 2
mov esi, edx
shr esi, 0x1f
add esi, edx
lea eax, [esi + esi*4]
add eax, eax
sub edi, eax
push edi
push esi
push str._d._d
push ecx
call fcn.004011b0
add esp, 0x20
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call edi
and eax, 0x80000001
jns 0x42debc
dec eax
or eax, 0xfffffffe
inc eax
sub eax, 0
je 0x42def2
sub eax, 1
jne 0x42df5c
call edi
cdq
mov ecx, 0x5a
idiv ecx
lea eax, [ebx + 0x138a]
lea esi, [edx + 0xa]
push esi
push str.A_decrease_of__d___is_equivalent_to_multiplying_by_what_fraction_
push eax
call fcn.004011b0
mov eax, 0x64
sub eax, esi
jmp 0x42df14
call edi
cdq
mov ecx, 0xc8
idiv ecx
lea eax, [ebx + 0x138a]
lea esi, [edx + 0xa]
push esi
push str.An_increase_of__d___is_equivalent_to_multiplying_by_what_fraction_
push eax
call fcn.004011b0
lea eax, [esi + 0x64]
add esp, 0xc
mov dword [ebp - 4], 0x64
lea edx, [ebp - 4]
mov dword [ebp - 8], eax
lea ecx, [ebp - 8]
call fcn.00435130
mov edi, dword [ebp - 4]
add ebx, 0x1772
mov esi, dword [ebp - 8]
cmp edi, 1
jne 0x42df4c
push esi
push 0x439470
push ebx
call fcn.004011b0
add esp, 0xc
push edi
push esi
push str._d__d
push ebx
call fcn.004011b0
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x430640
Capabilities:
Manipulate console buffer

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
mov ebx, dword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
push esi
push edi
mov edi, ecx
mov dword [ebp - 8], edi
call ebx
cmp byte [edi + 0x1319], 0
je 0x430669
mov esi, dword [edi + 0x1324]
test esi, esi
jns 0x43066f
mov esi, dword [edi + 0x1330]
xor eax, eax
mov dword [edi + 0x1880], esi
push 0xfffffffffffffff5
mov dword [ebp - 4], eax
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
cmp eax, 0xffffffff
je 0x43069a
mov ecx, 2
mov word [ebp - 2], cx
push dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
push dword [edi + 0x1880]
push 0x439470
call fcn.00401070
add esp, 8
sub esi, 0
je 0x430736
sub esi, 1
jne 0x4307c4
call ebx
cdq
mov ecx, 0x12
idiv ecx
lea esi, [edx + 3]
call ebx
lea ecx, [esi + 1]
cdq
idiv ecx
mov ecx, edx
mov dword [ebp - 4], ecx
cmp esi, 0xf
jle 0x430713
mov edi, 0x12
mov eax, esi
cdq
sub eax, edx
sar eax, 1
sub eax, ecx
cdq
xor eax, edx
sub eax, edx
cmp eax, 3
jge 0x430710
call ebx
cdq
idiv edi
lea esi, [edx + 3]
call ebx
lea ecx, [esi + 1]
cdq
idiv ecx
mov ecx, edx
mov dword [ebp - 4], ecx
cmp esi, 0xf
jg 0x4306e3
mov edi, dword [ebp - 8]
call ebx
mov ebx, dword [ebp - 4]
mov eax, esi
push ebx
sub eax, ebx
push eax
lea eax, [edi + 0x138a]
push str._tJoe_needs_to_go__d_blocks_north_and__d_blocks_east._n__tIf_he_only_walks_north_or_east__n__thow_many_different_paths_can_he_take_
push eax
call fcn.004011b0
imul eax, esi, 0x15
add eax, ebx
jmp 0x4307a9
call ebx
cdq
mov ecx, 0x12
idiv ecx
lea esi, [edx + 3]
call ebx
lea ecx, [esi + 1]
cdq
idiv ecx
mov ecx, edx
mov dword [ebp - 4], ecx
cmp esi, 0xf
jle 0x430790
mov edi, 0x12
nop word [eax + eax]
mov eax, esi
cdq
sub eax, edx
sar eax, 1
sub eax, ecx
cdq
xor eax, edx
sub eax, edx
cmp eax, 3
jge 0x43078a
call ebx
cdq
idiv edi
lea esi, [edx + 3]
call ebx
lea ecx, [esi + 1]
cdq
idiv ecx
mov ecx, edx
cmp esi, 0xf
jg 0x430760
mov edi, dword [ebp - 8]
mov dword [ebp - 4], ecx
push ecx
push esi
lea eax, [edi + 0x138a]
push str._tWhat_is__dC_d__
push eax
call fcn.004011b0
imul eax, esi, 0x15
add eax, dword [ebp - 4]
push dword [eax*4 + 0x45e548]
lea eax, [edi + 0x1772]
push 0x439450
push eax
call fcn.004011b0
add esp, 0x1c
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x4307d0
Capabilities:
Manipulate console buffer

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov edi, dword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
mov esi, ecx
call edi
cmp byte [esi + 0x1319], 0
je 0x4307f4
mov ebx, dword [esi + 0x1320]
test ebx, ebx
jns 0x4307fa
mov ebx, dword [esi + 0x132c]
push 0xfffffffffffffff5
mov dword [esi + 0x187c], ebx
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
cmp eax, 0xffffffff
je 0x43081e
mov dword [ebp - 4], 0x10000
push dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
push dword [esi + 0x187c]
push 0x439470
call fcn.00401070
add esp, 8
cmp ebx, 9
ja case.default.0x43083a
jmp dword [ebx*4 + 0x430974]
mov ecx, esi
call fcn.004309a0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call edi
cmp byte [esi + 0x1319], 0
je 0x430864
mov ebx, dword [esi + 0x1324]
test ebx, ebx
jns 0x43086a
mov ebx, dword [esi + 0x1330]
mov eax, dword [sym.imp.KERNEL32.dll_GetStdHandle]
push 0xfffffffffffffff5
mov dword [esi + 0x1880], ebx
call eax
cmp eax, 0xffffffff
je 0x430890
mov dword [ebp - 4], 0x20000
push dword [ebp - 4]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
call eax
push dword [esi + 0x1880]
push 0x439470
call fcn.00401070
add esp, 8
sub ebx, 0
je 0x43096a
sub ebx, 1
jmp 0x430968
call edi
cmp byte [esi + 0x1319], 0
je 0x4308c9
mov ebx, dword [esi + 0x1324]
test ebx, ebx
jns 0x4308cf
mov ebx, dword [esi + 0x1330]
mov eax, dword [sym.imp.KERNEL32.dll_GetStdHandle]
push 0xfffffffffffffff5
mov dword [esi + 0x1880], ebx
call eax
cmp eax, 0xffffffff
je 0x4308f5
mov dword [ebp - 4], 0x20000
push dword [ebp - 4]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
call eax
push dword [esi + 0x1880]
push 0x439470
call fcn.00401070
add esp, 8
sub ebx, 0
je 0x43096a
sub ebx, 1
jmp 0x4308a6
call edi
cmp byte [esi + 0x1319], 0
je 0x430927
mov ebx, dword [esi + 0x1324]
test ebx, ebx
jns 0x43092d
mov ebx, dword [esi + 0x1330]
mov eax, dword [sym.imp.KERNEL32.dll_GetStdHandle]
push 0xfffffffffffffff5
mov dword [esi + 0x1880], ebx
call eax
cmp eax, 0xffffffff
je 0x430953
mov dword [ebp - 4], 0x20000
push dword [ebp - 4]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
call eax
push dword [esi + 0x1880]
push 0x439470
call fcn.00401070
add esp, 8
test ebx, ebx
jne case.default.0x43083a
call edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x4309a0
Capabilities:
Manipulate console buffer

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
push edi
mov edi, dword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
mov ebx, ecx
call edi
cmp byte [ebx + 0x1319], 0
je 0x4309c6
mov esi, dword [ebx + 0x1324]
test esi, esi
jns 0x4309cc
mov esi, dword [ebx + 0x1330]
push 0xfffffffffffffff5
mov dword [ebx + 0x1880], esi
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
cmp eax, 0xffffffff
je 0x4309f0
mov dword [ebp - 4], 0x20000
push dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
push dword [ebx + 0x1880]
push 0x439470
call fcn.00401070
add esp, 8
sub esi, 0
je 0x430a83
sub esi, 1
jne 0x430b07
call edi
call edi
cdq
mov ecx, 0xa
idiv ecx
mov eax, dword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
lea edi, [edx + 1]
call eax
cdq
lea ecx, [edi + 1]
idiv ecx
lea eax, [ebx + 0x138a]
mov esi, edx
push esi
push edi
push str.If_Mary_has__d_children__what_is_the_probability_that_she_has__d_boys_
push eax
call fcn.004011b0
imul eax, edi, 0x15
add eax, esi
push dword [eax*4 + 0x45e548]
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
add esp, 0x14
mov dword [ebp - 8], eax
mov eax, 1
test edi, edi
js 0x430a6d
je 0x430a6d
lea eax, [eax + eax]
sub edi, 1
jne 0x430a65
lea edx, [ebp - 4]
mov dword [ebp - 4], eax
lea ecx, [ebp - 8]
call fcn.00435130
push dword [ebp - 4]
push dword [ebp - 8]
jmp 0x430af3
call edi
call edi
cdq
mov ecx, 0xa
idiv ecx
mov eax, dword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
lea edi, [edx + 1]
call eax
cdq
lea ecx, [edi + 1]
idiv ecx
lea eax, [ebx + 0x138a]
mov esi, edx
push esi
push edi
push str.If__d_coins_are_flipped__what_is_the_probability_of_getting__d_heads_
push eax
call fcn.004011b0
imul eax, edi, 0x15
add eax, esi
push dword [eax*4 + 0x45e548]
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
add esp, 0x14
mov dword [ebp - 4], eax
mov eax, 1
test edi, edi
js 0x430adf
je 0x430adf
lea eax, [eax + eax]
sub edi, 1
jne 0x430ad7
lea edx, [ebp - 8]
mov dword [ebp - 8], eax
lea ecx, [ebp - 4]
call fcn.00435130
push dword [ebp - 8]
push dword [ebp - 4]
lea eax, [ebx + 0x1772]
push str._d__d
push eax
call fcn.004011b0
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x431a30
Capabilities:
Manipulate console buffer

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov edi, dword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
mov ebx, ecx
call edi
cmp byte [ebx + 0x1319], 0
je 0x431a54
mov esi, dword [ebx + 0x1324]
test esi, esi
jns 0x431a5a
mov esi, dword [ebx + 0x1330]
xor eax, eax
mov dword [ebx + 0x1880], esi
push 0xfffffffffffffff5
mov dword [ebp - 4], eax
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
cmp eax, 0xffffffff
je 0x431a85
mov ecx, 2
mov word [ebp - 2], cx
push dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
push dword [ebx + 0x1880]
push 0x439470
call fcn.00401070
add esp, 8
sub esi, 0
je 0x431b75
sub esi, 1
jne 0x431c31
call edi
and eax, 0x80000001
jns 0x431ab8
dec eax
or eax, 0xfffffffe
inc eax
sub eax, 0
je 0x431b1a
sub eax, 1
jne 0x431c31
call edi
mov ecx, 0x64
cdq
idiv ecx
add edx, ecx
lea esi, [edx + edx*4]
add esi, esi
call edi
cdq
mov ecx, 0xa
idiv ecx
lea ecx, [ebx + 0x138a]
mov edi, dword [edx*4 + 0x45d120]
push edi
push esi
push str.__d__may_be_written_as_M__dN___where_M_and_N_are_positive_integers._nWhat_is_the_largest_possible_value_for_N_
push ecx
call fcn.004011b0
add esp, 0x10
xor ecx, ecx
cmp esi, edi
jl 0x431c1c
mov eax, esi
cdq
idiv edi
mov esi, eax
add ecx, esi
cmp esi, edi
jge 0x431b08
jmp 0x431c1c
call edi
cdq
mov ecx, 0x32
idiv ecx
lea eax, [ebx + 0x138a]
lea edi, [edx + 0x32]
push edi
push str.What_is_the_largest_prime_factor_of__d___
push eax
call fcn.004011b0
add esp, 0xc
nop dword [eax]
cmp edi, 1
jle 0x431b72
mov ecx, 2
cmp edi, 4
jl 0x431b6c
mov esi, 0x45d120
mov eax, edi
cdq
idiv ecx
test edx, edx
je 0x431b72
mov ecx, dword [esi + 4]
add esi, 4
mov eax, ecx
imul eax, ecx
cmp eax, edi
jle 0x431b54
push edi
jmp 0x431c1d
dec edi
jmp 0x431b40
call edi
and eax, 0x80000001
jns 0x431b83
dec eax
or eax, 0xfffffffe
inc eax
sub eax, 0
je 0x431bd9
sub eax, 1
jne 0x431c31
call edi
cdq
mov ecx, 0x32
idiv ecx
lea eax, [ebx + 0x138a]
add edx, 0x14
imul esi, edx, 0x3e8
push esi
push str.When__d__is_written_out__how_many_zeros_are_at_the_end_
push eax
call fcn.004011b0
add esp, 0xc
xor ecx, ecx
cmp esi, 5
jl 0x431c1c
mov eax, 0x66666667
imul esi
sar edx, 1
mov esi, edx
shr esi, 0x1f
add esi, edx
add ecx, esi
cmp esi, 5
jge 0x431bc0
jmp 0x431c1c
call edi
cdq
mov ecx, 0x1388
idiv ecx
lea eax, [ebx + 0x138a]
lea esi, [edx + 0x7d0]
push esi
push str.When__d__is_written_out__how_many_zeros_are_at_the_end_
push eax
call fcn.004011b0
add esp, 0xc
xor ecx, ecx
cmp esi, 5
jl 0x431c1c
mov eax, 0x66666667
imul esi
sar edx, 1
mov esi, edx
shr esi, 0x1f
add esi, edx
add ecx, esi
cmp esi, 5
jge 0x431c05
push ecx
lea eax, [ebx + 0x1772]
push 0x439470
push eax
call fcn.004011b0
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x431c40
Capabilities:
Manipulate console buffer

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x64
mov eax, dword [0x47700c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
push ebx
push esi
mov ebx, ecx
push edi
mov dword [ebp - 0x60], ebx
call eax
cmp byte [ebx + 0x1319], 0
je 0x431c72
mov esi, dword [ebx + 0x1324]
test esi, esi
jns 0x431c78
mov esi, dword [ebx + 0x1330]
xor eax, eax
mov dword [ebx + 0x1880], esi
push 0xfffffffffffffff5
mov dword [ebp - 0x5c], eax
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
cmp eax, 0xffffffff
je 0x431ca3
mov ecx, 2
mov word [ebp - 0x5a], cx
push dword [ebp - 0x5c]
push eax
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
push dword [ebx + 0x1880]
push 0x439470
call fcn.00401070
add esp, 8
sub esi, 0
je 0x431cdc
sub esi, 1
jne 0x431e15
mov ecx, ebx
call fcn.00431e30
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043574b
mov esp, ebp
pop ebp
ret
mov esi, dword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
call esi
call esi
cdq
mov ecx, 0xf
idiv ecx
lea edi, [edx + 5]
mov dword [ebp - 0x5c], edi
call esi
cdq
mov ecx, 5
idiv ecx
mov ebx, dword [edx*4 + 0x45d12c]
cmp edi, ebx
je 0x431cf4
mov eax, edi
cdq
mov ecx, eax
mov eax, ebx
xor ecx, edx
sub ecx, edx
cdq
xor eax, edx
mov esi, ecx
sub eax, edx
cmp eax, ecx
cmovle esi, eax
test esi, esi
jne 0x431d2b
mov esi, 1
jmp 0x431d52
cmp eax, ecx
cmovle eax, ecx
cdq
idiv esi
mov ecx, edx
test ecx, ecx
je 0x431d52
mov edi, ecx
nop dword [eax + eax]
mov eax, esi
mov esi, edi
cdq
idiv ecx
mov ecx, edx
mov edi, edx
test ecx, ecx
jne 0x431d40
mov edi, dword [ebp - 0x5c]
cmp esi, ebx
mov esi, dword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
je 0x431cf4
mov eax, esi
call eax
cdq
mov ecx, 0x7d0
idiv ecx
mov esi, dword [ebp - 0x60]
push ebx
lea eax, [edx + 0x3e8]
push eax
push edi
mov dword [ebp - 0x64], eax
lea eax, [esi + 0x138a]
push str.What_is_the_remainder_when__d___d_is_divided_by___d_
push eax
call fcn.004011b0
xorps xmm0, xmm0
xor eax, eax
add esp, 0x14
mov dword [ebp - 0x5c], eax
xor ecx, ecx
mov edx, 1
movups xmmword [ebp - 0x58], xmm0
movups xmmword [ebp - 0x48], xmm0
movups xmmword [ebp - 0x38], xmm0
movups xmmword [ebp - 0x28], xmm0
movups xmmword [ebp - 0x18], xmm0
test ebx, ebx
jle 0x431dd1
mov dword [ebp + ecx*4 - 0x58], edx
inc ecx
imul edx, edi
mov eax, edx
cdq
idiv ebx
cmp edx, 1
je 0x431dcc
cmp ecx, ebx
jl 0x431db2
xor eax, eax
jmp 0x431dd1
mov eax, ecx
mov dword [ebp - 0x5c], ecx
add esi, 0x1772
cmp eax, 1
jne 0x431dfb
push 0x4620f8
push esi
call fcn.004011b0
add esp, 8
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043574b
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x64]
cdq
idiv dword [ebp - 0x5c]
mov eax, dword [ebp + edx*4 - 0x58]
push eax
push 0x439470
push esi
call fcn.004011b0
add esp, 0xc
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0043574b
mov esp, ebp
pop ebp
ret
Function at 0x4350a0
Capabilities:
Manipulate console buffer

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [0x47700c]
xor eax, ebp
mov dword [ebp - 4], eax
push edi
xor eax, eax
push 0xfffffffffffffff5
mov dword [ebp - 0x20], eax
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
mov edi, eax
cmp edi, 0xffffffff
je 0x435115
lea eax, [ebp - 0x1c]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
test eax, eax
je 0x435115
movsx eax, word [ebp - 0x1c]
push ebx
movsx ebx, word [ebp - 0x1a]
push esi
mov esi, dword [ebp - 0x20]
imul ebx, eax
lea eax, [ebp - 0x24]
push eax
push esi
push ebx
push 0x20
push edi
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputCharacterW]
test eax, eax
je 0x435113
lea eax, [ebp - 0x24]
push eax
push esi
push ebx
push dword [ebp - 0x14]
push edi
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputAttribute]
test eax, eax
je 0x435113
push esi
push edi
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop edi
call fcn.0043574b
mov esp, ebp
pop ebp
ret

Function at 0x435690
Capabilities:
Parse credit card information

Disassembly:
mov al, 0x20
cmp edx, 1
jne 0x4356e8
test cl, cl
js 0x4356a4
cmp cl, 0x1a
jge 0x4356a9
lea eax, [ecx + 0x61]
ret
cmp cl, 0x1a
jl 0x4356b2
cmp cl, 0x34
jge 0x4356b7
lea eax, [ecx + 0x27]
ret
cmp cl, 0x34
jl 0x4356c0
cmp cl, 0x3e
jge 0x4356c3
lea eax, [ecx - 4]
ret
cmp cl, 0x3e
jne 0x4356c8
mov al, 0x20
ret
cmp cl, 0x3f
jne 0x4356d0
mov al, 0x2e
ret
cmp cl, 0x40
jne 0x4356d8
mov al, 0x5f
ret
cmp cl, 0x41
jne 0x4356e0
mov al, 0x2c
ret
cmp cl, 0x42
jne 0x43574a
mov al, 9
ret
cmp edx, 2
jne 0x43573f
test cl, cl
js 0x4356fa
cmp cl, 0x1a
jge 0x4356ff
lea eax, [ecx + 0x61]
ret
cmp cl, 0x1a
jl 0x435708
cmp cl, 0x34
jge 0x43570d
lea eax, [ecx + 0x27]
ret
cmp cl, 0x34
jl 0x435716
cmp cl, 0x3e
jge 0x435719
lea eax, [ecx - 4]
ret
cmp cl, 0x3e
je 0x4356c5
cmp cl, 0x3f
je 0x4356cd
cmp cl, 0x40
je 0x4356d5
cmp cl, 0x41
je 0x4356dd
cmp cl, 0x42
je 0x4356e5
cmp cl, 0x43
jne 0x435737
mov al, 0x2d
ret
cmp cl, 0x44
jne 0x43574a
mov al, 0x2f
ret
test edx, edx
movzx eax, al
movzx ecx, cl
cmove eax, ecx
ret