Function at 0x140031320
Capabilities:
Hash data using djb2

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r14
lea rbp, [rsp - 0x10568]
mov eax, 0x10668
call fcn.1401bb880
sub rsp, rax
mov rax, qword [0x140264330]
xor rax, rsp
mov qword [rbp + 0x10550], rax
movzx eax, byte [rdx + 0x1cc]
xor r12d, r12d
mov r14, rdx
mov rdi, rcx
imul rsi, rax, 0x6f8
lea rax, [0x1402d50d0]
add rsi, rax
mov eax, dword [rdx + 0x1c8]
mov qword [rsp + 0x50], rsi
test eax, eax
je 0x14003138c
cmp eax, dword [0x1402d8bc8]
lea ebx, [r12 + 1]
jb 0x14003138f
mov ebx, r12d
cmp dword [0x1402d88dc], r12d
jne 0x140031415
test ebx, ebx
jne 0x140031415
cmp dword [reloc.WS2_32.dll_accept], r12d
je 0x140031415
lea rcx, [rsp + 0x64]
xor edx, edx
mov r8d, 0xbc
mov dword [rsp + 0x60], r12d
call sub.MSVCR120.dll_memset
lea rcx, [rbp + 0x20]
xor edx, edx
mov r8d, 0x10130
call sub.MSVCR120.dll_memset
lea rdx, [rsp + 0x60]
mov rcx, rdi
call fcn.140032000
test eax, eax
je 0x140031415
mov r8d, dword [r14 + 0x1c8]
test r8d, r8d
je 0x140031415
cmp r8d, dword [rbp + 0x128]
jae 0x140031415
cmp dword [0x1402d4dbc], r12d
je 0x14003140b
lea rdx, str.block__u_was_already_solved
lea ecx, [rbx + 1]
call fcn.140041b60
mov eax, 1
jmp 0x140031c3e
cmp dword [0x1402d4a94], r12d
jne 0x140031446
test ebx, ebx
je 0x140031446
cmp dword [0x1402d4dbc], r12d
je 0x14003140b
lea rdx, str.stale_work_detected__discarding
mov ecx, 1
call fcn.140041b60
mov eax, 1
jmp 0x140031c3e
test byte [rsi + 1], 2
mov qword [rsp + 0x106b0], r13
mov qword [rsp + 0x10660], r15
je 0x140031932
movsxd rax, dword [0x1402643b8]
mov word [rsp + 0x48], r12w
cmp eax, 0x18
ja case.0x14003148d.5
lea r11, [0x140000000]
movzx eax, byte [r11 + rax + 0x31c74]
mov ecx, dword [r11 + rax*4 + 0x31c60]
add rcx, r11
jmp rcx
mov dword [0x1402d4ec4], 1
mov ecx, dword [r14 + 0x44]
mov eax, ecx
mov byte [rsp + 0x44], cl
shr eax, 8
mov byte [rsp + 0x45], al
mov eax, ecx
shr ecx, 0x18
mov byte [rsp + 0x47], cl
mov ecx, dword [r14 + 0x4c]
shr eax, 0x10
mov byte [rsp + 0x40], cl
mov byte [rsp + 0x46], al
mov eax, ecx
shr eax, 8
mov byte [rsp + 0x41], al
mov eax, ecx
shr eax, 0x10
shr ecx, 0x18
mov byte [rsp + 0x43], cl
mov byte [rsp + 0x42], al
mov ecx, 9
call qword [sym.imp.MSVCR120.dll_malloc]
mov r13, rax
test rax, rax
jne 0x1400315a5
mov r13, r12
jmp 0x1400315d3
mov ecx, dword [r14 + 0x88]
movzx eax, word [r14 + 0x64]
mov byte [rsp + 0x49], al
shr ax, 8
mov byte [rsp + 0x47], cl
mov byte [rsp + 0x48], al
mov eax, ecx
shr eax, 8
mov byte [rsp + 0x46], al
mov eax, ecx
shr eax, 0x10
shr ecx, 0x18
mov byte [rsp + 0x44], cl
mov ecx, dword [r14 + 0x8c]
mov byte [rsp + 0x45], al
mov eax, ecx
mov byte [rsp + 0x43], cl
shr eax, 8
mov byte [rsp + 0x42], al
mov eax, ecx
shr eax, 0x10
shr ecx, 0x18
mov byte [rsp + 0x40], cl
mov byte [rsp + 0x41], al
jmp 0x1400314db
mov ecx, dword [r14 + 0x64]
mov dword [0x1402d4ec4], 1
mov eax, ecx
mov byte [rsp + 0x44], cl
shr eax, 8
mov byte [rsp + 0x45], al
mov eax, ecx
shr ecx, 0x18
mov byte [rsp + 0x47], cl
mov ecx, dword [r14 + 0x6c]
jmp 0x1400314b7
mov ecx, dword [r14 + 0x28]
mov eax, ecx
mov byte [rsp + 0x47], cl
shr eax, 8
mov byte [rsp + 0x46], al
mov eax, ecx
shr eax, 0x10
shr ecx, 0x18
mov byte [rsp + 0x44], cl
mov ecx, dword [r14 + 0x20]
jmp 0x140031532
lea rbx, [rsp + 0x40]
mov rdi, rax
mov esi, 4
movzx r8d, byte [rbx]
lea rdx, [0x140249d80]
mov rcx, rdi
call qword [sym.imp.MSVCR120.dll_sprintf]
add rdi, 2
lea rbx, [rbx + 1]
dec rsi
jne 0x1400315b2
cmp dword [0x1402d4ec4], r12d
je 0x140031647
mov edx, dword [rsp + 0x40]
lea rcx, [r14 + 0xe4]
call fcn.140048840
mov ebx, eax
test eax, eax
je 0x140031647
xor ecx, ecx
call qword [sym.imp.MSVCR120.dll__time64]
sub eax, ebx
cmp dword [0x1402d4ec0], r12d
jne 0x140031628
lea rdx, str.nonce__s_was_already_sent__u_seconds_ago
mov r9d, eax
mov r8, r13
mov ecx, 1
call fcn.140041b60
lea rcx, [r14 + 0xe4]
call fcn.140049300
mov rcx, r13
call qword [sym.imp.MSVCR120.dll_free]
mov qword [0x1402d4ea0], r12
call fcn.140033d30
mov eax, 1
jmp 0x140031c2e
mov ecx, 9
call qword [sym.imp.MSVCR120.dll_malloc]
mov qword [rsp + 0x58], rax
test rax, rax
jne 0x140031663
mov qword [rsp + 0x58], r12
jmp 0x140031691
lea rbx, [rsp + 0x44]
mov rdi, rax
mov esi, 4
movzx r8d, byte [rbx]
lea rdx, [0x140249d80]
mov rcx, rdi
call qword [sym.imp.MSVCR120.dll_sprintf]
add rdi, 2
lea rbx, [rbx + 1]
dec rsi
jne 0x140031670
mov eax, dword [0x1402643b8]
mov r15d, 2
cmp eax, 1
jne 0x1400316b5
mov rdx, qword [0x1402d4bf8]
lea rcx, [r14 + 0x90]
jmp 0x140031730
mov eax, dword [0x1402643b8]
cmp eax, 0x18
jne 0x140031722
mov eax, dword [r14 + 0x24]
mov edx, 0xff
mov ecx, eax
shl ax, 8
shr ecx, 8
and cx, dx
or cx, ax
mov word [rsp + 0x4c], cx
mov ecx, 5
call qword [sym.imp.MSVCR120.dll_malloc]
mov r12, rax
test rax, rax
je 0x140031738
lea rbx, [rsp + 0x4c]
mov rdi, rax
mov rsi, r15
nop dword [rax + rax]
movzx r8d, byte [rbx]
lea rdx, [0x140249d80]
mov rcx, rdi
call qword [sym.imp.MSVCR120.dll_sprintf]
add rdi, r15
lea rbx, [rbx + 1]
dec rsi
jne 0x140031700
jmp 0x140031738
mov rdx, qword [r14 + 0x168]
lea rcx, [r14 + 0x170]
call fcn.140043180
mov r12, rax
movsd xmm1, qword [0x1402d4e40]
movsd xmm2, qword [r14 + 0x1b8]
xorps xmm0, xmm0
ucomisd xmm1, xmm0
movsd qword [0x1402d4be8], xmm2
jp 0x14003175c
je 0x14003178c
comisd xmm2, xmm1
jbe 0x14003178c
cmp dword [0x1402d4dbc], 0
jne 0x140031774
cmp dword [0x1402d4cd8], 0
je 0x1400317b2
movq r8, xmm2
lea rdx, str.share_diff:__.5f__possible_block_found___
mov ecx, 3
call fcn.140041b60
jmp 0x1400317b2
cmp dword [0x1402d4cd8], 0
je 0x1400317b2
movq r8, xmm2
lea r9, [r14 + 0x1a8]
lea rdx, str.share_diff:__.5f__x__.1f_
mov ecx, 4
call fcn.140041b60
cmp word [0x140264c9c], 0
je 0x14003184f
mov ecx, 5
call qword [sym.imp.MSVCR120.dll_malloc]
mov rsi, rax
test rax, rax
jne 0x1400317d7
xor edi, edi
jmp 0x140031804
lea rbx, [rsp + 0x48]
mov rdi, rax
nop
movzx r8d, byte [rbx]
lea rdx, [0x140249d80]
mov rcx, rdi
call qword [sym.imp.MSVCR120.dll_sprintf]
add rdi, 2
lea rbx, [rbx + 1]
dec r15
jne 0x1400317e0
mov rdi, rsi
mov r8, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x58]
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], r13
lea r9, [r14 + 0xec]
lea rdx, str._method_:__mining.submit____params_:____s_____s_____s_____s_____s_____s_____id_:4
lea rcx, [rbp + 0x10150]
add r8, 0x288
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], r12
call qword [sym.imp.MSVCR120.dll_sprintf]
mov rcx, rdi
call qword [sym.imp.MSVCR120.dll_free]
jmp 0x14003188a
mov r8, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x58]
mov qword [rsp + 0x30], r13
lea r9, [r14 + 0xec]
lea rdx, str._method_:__mining.submit____params_:____s_____s_____s_____s_____s_____id_:4
lea rcx, [rbp + 0x10150]
add r8, 0x288
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], r12
call qword [sym.imp.MSVCR120.dll_sprintf]
mov rcx, r12
call qword [sym.imp.MSVCR120.dll_free]
mov rcx, rbx
call qword [sym.imp.MSVCR120.dll_free]
mov rcx, r13
call qword [sym.imp.MSVCR120.dll_free]
lea rcx, [0x1402d4ca0]
call fcn.14002c420
cmp dword [0x1402d4cd4], 0
je 0x1400318d2
lea r8, [rbp + 0x10150]
lea rdx, [0x140249e28]
mov ecx, 4
call fcn.140041b60
lea rcx, [0x1402d8928]
call fcn.1401b6880
mov rcx, qword [0x1402d4bc8]
lea rdx, [rbp + 0x10150]
call fcn.1400435f0
lea rcx, [0x1402d8928]
mov ebx, eax
call fcn.1401b6e60
test ebx, ebx
jne 0x14003190f
lea rdx, str.submit_upstream_work_stratum_send_line_failed
jmp 0x140031c25
cmp dword [0x1402d4ec4], 0
je 0x140031c17
mov edx, dword [rsp + 0x40]
mov rcx, r14
call fcn.140048980
mov eax, 1
jmp 0x140031c2e
mov eax, dword [0x1402643b8]
mov ecx, 0x20
lea r9d, [rcx + 0x60]
cmp eax, 1
jne 0x140031a53
mov ecx, 0x2d
mov r9d, 0xc0
movsxd r8, ecx
test ecx, ecx
jle 0x140031985
lea rdx, [r14 + 2]
mov ecx, dword [rdx - 2]
lea rdx, [rdx + 4]
mov eax, ecx
mov byte [rdx - 6], cl
shr eax, 8
mov byte [rdx - 5], al
mov eax, ecx
shr ecx, 0x18
shr eax, 0x10
mov byte [rdx - 3], cl
mov byte [rdx - 4], al
dec r8
jne 0x140031960
movsxd rbx, r9d
lea rcx, [rbx*2 + 1]
call qword [sym.imp.MSVCR120.dll_malloc]
mov r15, rax
mov qword [rsp + 0x50], rax
test rax, rax
je 0x140031c1e
mov r8, rbx
mov rdx, r14
mov rcx, rax
call fcn.140043100
lea rdx, str._method_:__getwork____params_:____s_____id_:4_r_n
lea rcx, [rbp + 0x10150]
mov r8, r15
call qword [sym.imp.MSVCR120.dll_sprintf]
lea rcx, [rsi + 0x308]
or rax, 0xffffffffffffffff
inc rax
cmp byte [rcx + rax], r12b
jne 0x1400319d7
neg rax
mov qword [rsp + 0x28], rcx
lea r9, [rsi + 0x288]
sbb eax, eax
lea r8, str._s_c_s
lea rcx, [rbp + 0x10350]
and eax, 0x3a
mov edx, 0x200
mov dword [rsp + 0x20], eax
call qword [sym.imp.MSVCR120.dll__snprintf]
mov qword [rsp + 0x38], r12
mov dword [rsp + 0x30], r12d
lea rdx, [rsi + 0x48]
lea r9, [rbp + 0x10150]
lea r8, [rbp + 0x10350]
mov rcx, rdi
mov dword [rsp + 0x28], r12d
mov dword [rsp + 0x20], r12d
call fcn.1400423c0
mov r13, rax
test rax, rax
jne 0x140031a75
lea rdx, str.submit_upstream_work_json_rpc_call_failed
jmp 0x140031c25
mov eax, dword [0x1402643b8]
cmp eax, 0x18
jne 0x140031955
mov r8, r14
mov rdx, rsi
mov rcx, rdi
call fcn.14018d440
jmp 0x140031c2e
mov ebx, dword [rax]
lea r11, [0x140000000]
mov esi, 0x1505
mov r10d, WSACleanup
test ebx, ebx
jne 0x140031b17
lea rdi, [0x1401de6ac]
mov r9d, esi
mov ecx, r10d
mov rax, rdi
imul r9, r9, 0x21
lea rax, [rax + 1]
add r9, rcx
movsx rcx, byte [rax]
test rcx, rcx
jne 0x140031aa1
mov rcx, qword [r13 + 0x20]
xor edx, edx
mov rax, r9
div qword [r11 + rcx*8 + 0x1de2c0]
lea rax, [r13 + 0x28]
shl rdx, 4
add rdx, qword [r13 + 0x18]
mov r8, qword [rdx]
cmp r8, rax
jne 0x140031ae0
cmp r8, qword [rdx + 8]
je 0x140031b17
cmp qword [r8 - 8], r9
jne 0x140031b0b
mov rcx, r12
nop dword [rax]
movzx eax, byte [r8 + rcx + 0x20]
inc rcx
cmp al, byte [rdi + rcx - 1]
jne 0x140031b0b
cmp rcx, 7
jne 0x140031af0
mov r15, qword [r8 + 0x10]
jmp 0x140031b1a
cmp r8, qword [rdx + 8]
je 0x140031b17
mov r8, qword [r8 + 8]
jmp 0x140031ae0
mov r15, r12
test ebx, ebx
jne 0x140031bac
lea rax, [0x1401ded48]
nop dword [rax]
imul rsi, rsi, 0x21
lea rax, [rax + 1]
add rsi, r10
movsx r10, byte [rax]
test r10, r10
jne 0x140031b30
mov rcx, qword [r13 + 0x20]
xor edx, edx
mov rax, rsi
div qword [r11 + rcx*8 + 0x1de2c0]
lea rax, [r13 + 0x28]
mov rdi, rdx
shl rdi, 4
add rdi, qword [r13 + 0x18]
mov rbx, qword [rdi]
cmp rbx, rax
jne 0x140031b72
cmp rbx, qword [rdi + 8]
je 0x140031bac
cmp qword [rbx - 8], rsi
jne 0x140031b8c
lea rcx, [rbx + 0x20]
lea rdx, [0x1401ded48]
call sub.MSVCR120.dll_strcmp
test eax, eax
je 0x140031b98
cmp rbx, qword [rdi + 8]
je 0x140031bac
mov rbx, qword [rbx + 8]
jmp 0x140031b72
mov rax, qword [rbx + 0x10]
test rax, rax
je 0x140031bac
cmp dword [rax], 2
jne 0x140031bac
mov r9, qword [rax + 0x10]
jmp 0x140031baf
mov r9, r12
test r15, r15
je 0x140031bc0
cmp dword [r15], 5
jne 0x140031bc0
mov r12d, 1
movzx edx, byte [r14 + 0x1cc]
movsd xmm2, qword [r14 + 0x1b8]
mov ecx, r12d
call fcn.140030ff0
test eax, eax
jne 0x140031bf1
cmp dword [0x1402d4ec4], eax
je 0x140031bf1
lea rcx, [r14 + 0xe4]
call fcn.140049060
mov rax, qword [r13 + 8]
cmp rax, 0xffffffffffffffff
je 0x140031c0c
dec rax
mov qword [r13 + 8], rax
jne 0x140031c0c
mov rcx, r13
call fcn.14002f8c0
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.MSVCR120.dll_free]
mov eax, 1
jmp 0x140031c2e
lea rdx, str.submit_upstream_work_OOM
xor ecx, ecx
call fcn.140041b60
xor eax, eax
mov r13, qword [rsp + 0x106b0]
mov r15, qword [rsp + 0x10660]
mov rcx, qword [rbp + 0x10550]
xor rcx, rsp
call fcn.1401bb2c0
add rsp, 0x10668
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret