Function at 0x49e5a0
Capabilities:
Get system information on windows
Hash data using sha256

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x68
lea r13, str.algo
lea r12, str.a:c:Dhp:Px:qr:R:s:t:T:o:u:O:V
mov rbp, rdx
mov ebx, ecx
call dbg.__main
lea rcx, [0x004ce00f]
call sym.strdup
lea rcx, [0x004ce00f]
mov qword [0x004d6190], rax
call sym.strdup
mov r14, qword [0x004d1890]
mov qword [0x004d6188], rax
jmp 0x49e60a
mov rdx, qword [r14]
mov ecx, eax
call dbg.parse_arg
mov qword [rsp + 0x20], 0
mov r9, r13
mov r8, r12
mov rdx, rbp
mov ecx, ebx
call dbg.getopt_long
test eax, eax
jns 0x49e600
mov rax, qword [0x004d18a0]
movsxd rax, dword [rax]
cmp ebx, eax
jg 0x49ecf0
mov rax, qword [0x004d6198]
test rax, rax
je 0x49e6e0
mov ecx, dword [rax]
test ecx, ecx
jne 0x49e6e0
lea rbx, [0x004ce2c8]
lea r13, [0x004ce588]
lea r15, str.algo
lea r12, str.config
lea r14, str.JSON_option__s_invalid
jmp 0x49e692
cmp rbx, r13
je 0x49e6e0
add rbx, 0x20
mov r15, qword [rbx - 8]
test r15, r15
je 0x49e6e0
mov ecx, 7
mov rsi, r15
mov rdi, r12
repe cmpsb byte [rsi], byte [rdi]
je 0x49e680
mov rcx, qword [0x004d6198]
mov rdx, r15
call sym.json_object_get
test rax, rax
je 0x49e680
mov edx, dword [rbx]
test edx, edx
je 0x49e930
cmp dword [rax], 2
je 0x49eaae
xor ecx, ecx
mov r8, r15
mov rdx, r14
call dbg.applog
cmp rbx, r13
jne 0x49e685
nop word [rax + rax]
mov r12, qword [0x004d17a0]
mov eax, dword [r12]
cmp eax, 4
je 0x49ea12
cmp eax, 7
je 0x49eae2
cmp eax, 0xd
je 0x49eb2c
cmp byte [0x004d6180], 0
jne 0x49e71d
cmp qword [0x004d6178], 0
je 0x49ecc9
cmp qword [0x004d6170], 0
je 0x49e9b3
mov rcx, qword [0x004d1610]
xor edx, edx
call sub.libwinpthread_1.dll_pthread_mutex_init
mov rcx, qword [0x004d1940]
xor edx, edx
call sub.libwinpthread_1.dll_pthread_mutex_init
lea rcx, [0x004d6168]
xor edx, edx
call sub.libwinpthread_1.dll_pthread_mutex_init
lea rcx, [0x004d6160]
xor edx, edx
call sub.libwinpthread_1.dll_pthread_mutex_init
mov rbx, qword [0x004d1950]
xor edx, edx
lea rcx, [rbx + 0x130]
call sub.libwinpthread_1.dll_pthread_mutex_init
lea rcx, [rbx + 0x280]
xor edx, edx
call sub.libwinpthread_1.dll_pthread_mutex_init
cmp byte [0x004d6180], 0
mov ecx, 3
je 0x49e94d
call qword [sym.imp.libcurl_4.dll_curl_global_init]
test eax, eax
jne 0x49e99d
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [rsp + 0x50]
mov rdi, qword [0x004d17f0]
mov edx, 1
test eax, eax
cmovle eax, edx
cmp dword [rdi], 0
mov dword [0x004d6158], eax
jne 0x49e7d6
sub eax, 1
mov dword [rdi], eax
movsxd rsi, dword [rdi]
mov edx, pe_nt_image_headers64
mov rcx, rsi
mov rbp, rsi
call sym.calloc
mov rdx, qword [0x004d19c0]
test rax, rax
mov qword [rdx], rax
je 0x49e983
lea ecx, [rsi + 3]
mov edx, 0x18
movsxd rcx, ecx
call sym.calloc
mov r14, qword [0x004d1990]
test rax, rax
mov rbx, rax
mov qword [r14], rax
je 0x49e983
mov edx, 8
mov rcx, rsi
call sym.calloc
mov rdx, qword [0x004d1980]
test rax, rax
mov qword [rdx], rax
je 0x49e983
mov dword [0x004d6154], esi
imul rsi, rsi, 0x18
add rbx, rsi
mov dword [rbx], ebp
call dbg.tq_new
test rax, rax
mov qword [rbx + 0x10], rax
je 0x49e983
lea rcx, [rbx + 8]
lea r8, [dbg.workio_thread.lto_priv.156]
xor edx, edx
mov r9, rbx
call sub.libwinpthread_1.dll_pthread_create
test eax, eax
mov r13d, eax
jne 0x49eb7f
mov rax, qword [0x004d19a0]
cmp byte [rax], 0
je 0x49e89f
mov rax, qword [0x004d16c0]
cmp byte [rax], 0
je 0x49ec67
mov rax, qword [0x004d19b0]
cmp byte [rax], 0
jne 0x49eb98
mov r8d, dword [rdi]
test r8d, r8d
jle 0x49ec18
xor esi, esi
xor ebp, ebp
lea r15, [dbg.miner_thread.lto_priv.157]
jmp 0x49e8e3
mov r8d, dword [rdi]
add esi, 1
add rbp, 0x18
cmp r8d, esi
jle 0x49ec18
mov rbx, rbp
add rbx, qword [r14]
mov dword [rbx], esi
call dbg.tq_new
test rax, rax
mov qword [rbx + 0x10], rax
je 0x49e983
lea rcx, [rbx + 8]
xor edx, edx
mov r9, rbx
mov r8, r15
call sub.libwinpthread_1.dll_pthread_create
test eax, eax
je 0x49e8d0
lea rdx, str.thread__d_create_failed
mov r8d, esi
xor ecx, ecx
mov r13d, 1
call dbg.applog
jmp 0x49e989
cmp dword [rax], 5
jne 0x49e6c8
mov ecx, dword [rbx + 0x10]
lea rdx, [0x004ce00f]
call dbg.parse_arg
jmp 0x49e680
mov rcx, qword [0x004d6178]
lea rdx, str.https:
mov r8d, 6
call sym.strncmp
xor ecx, ecx
test eax, eax
sete cl
add ecx, 2
jmp 0x49e798
lea rdx, str.stratum_thread_create_failed
xor ecx, ecx
call dbg.applog
mov r13d, 1
mov eax, r13d
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea rdx, [0x004cdd78]
xor ecx, ecx
mov r13d, 1
call dbg.applog
jmp 0x49e989
mov rbx, qword [0x004d6190]
or r10, 0xffffffffffffffff
xor eax, eax
mov rcx, r10
mov rsi, qword [0x004d6188]
mov rdi, rbx
repne scasb al, byte [rdi]
mov rdi, rsi
mov rdx, rcx
mov rcx, r10
repne scasb al, byte [rdi]
not rdx
mov rax, rcx
not rax
lea rcx, [rdx + rax]
call sym.malloc
test rax, rax
mov qword [0x004d6170], rax
je 0x49e983
lea rdx, str._s:_s
mov r9, rsi
mov r8, rbx
mov rcx, rax
call sym.sprintf
jmp 0x49e72b
mov rcx, qword [0x004d1620]
call sym.sph_blake512_init
mov rbx, qword [0x004d1620]
lea rcx, [rbx + 0x1f0]
call sym.sph_bmw512_init
lea rcx, [rbx + 0x410]
call dbg.sph_groestl512_init
lea rcx, [rbx + 0x630]
call sym.sph_skein512_init
lea rcx, [rbx + 0x520]
call dbg.sph_groestl512_init
lea rcx, [rbx + 0x750]
call dbg.sph_jh512_init
lea rcx, [rbx + 0xf8]
call sym.sph_blake512_init
lea rcx, [rbx + 0x300]
call sym.sph_bmw512_init
lea rcx, [rbx + 0x8f0]
call dbg.sph_keccak512_init
lea rcx, [rbx + 0x6c0]
call sym.sph_skein512_init
lea rcx, [rbx + 0xa58]
call dbg.sph_keccak512_init
lea rcx, [rbx + 0x820]
call dbg.sph_jh512_init
jmp 0x49e706
mov rcx, rax
call sym.json_string_value
mov rcx, rax
call sym.strdup
test rax, rax
mov rsi, rax
je 0x49e6e0
mov ecx, dword [rbx + 0x10]
mov rdx, rax
call dbg.parse_arg
mov rcx, rsi
call sym.free
jmp 0x49e680
mov rax, qword [0x004d1630]
mov rdx, qword [0x004d1900]
mov ecx, 8
mov rsi, qword [0x004d1280]
lea rdi, [rax + 0x48]
mov rbx, qword [rdx + 8]
mov dword [rax + 0x7c], 0
rep movsd dword [rdi], dword [rsi]
mov rcx, qword [rdx]
mov dword [rax + 0x78], 0
mov qword [rax + 0x70], rbx
mov qword [rax + 0x40], 0
mov qword [rax + 0x68], rcx
jmp 0x49e706
mov eax, 1
cpuid
shr ecx, 0x19
lea rdx, str.Using_JSON_RPC_2.0
and ecx, 1
mov byte [0x004d6181], cl
mov ecx, 3
call dbg.applog
cmp byte [0x004d6181], 0
lea rax, [0x004ce0a9]
lea r8, [0x004ce0a5]
lea rdx, str.CPU_Supports_AES_NI:__s
mov ecx, 3
cmove r8, rax
call dbg.applog
jmp 0x49e706
lea rdx, str.workio_thread_create_failed
xor ecx, ecx
mov r13d, 1
call dbg.applog
jmp 0x49e989
mov eax, dword [rdi]
mov rsi, qword [0x004d1960]
add eax, 2
movsxd rbx, eax
mov dword [rsi], eax
imul rbx, rbx, 0x18
add rbx, qword [r14]
mov dword [rbx], eax
call dbg.tq_new
test rax, rax
mov qword [rbx + 0x10], rax
je 0x49e983
lea rcx, [rbx + 8]
lea r8, [sym.stratum_thread]
xor edx, edx
mov r9, rbx
call sub.libwinpthread_1.dll_pthread_create
test eax, eax
jne 0x49e975
mov rax, qword [0x004d16c0]
cmp byte [rax], 0
je 0x49e8af
mov rcx, qword [0x004d6178]
call sym.strdup
movsxd rcx, dword [rsi]
mov rdx, rax
imul rcx, rcx, 0x18
add rcx, qword [r14]
mov rcx, qword [rcx + 0x10]
call dbg.tq_push
jmp 0x49e8af
mov edx, dword [r12]
lea rax, str.scrypt
mov ecx, 3
mov r9, qword [rax + rdx*8]
lea rdx, str._d_miner_threads_started__using__s_algorithm.
call dbg.applog
movsxd rax, dword [0x004d6154]
xor edx, edx
imul rax, rax, 0x18
add rax, qword [r14]
mov rcx, qword [rax + 8]
call sub.libwinpthread_1.dll_pthread_join
lea rdx, str.workio_thread_dead__exiting.
mov ecx, 3
call dbg.applog
jmp 0x49e989
mov eax, dword [rdi]
mov rdx, qword [0x004d16d0]
add eax, 1
movsxd rbx, eax
mov dword [rdx], eax
imul rbx, rbx, 0x18
add rbx, qword [r14]
mov dword [rbx], eax
call dbg.tq_new
test rax, rax
mov qword [rbx + 0x10], rax
je 0x49e983
lea rcx, [rbx + 8]
lea r8, [dbg.longpoll_thread]
xor edx, edx
mov r9, rbx
call sub.libwinpthread_1.dll_pthread_create
test eax, eax
je 0x49e89f
lea rdx, str.longpoll_thread_create_failed
xor ecx, ecx
mov r13d, 1
call dbg.applog
jmp 0x49e989
mov rbx, qword [rbp]
call qword [sym.imp.msvcrt.dll___iob_func]
lea rdx, str._s:_no_URL_supplied_n
lea rcx, [rax + 0x60]
mov r8, rbx
call sym.fprintf
mov ecx, 1
call dbg.show_usage_and_exit
mov rsi, qword [rbp + rax*8]
mov rbx, qword [rbp]
call qword [sym.imp.msvcrt.dll___iob_func]
lea rdx, str._s:_unsupported_non_option_argument__s_n
lea rcx, [rax + 0x60]
mov r9, rsi
mov r8, rbx
call sym.fprintf
mov ecx, 1
call dbg.show_usage_and_exit
nop