Function at 0x140030670
Capabilities:
Enumerate pe sections
Hash data using djb2
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x100]
sub rsp, 0x200
mov rax, qword [0x140177090]
xor rax, rsp
mov qword [rbp + 0xf0], rax
xor r14d, r14d
mov rbx, rdx
mov qword [rsp + 0x58], rdx
mov r12, rcx
mov qword [rsp + 0x78], rcx
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x28], r14
mov dword [rsp + 0x60], r14d
mov r10d, r14d
mov dword [rsp + 0x20], r14d
mov esi, r14d
test rcx, rcx
je 0x140032213
mov r11d, dword [rcx]
lea edi, [r14 + 1]
mov r13d, 0x1505
lea r8, reloc.WS2_32.dll_getpeername
test r11d, r11d
jne 0x140032213
lea rdi, str.mutable
mov r9d, r13d
mov ecx, WSASetLastError
mov rax, rdi
nop word [rax + rax]
imul r9, r9, 0x21
lea rax, [rax + 1]
add r9, rcx
movsx rcx, byte [rax]
test rcx, rcx
jne 0x140030710
mov rcx, qword [r12 + 0x20]
xor edx, edx
mov rax, r9
div qword [r8 + rcx*8]
lea rax, [r12 + 0x28]
shl rdx, 4
add rdx, qword [r12 + 0x18]
mov r8, qword [rdx]
cmp r8, rax
jne 0x140030752
cmp r8, qword [rdx + 8]
je 0x140030871
cmp qword [r8 - 8], r9
jne 0x140030805
mov rcx, r14
nop
movzx eax, byte [r8 + rcx + 0x20]
inc rcx
cmp al, byte [rdi + rcx - 1]
jne 0x140030805
cmp rcx, 8
jne 0x140030760
mov rax, qword [r8 + 0x10]
mov qword [rsp + 0x70], rax
test rax, rax
je 0x140030871
cmp dword [rax], 1
jne 0x140030871
mov rax, qword [rax + 0x18]
test eax, eax
jle 0x140030871
mov r13, qword [rsp + 0x70]
mov rdi, r14
mov r15d, eax
lea r14d, [rcx - 7]
nop
cmp rdi, rax
jae 0x14003084e
mov rax, qword [r13 + 0x20]
mov rbx, qword [rax + rdi*8]
test rbx, rbx
je 0x14003084a
cmp dword [rbx], 2
jne 0x14003084a
mov rbx, qword [rbx + 0x10]
test rbx, rbx
je 0x14003084a
lea rdx, str.coinbase_append
mov rcx, rbx
call sub.MSVCR120.dll_strcmp
test eax, eax
je 0x14003084a
lea rdx, str.submit_coinbase
mov rcx, rbx
call sub.MSVCR120.dll_strcmp
test eax, eax
jne 0x140030814
mov dword [rsp + 0x60], r14d
jmp 0x14003084a
cmp r8, qword [rdx + 8]
je 0x140030871
mov r8, qword [r8 + 8]
jmp 0x140030752
lea rdx, str.version_force
mov rcx, rbx
call sub.MSVCR120.dll_strcmp
test eax, eax
jne 0x140030835
mov rax, qword [r13 + 0x18]
mov r10d, r14d
mov dword [rsp + 0x20], r14d
jmp 0x140030853
lea rdx, str.version_reduce
mov rcx, rbx
call sub.MSVCR120.dll_strcmp
test eax, eax
cmove esi, r14d
mov rax, qword [r13 + 0x18]
mov r10d, dword [rsp + 0x20]
inc rdi
dec r15
jne 0x1400307b0
mov r11d, dword [r12]
mov rbx, qword [rsp + 0x58]
xor r14d, r14d
mov r13d, 0x1505
lea r8, reloc.WS2_32.dll_getpeername
mov edi, 1
test r11d, r11d
jne 0x140032213
lea r11, str.height
mov r15d, 0x68
mov r9, r13
mov rax, r11
mov ecx, r15d
nop dword [rax]
imul r9, r9, 0x21
lea rax, [rax + 1]
add r9, rcx
movsx rcx, byte [rax]
test rcx, rcx
jne 0x1400308a0
mov rcx, qword [r12 + 0x20]
xor edx, edx
mov rax, r9
div qword [r8 + rcx*8]
lea rax, [r12 + 0x28]
shl rdx, 4
add rdx, qword [r12 + 0x18]
mov r8, qword [rdx]
cmp r8, rax
jne 0x1400308e2
cmp r8, qword [rdx + 8]
je 0x140032213
cmp qword [r8 - 8], r9
jne 0x1400309fe
mov rcx, r14
nop
movzx eax, byte [r8 + rcx + 0x20]
inc rcx
cmp al, byte [r11 + rcx - 1]
jne 0x1400309fe
cmp rcx, 7
jne 0x1400308f0
mov rax, qword [r8 + 0x10]
test rax, rax
je 0x140032213
cmp dword [rax], 3
jne 0x140032213
mov rax, qword [rax + 0x10]
mov dword [rbx + 0x170], eax
cmp dword [r12], 0
mov qword [rbp - 0x70], rax
jne 0x14003220a
lea r11, [0x140138490]
mov r9, r13
mov ecx, 0x76
mov rax, r11
nop dword [rax + rax]
imul r9, r9, 0x21
lea rax, [rax + 1]
add r9, rcx
movsx rcx, byte [rax]
test rcx, rcx
jne 0x140030950
mov rcx, qword [r12 + 0x20]
xor edx, edx
lea rbx, reloc.WS2_32.dll_getpeername
mov rax, r9
div qword [rbx + rcx*8]
lea rax, [r12 + 0x28]
shl rdx, 4
add rdx, qword [r12 + 0x18]
mov r8, qword [rdx]
cmp r8, rax
jne 0x1400309a0
cmp r8, qword [rdx + 8]
je 0x14003220a
nop dword [rax]
cmp qword [r8 - 8], r9
jne 0x140030a11
mov rcx, r14
nop dword [rax]
movzx eax, byte [r8 + rcx + 0x20]
inc rcx
cmp al, byte [r11 + rcx - 1]
jne 0x140030a11
cmp rcx, 8
jne 0x1400309b0
mov rax, qword [r8 + 0x10]
test rax, rax
je 0x14003220a
cmp dword [rax], 3
jne 0x14003220a
mov rcx, qword [rax + 0x10]
mov qword [rsp + 0x70], rcx
cmp cl, 4
jbe 0x140030a3a
test esi, esi
je 0x140030a24
and ecx, 0xffffff04
or ecx, 4
mov qword [rsp + 0x70], rcx
jmp 0x140030a3a
cmp r8, qword [rdx + 8]
je 0x140032213
mov r8, qword [r8 + 8]
jmp 0x1400308e2
cmp r8, qword [rdx + 8]
je 0x14003220a
mov r8, qword [r8 + 8]
jmp 0x1400309a0
test r10d, r10d
jne 0x140030a3a
mov r8d, ecx
lea rdx, str.Unrecognized_block_version:__u
mov ecx, edi
call fcn.14003ce00
cmp dword [r12], 0
jne 0x1400321ec
lea rax, str.previousblockhash
mov rdi, r13
mov ecx, reloc.WS2_32.dll_WSASetLastError
nop dword [rax]
nop dword [rax + rax]
imul rdi, rdi, 0x21
lea rax, [rax + 1]
add rdi, rcx
movsx rcx, byte [rax]
test rcx, rcx
jne 0x140030a60
mov rcx, qword [r12 + 0x20]
xor edx, edx
mov rax, rdi
div qword [rbx + rcx*8]
lea rax, [r12 + 0x28]
mov rsi, rdx
shl rsi, 4
add rsi, qword [r12 + 0x18]
mov rbx, qword [rsi]
cmp rbx, rax
jne 0x140030aa5
cmp rbx, qword [rsi + 8]
je 0x1400321ec
cmp qword [rbx - 8], rdi
jne 0x140030abf
lea rcx, [rbx + 0x20]
lea rdx, str.previousblockhash
call sub.MSVCR120.dll_strcmp
test eax, eax
je 0x140030acf
cmp rbx, qword [rsi + 8]
je 0x1400321ec
mov rbx, qword [rbx + 8]
jmp 0x140030aa5
mov rbx, qword [rbx + 0x10]
test rbx, rbx
je 0x1400321ec
cmp dword [rbx], 2
jne 0x1400321e3
mov rbx, qword [rbx + 0x10]
test rbx, rbx
je 0x1400321e3
cmp byte [rbx], 0
mov edi, 0x20
lea rsi, [rbp - 0x40]
mov byte [rsp + 0x22], 0
je 0x140032201
nop dword [rax]
test rdi, rdi
je 0x140030b6a
movzx ecx, byte [rbx + 1]
test cl, cl
je 0x140030c29
movzx eax, byte [rbx]
mov byte [rsp + 0x21], cl
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x20]
mov r8d, reloc.WS2_32.dll_recv
mov byte [rsp + 0x20], al
call qword [sym.imp.MSVCR120.dll_strtol]
mov byte [rsi], al
mov rax, qword [rsp + 0x38]
cmp byte [rax], 0
jne 0x140030c0a
add rbx, 2
inc rsi
dec rdi
cmp byte [rbx], 0
jne 0x140030b10
test rdi, rdi
jne 0x140032201
cmp byte [rbx], 0
jne 0x140032201
cmp dword [r12], 0
jne 0x1400321c5
lea rax, str.hashstateroot
mov rdi, r13
mov rcx, r15
nop dword [rax + rax]
imul rdi, rdi, 0x21
lea rax, [rax + 1]
add rdi, rcx
movsx rcx, byte [rax]
test rcx, rcx
jne 0x140030b90
mov rcx, qword [r12 + 0x20]
xor edx, edx
lea r8, reloc.WS2_32.dll_getpeername
mov rax, rdi
div qword [r8 + rcx*8]
lea rax, [r12 + 0x28]
mov rsi, rdx
shl rsi, 4
add rsi, qword [r12 + 0x18]
mov rbx, qword [rsi]
cmp rbx, rax
jne 0x140030be0
cmp rbx, qword [rsi + 8]
je 0x1400321c5
nop dword [rax]
cmp qword [rbx - 8], rdi
jne 0x140030bfa
lea rcx, [rbx + 0x20]
lea rdx, str.hashstateroot
call sub.MSVCR120.dll_strcmp
test eax, eax
je 0x140030c43
cmp rbx, qword [rsi + 8]
je 0x1400321c5
mov rbx, qword [rbx + 8]
jmp 0x140030be0
lea r8, [rsp + 0x20]
lea rdx, str.hex2bin_failed_on__s
xor ecx, ecx
call fcn.14003ce00
lea rdx, str.JSON_invalid_previousblockhash
jmp 0x14003221a
lea rdx, str.hex2bin_str_truncated
xor ecx, ecx
call fcn.14003ce00
lea rdx, str.JSON_invalid_previousblockhash
jmp 0x14003221a
mov rbx, qword [rbx + 0x10]
test rbx, rbx
je 0x1400321c5
cmp dword [rbx], 2
jne 0x1400321bc
mov rbx, qword [rbx + 0x10]
test rbx, rbx
je 0x1400321bc
cmp byte [rbx], 0
mov edi, 0x20
lea rsi, [rbp - 0x20]
mov byte [rsp + 0x22], 0
je 0x1400321da
nop dword [rax]
test rdi, rdi
je 0x140030cda
movzx ecx, byte [rbx + 1]
test cl, cl
je 0x140030d99
movzx eax, byte [rbx]
mov byte [rsp + 0x21], cl
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x20]
mov r8d, reloc.WS2_32.dll_recv
mov byte [rsp + 0x20], al
call qword [sym.imp.MSVCR120.dll_strtol]
mov byte [rsi], al
mov rax, qword [rsp + 0x38]
cmp byte [rax], 0
jne 0x140030d7a
add rbx, 2
inc rsi
dec rdi
cmp byte [rbx], 0
jne 0x140030c80
test rdi, rdi
jne 0x1400321da
cmp byte [rbx], 0
jne 0x1400321da
cmp dword [r12], 0
jne 0x14003219e
lea rax, str.hashutxoroot
mov rdi, r13
nop dword [rax + rax]
imul rdi, rdi, 0x21
lea rax, [rax + 1]
add rdi, r15
movsx r15, byte [rax]
test r15, r15
jne 0x140030d00
mov rcx, qword [r12 + 0x20]
xor edx, edx
lea r15, reloc.WS2_32.dll_getpeername
mov rax, rdi
div qword [r15 + rcx*8]
lea rax, [r12 + 0x28]
mov rsi, rdx
shl rsi, 4
add rsi, qword [r12 + 0x18]
mov rbx, qword [rsi]
cmp rbx, rax
jne 0x140030d50
cmp rbx, qword [rsi + 8]
je 0x14003219e
nop dword [rax]
cmp qword [rbx - 8], rdi
jne 0x140030d6a
lea rcx, [rbx + 0x20]
lea rdx, str.hashutxoroot
call sub.MSVCR120.dll_strcmp
test eax, eax
je 0x140030db3
cmp rbx, qword [rsi + 8]
je 0x14003219e
mov rbx, qword [rbx + 8]
jmp 0x140030d50
lea r8, [rsp + 0x20]
lea rdx, str.hex2bin_failed_on__s
xor ecx, ecx
call fcn.14003ce00
lea rdx, str.JSON_invalid_hashstateroot
jmp 0x14003221a
lea rdx, str.hex2bin_str_truncated
xor ecx, ecx
call fcn.14003ce00
lea rdx, str.JSON_invalid_hashstateroot
jmp 0x14003221a
mov rbx, qword [rbx + 0x10]
test rbx, rbx
je 0x14003219e
cmp dword [rbx], 2
jne 0x140032195
mov rbx, qword [rbx + 0x10]
test rbx, rbx
je 0x140032195
cmp byte [rbx], 0
mov edi, 0x20
lea rsi, [rbp - 0x60]
mov byte [rsp + 0x22], 0
je 0x1400321b3
nop dword [rax]
test rdi, rdi
je 0x140030e4a
movzx ecx, byte [rbx + 1]
test cl, cl
je 0x140031094
movzx eax, byte [rbx]
mov byte [rsp + 0x21], cl
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x20]
mov r8d, reloc.WS2_32.dll_recv
mov byte [rsp + 0x20], al
call qword [sym.imp.MSVCR120.dll_strtol]
mov byte [rsi], al
mov rax, qword [rsp + 0x38]
cmp byte [rax], 0
jne 0x140031075
add rbx, 2
inc rsi
dec rdi
cmp byte [rbx], 0
jne 0x140030df0
test rdi, rdi
jne 0x1400321b3
cmp byte [rbx], 0
jne 0x1400321b3
lea rdx, str.curtime
mov rcx, r12
call fcn.14002f450
test rax, rax
je 0x140032189
cmp dword [rax], 3
jne 0x140032189
cmp dword [r12], 0
mov rax, qword [rax + 0x10]
lea r11, str.bits
mov qword [rbp - 0x78], rax
jne 0x14003216c
mov rax, r11
mov r9, r13
mov ecx, 0x62
nop dword [rax]
imul r9, r9, 0x21
lea rax, [rax + 1]
add r9, rcx
movsx rcx, byte [rax]
test rcx, rcx
jne 0x140030ea0
mov rcx, qword [r12 + 0x20]
xor edx, edx
mov rax, r9
div qword [r15 + rcx*8]
lea rax, [r12 + 0x28]
mov r10, rdx
shl r10, 4
add r10, qword [r12 + 0x18]
mov r8, qword [r10]
cmp r8, rax
jne 0x140030ee5
cmp r8, qword [r10 + 8]
je 0x14003216c
mov edx, 5
nop word [rax + rax]
cmp qword [r8 - 8], r9
jne 0x1400310ae
mov rcx, r14
nop dword [rax]
movzx eax, byte [r8 + rcx + 0x20]
inc rcx
cmp al, byte [r11 + rcx - 1]
jne 0x1400310ae
cmp rcx, rdx
jne 0x140030f00
mov rbx, qword [r8 + 0x10]
test rbx, rbx
je 0x14003216c
cmp dword [rbx], 2
jne 0x140032163
mov rbx, qword [rbx + 0x10]
test rbx, rbx
je 0x140032163
cmp byte [rbx], 0
mov edi, 4
lea rsi, [rbp - 0x7c]
mov byte [rsp + 0x22], 0
je 0x14003217d
test rdi, rdi
je 0x140030fad
movzx ecx, byte [rbx + 1]
test cl, cl
je 0x1400310e0
movzx eax, byte [rbx]
mov byte [rsp + 0x21], cl
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x20]
mov r8d, reloc.WS2_32.dll_recv
mov byte [rsp + 0x20], al
call qword [sym.imp.MSVCR120.dll_strtol]
mov byte [rsi], al
mov rax, qword [rsp + 0x38]
cmp byte [rax], 0
jne 0x1400310c1
add rbx, 2
inc rsi
dec rdi
cmp byte [rbx], 0
jne 0x140030f53
test rdi, rdi
jne 0x14003217d
cmp byte [rbx], 0
jne 0x14003217d
lea rdx, str.transactions
mov rcx, r12
call fcn.14002f450
mov rdi, rax
mov qword [rbp - 0x68], rax
test rax, rax
je 0x140032157
cmp dword [rax], 1
jne 0x140032157
mov rax, qword [rax + 0x18]
mov esi, r14d
mov dword [rsp + 0x68], r14d
movsxd r15, eax
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x38], r15
test eax, eax
jle 0x140031106
mov rbx, r14
cmp rbx, rax
jae 0x1400310fa
mov rax, qword [rdi + 0x20]
mov rcx, qword [rax + rbx*8]
test rcx, rcx
je 0x1400310fa
lea rdx, [0x1401385dc]
call fcn.14002f450
test rax, rax
je 0x1400310fa
cmp dword [rax], 2
jne 0x1400310fa
mov rcx, qword [rax + 0x10]
test rcx, rcx
je 0x1400310fa
or rax, 0xffffffffffffffff
nop dword [rax + rax]
inc rax
cmp byte [rcx + rax], 0
jne 0x140031050
shr rax, 1
inc rbx
add esi, eax
mov dword [rsp + 0x68], esi
cmp rbx, r15
jge 0x140031106
mov rax, qword [rsp + 0x50]
jmp 0x140031002
lea r8, [rsp + 0x20]
lea rdx, str.hex2bin_failed_on__s
xor ecx, ecx
call fcn.14003ce00
lea rdx, str.JSON_invalid_hashutxoroot
jmp 0x14003221a
lea rdx, str.hex2bin_str_truncated
xor ecx, ecx
call fcn.14003ce00
lea rdx, str.JSON_invalid_hashutxoroot
jmp 0x14003221a
cmp r8, qword [r10 + 8]
je 0x14003216c
mov r8, qword [r8 + 8]
jmp 0x140030ef0
lea r8, [rsp + 0x20]
lea rdx, str.hex2bin_failed_on__s
xor ecx, ecx
call fcn.14003ce00
lea rdx, str.JSON_invalid_bits
jmp 0x14003221a
lea rdx, str.hex2bin_str_truncated
xor ecx, ecx
call fcn.14003ce00
lea rdx, str.JSON_invalid_bits
jmp 0x14003221a
lea rdx, [0x1401385f0]
jmp 0x14003221a
lea rdx, str.coinbasetxn
mov rcx, r12
call fcn.14002f450
test rax, rax
je 0x14003214b
lea rdx, [0x14013861c]
mov rcx, rax
call fcn.14002f450
test rax, rax
je 0x140031153
cmp dword [rax], 2
jne 0x140031153
mov rbx, qword [rax + 0x10]
test rbx, rbx
je 0x140031156
or r15, 0xffffffffffffffff
inc r15
cmp byte [rbx + r15], 0
jne 0x140031144
shr r15, 1
jmp 0x140031159
mov rbx, r14
mov r15d, r14d
lea eax, [r15 + 0x64]
movsxd rcx, eax
call qword [sym.imp.MSVCR120.dll_malloc]
mov qword [rsp + 0x30], rax
cmp r15d, 0x3c
jl 0x14003213f
movsxd r8, r15d
mov rdx, rbx
mov rcx, rax
call fcn.14003e0f0
test eax, eax
je 0x14003213f
movsxd rbx, dword [0x1401f2bc4]
test ebx, ebx
jne 0x1400311a2
lea rdx, str.No_payout_address_provided
jmp 0x14003221a
mov rcx, qword [rsp + 0x30]
mov eax, r14d
mov edi, 0x29
cmp byte [rcx + 4], 0
mov edx, 0x2b
sete al
test eax, eax
mov dword [rbp - 0x80], eax
cmovne edi, edx
movsxd rax, edi
mov dword [rsp + 0x20], edi
movzx eax, byte [rax + rcx]
je 0x1400311d5
add eax, 0x39
jmp 0x1400311d8
add eax, 0x37
mov dword [rsp + 0x48], eax
cdqe
lea rdx, [rax + rcx]
mov qword [rsp + 0x40], rax
movzx ecx, byte [rdx]
mov dword [rsp + 0x28], ecx
cmp ecx, ebx
jne 0x14003120f
lea rcx, [rdx + 1]
lea rdx, [0x1401f2ba8]
mov r8, rbx
call sub.MSVCR120.dll_memcpy
mov rcx, qword [rsp + 0x30]
jmp 0x1400312a2
mov esi, ebx
sub esi, ecx
add esi, r15d
lea eax, [rsi + 0x64]
movsxd rcx, eax
call qword [sym.imp.MSVCR120.dll_malloc]
mov r8, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x30]
mov rcx, rax
mov rdi, rax
call sub.MSVCR120.dll_memcpy
mov rax, qword [rsp + 0x40]
lea rdx, [0x1401f2ba8]
lea rcx, [rax + 1]
mov r8, rbx
mov byte [rax + rdi], bl
add rcx, rdi
call sub.MSVCR120.dll_memcpy
movsxd rax, dword [rsp + 0x28]
mov rcx, qword [rsp + 0x40]
sub r15d, eax
add rax, rcx
inc rcx
sub r15d, dword [rsp + 0x48]
add rcx, rbx
dec r15d
add rcx, rdi
movsxd r8, r15d
mov r15, qword [rsp + 0x30]
lea rdx, [r15 + 1]
add rdx, rax
call sub.MSVCR120.dll_memcpy
mov rcx, r15
call qword [sym.imp.MSVCR120.dll_free]
mov rcx, rdi
mov edi, dword [rsp + 0x20]
mov qword [rsp + 0x30], rcx
mov r15d, esi
cmp byte [str.FAB_Solo_miner], 0
mov esi, r14d
je 0x1400312f8
lea rdx, str.FAB_Solo_miner
or rbx, 0xffffffffffffffff
nop dword [rax]
inc rbx
cmp byte [rdx + rbx], 0
jne 0x1400312c0
movsxd rax, edi
movzx ecx, byte [rax + rcx]
add ecx, ebx
cmp ecx, 0x64
jg 0x1400312e7
lea rcx, [rbp + 0x10]
movsxd r8, ebx
call sub.MSVCR120.dll_memcpy
mov esi, ebx
jmp 0x1400312f8
lea rdx, str.Signature_does_not_fit_in_coinbase__skipping
mov ecx, 1
call fcn.14003ce00
lea rdx, str.coinbaseaux
mov rcx, r12
call fcn.14002f450
mov qword [rsp + 0x28], rax
test rax, rax
je 0x1400313fe
cmp dword [rax], 0
jne 0x1400313fe
mov rdi, qword [rax + 0x30]
lea rcx, [rax + 0x28]
cmp rdi, rcx
cmove rdi, r14
test rdi, rdi
je 0x1400313fe
nop word [rax + rax]
mov rdx, qword [rdi + 0x10]
test rdx, rdx
je 0x1400313f0
cmp dword [rdx], 2
jne 0x1400313f0
mov rdx, qword [rdx + 0x10]
test rdx, rdx
je 0x1400313f0
or rbx, 0xffffffffffffffff
inc rbx
cmp byte [rdx + rbx], 0
jne 0x140031367
shr rbx, 1
cmp ebx, 0x64
jg 0x1400313f0
movsxd rax, ebx
lea rcx, [rbp + 0x80]
mov r8, rax
mov qword [rsp + 0x40], rax
call fcn.14003e0f0
test eax, eax
je 0x1400313f0
mov rax, qword [rsp + 0x30]
movsxd rcx, dword [rsp + 0x20]
movzx eax, byte [rcx + rax]
add eax, esi
add eax, ebx
cmp eax, 0x64
jg 0x1400313c7
mov r8, qword [rsp + 0x40]
movsxd rax, esi
lea rcx, [rbp + 0x10]
lea rdx, [rbp + 0x80]
add rcx, rax
call sub.MSVCR120.dll_memcpy
add esi, ebx
mov rax, qword [rsp + 0x28]
cmp dword [rax], 0
jne 0x1400313e2
mov rdi, qword [rdi + 8]
add rax, 0x28
cmp rdi, rax
cmove rdi, r14
jmp 0x1400313e5
mov rdi, r14
test rdi, rdi
jne 0x140031340
jmp 0x1400313fe
lea rdx, str.JSON_invalid_coinbaseaux
xor ecx, ecx
call fcn.14003ce00
test esi, esi
je 0x1400314a1
movsxd r8, dword [rsp + 0x20]
mov rdx, qword [rsp + 0x30]
movzx r9d, byte [r8 + rdx]
lea rax, [r8 + rdx]
lea rbx, [rdx + 1]
mov qword [rsp + 0x40], rax
lea rax, [r8 + r9]
add rbx, rax
lea eax, [r9 + rsi]
cmp eax, 0x4c
jge 0x140031439
mov edi, 1
jmp 0x140031448
add eax, 2
mov edi, 2
cmp eax, 0x64
cmovg edi, r14d
lea eax, [rdi + rsi]
mov rdx, rbx
movsxd rcx, eax
mov dword [rsp + 0x28], eax
mov eax, r15d
sub eax, r9d
add rcx, rbx
sub eax, r8d
inc eax
movsxd r8, eax
call qword [sym.imp.MSVCR120.dll_memmove]
mov rax, qword [rsp + 0x40]
lea ecx, [rdi + rsi]
add byte [rax], cl
cmp edi, 2
jne 0x140031483
mov byte [rbx], 0x4c
inc rbx
jmp 0x140031487
test edi, edi
je 0x14003148d
mov byte [rbx], sil
inc rbx
lea rdx, [rbp + 0x10]
movsxd r8, esi
mov rcx, rbx
call sub.MSVCR120.dll_memcpy
add r15d, dword [rsp + 0x28]
mov rdi, qword [rsp + 0x50]
lea esi, [rdi + 1]
movsxd rax, esi
mov dword [rsp + 0x48], esi
cmp rax, 0xfd
jae 0x1400314c5
mov byte [rbp], al
mov ebx, 1
jmp 0x140031546
mov byte [rbp + 1], al
cmp rax, 0xffff
ja 0x1400314e2
shr rax, 8
mov byte [rbp], 0xfd
mov ebx, 3
mov byte [rbp + 2], al
jmp 0x140031546
mov ecx, 0xffffffff
cmp rax, rcx
ja 0x14003150c
shr rax, 8
mov byte [rbp], 0xfe
mov ebx, 5
mov byte [rbp + 2], al
shr rax, 8
mov byte [rbp + 3], al
shr rax, 8
mov byte [rbp + 4], al
jmp 0x140031546
shr rax, 8
mov byte [rbp], 0xff
mov ebx, 9
mov byte [rbp + 2], al
shr rax, 8
mov byte [rbp + 3], al
shr rax, 8
mov byte [rbp + 4], al
shr rax, 8
mov byte [rbp + 5], al
shr rax, 8
mov byte [rbp + 6], al
shr rax, 8
mov byte [rbp + 7], al
shr rax, 8
mov byte [rbp + 8], al
mov eax, dword [rsp + 0x68]
add eax, r15d
add eax, ebx
lea eax, [rax*2 + 1]
movsxd rcx, eax
call qword [sym.imp.MSVCR120.dll_malloc]
mov rcx, qword [rsp + 0x58]
mov qword [rcx + 0x128], rax
mov qword [rsp + 0x40], rax
test rax, rax
je 0x1400315ca
movsxd rax, ebx
test ebx, ebx
je 0x1400315ca
mov r12, qword [rsp + 0x40]
mov rcx, r14
mov edi, r14d
mov r13d, ecx
mov rsi, rax
nop dword [rax]
movzx r8d, byte [rbp + rcx]
mov ecx, edi
lea rdx, [0x1401379c0]
add rcx, r12
call qword [sym.imp.MSVCR120.dll_sprintf]
inc r13d
add edi, 2
mov ecx, r13d
cmp rcx, rsi
jb 0x140031590
mov esi, dword [rsp + 0x48]
mov r12, qword [rsp + 0x78]
mov rdi, qword [rsp + 0x50]
mov r13d, 0x1505
lea eax, [rbx + rbx]
mov rbx, qword [rsp + 0x30]
movsxd rcx, eax
mov rax, qword [rsp + 0x58]
add rcx, qword [rax + 0x128]
je 0x1400315ee
movsxd r8, r15d
mov rdx, rbx
call fcn.14003e080
lea eax, [rdi + 2]
and eax, 0xfffffffe
shl eax, 5
movsxd rcx, eax
call qword [sym.imp.MSVCR120.dll_malloc]
cmp dword [rbp - 0x80], 0
mov qword [rsp + 0x28], rax
jne 0x14003161b
mov r8d, r15d
mov rdx, rbx
mov rcx, rax
call fcn.140045b10
jmp 0x14003166e
movsxd rbx, r15d
mov rcx, rbx
call qword [sym.imp.MSVCR120.dll_malloc]
mov rdi, rax
mov rax, qword [rsp + 0x30]
mov ecx, dword [rax]
lea rdx, [rax + 6]
mov dword [rdi], ecx
lea ecx, [r15 - 0x2c]
movsxd r8, ecx
lea rcx, [rdi + 4]
call sub.MSVCR120.dll_memcpy
mov rax, qword [rsp + 0x30]
lea r8d, [r15 - 0x24]
mov ecx, dword [rbx + rax - 4]
mov rdx, rdi
mov dword [rbx + rdi - 0x28], ecx
mov rcx, qword [rsp + 0x28]
call fcn.140045b10
mov rcx, rdi
call qword [sym.imp.MSVCR120.dll_free]
cmp qword [rsp + 0x38], 0
mov r15, r14
jle 0x140031782
mov dword [rsp + 0x20], 1
mov rax, qword [rbp - 0x68]
cmp dword [rax], 1
jne 0x1400316d2
cmp r15, qword [rax + 0x18]
jae 0x1400316d2
mov rax, qword [rax + 0x20]
mov rcx, qword [rax + r15*8]
test rcx, rcx
je 0x1400316d2
lea rdx, [0x1401386fc]
call fcn.14002f450
test rax, rax
je 0x1400316d2
cmp dword [rax], 2
jne 0x1400316d2
mov rdi, qword [rax + 0x10]
test rdi, rdi
je 0x1400316d5
or rbx, 0xffffffffffffffff
inc rbx
cmp byte [rdi + rbx], 0
jne 0x1400316c4
shr rbx, 1
jmp 0x1400316d8
mov rdi, r14
mov ebx, r14d
movsxd rax, ebx
mov rcx, rax
mov qword [rsp + 0x78], rax
call qword [sym.imp.MSVCR120.dll_malloc]
mov qword [rsp + 0x50], rax
test rdi, rdi
je 0x140031f46
mov r8, qword [rsp + 0x78]
mov rdx, rdi
mov rcx, rax
call fcn.14003e0f0
test eax, eax
je 0x140031f46
movsxd rcx, dword [rsp + 0x20]
mov rdx, qword [rsp + 0x50]
mov r8d, ebx
shl rcx, 5
add rcx, qword [rsp + 0x28]
call fcn.140045b10
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.MSVCR120.dll_free]
mov ecx, dword [rsp + 0x60]
test ecx, ecx
jne 0x140031770
mov rax, qword [rsp + 0x58]
mov rcx, qword [rax + 0x128]
dec rcx
nop dword [rax]
cmp byte [rcx + 1], 0
lea rcx, [rcx + 1]
jne 0x140031750
xor edx, edx
nop dword [rax]
movzx eax, byte [rdi + rdx]
lea rdx, [rdx + 1]
mov byte [rcx + rdx - 1], al
test al, al
jne 0x140031760
inc dword [rsp + 0x20]
inc r15
cmp r15, qword [rsp + 0x38]
jl 0x140031685
cmp esi, 1
jle 0x140031809
mov r13, qword [rsp + 0x28]
mov eax, esi
and eax, 0x80000001
jge 0x1400317a0
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
je 0x1400317c4
movsxd rcx, esi
shl rcx, 5
inc esi
movups xmm0, xmmword [rcx + r13 - 0x20]
movups xmm1, xmmword [rcx + r13 - 0x10]
movups xmmword [rcx + r13], xmm0
movups xmmword [rcx + r13 + 0x10], xmm1
mov eax, esi
cdq
sub eax, edx
sar eax, 1
mov esi, eax
test eax, eax
jle 0x1400317fe
mov rbx, r13
mov rdi, r13
mov r15d, esi
nop word [rax + rax]
mov r8d, 0x40
mov rdx, rdi
mov rcx, rbx
call fcn.140045b10
add rdi, 0x40
add rbx, 0x20
dec r15
jne 0x1400317e0
cmp esi, 1
jg 0x140031790
mov r13d, 0x1505
mov r15, qword [rsp + 0x58]
mov rax, qword [rsp + 0x70]
movzx ecx, byte [rbp - 0x40]
shl ecx, 8
mov dword [r15], eax
movzx eax, byte [rbp - 0x3f]
add ecx, eax
movzx eax, byte [rbp - 0x3e]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x3d]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x3b]
mov dword [r15 + 0x20], ecx
movzx ecx, byte [rbp - 0x3c]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x3a]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x39]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x37]
mov dword [r15 + 0x1c], ecx
movzx ecx, byte [rbp - 0x38]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x36]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x35]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x33]
mov dword [r15 + 0x18], ecx
movzx ecx, byte [rbp - 0x34]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x32]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x31]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x2f]
mov dword [r15 + 0x14], ecx
movzx ecx, byte [rbp - 0x30]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x2e]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x2d]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x2b]
mov dword [r15 + 0x10], ecx
movzx ecx, byte [rbp - 0x2c]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x2a]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x29]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x27]
mov dword [r15 + 0xc], ecx
movzx ecx, byte [rbp - 0x28]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x26]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x25]
shl ecx, 8
add ecx, eax
mov dword [r15 + 8], ecx
movzx ecx, byte [rbp - 0x24]
mov rdx, qword [rsp + 0x28]
shl ecx, 8
movzx eax, byte [rbp - 0x23]
add ecx, eax
movzx eax, byte [rbp - 0x22]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x21]
shl ecx, 8
add ecx, eax
mov dword [r15 + 4], ecx
movzx eax, byte [rdx + 2]
movzx ecx, byte [rdx + 3]
shl ecx, 8
add ecx, eax
movzx eax, byte [rdx + 1]
shl ecx, 8
add ecx, eax
movzx eax, byte [rdx]
shl ecx, 8
add ecx, eax
mov dword [r15 + 0x24], ecx
movzx eax, byte [rdx + 6]
movzx ecx, byte [rdx + 7]
shl ecx, 8
add ecx, eax
movzx eax, byte [rdx + 5]
shl ecx, 8
add ecx, eax
movzx eax, byte [rdx + 4]
shl ecx, 8
add ecx, eax
mov dword [r15 + 0x28], ecx
movzx eax, byte [rdx + 0xa]
movzx ecx, byte [rdx + 0xb]
shl ecx, 8
add ecx, eax
movzx eax, byte [rdx + 9]
shl ecx, 8
add ecx, eax
movzx eax, byte [rdx + 8]
shl ecx, 8
add ecx, eax
mov dword [r15 + 0x2c], ecx
movzx eax, byte [rdx + 0xe]
movzx ecx, byte [rdx + 0xf]
shl ecx, 8
add ecx, eax
movzx eax, byte [rdx + 0xd]
shl ecx, 8
add ecx, eax
movzx eax, byte [rdx + 0xc]
shl ecx, 8
add ecx, eax
mov dword [r15 + 0x30], ecx
movzx eax, byte [rdx + 0x12]
movzx ecx, byte [rdx + 0x13]
shl ecx, 8
add ecx, eax
movzx eax, byte [rdx + 0x11]
shl ecx, 8
add ecx, eax
movzx eax, byte [rdx + 0x10]
shl ecx, 8
add ecx, eax
mov dword [r15 + 0x34], ecx
movzx eax, byte [rdx + 0x16]
movzx ecx, byte [rdx + 0x17]
shl ecx, 8
add ecx, eax
movzx eax, byte [rdx + 0x15]
shl ecx, 8
add ecx, eax
movzx eax, byte [rdx + 0x14]
shl ecx, 8
add ecx, eax
mov dword [r15 + 0x38], ecx
movzx ecx, byte [rdx + 0x1b]
movzx eax, byte [rdx + 0x1a]
shl ecx, 8
add ecx, eax
movzx eax, byte [rdx + 0x19]
shl ecx, 8
add ecx, eax
movzx eax, byte [rdx + 0x18]
shl ecx, 8
add ecx, eax
mov dword [r15 + 0x3c], ecx
movzx eax, byte [rdx + 0x1e]
movzx ecx, byte [rdx + 0x1f]
shl ecx, 8
add ecx, eax
movzx eax, byte [rdx + 0x1d]
shl ecx, 8
add ecx, eax
movzx eax, byte [rdx + 0x1c]
shl ecx, 8
add ecx, eax
mov rax, qword [rbp - 0x70]
mov dword [r15 + 0x40], ecx
mov ecx, dword [rbp - 0x7c]
mov dword [r15 + 0x44], eax
mov rax, qword [rbp - 0x78]
mov edx, ecx
mov qword [r15 + 0x48], r14
mov qword [r15 + 0x50], r14
mov qword [r15 + 0x58], r14
mov dword [r15 + 0x60], r14d
mov dword [r15 + 0x64], eax
mov eax, ecx
and edx, 0xff0000
shr eax, 0x10
or edx, eax
mov eax, ecx
and ecx, 0xff00
shl eax, 0x10
shr edx, 8
or eax, ecx
movzx ecx, byte [rbp - 0x20]
shl ecx, 8
shl eax, 8
or edx, eax
movzx eax, byte [rbp - 0x1f]
add ecx, eax
movzx eax, byte [rbp - 0x1e]
mov dword [r15 + 0x68], edx
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x1d]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x1b]
mov dword [r15 + 0x88], ecx
movzx ecx, byte [rbp - 0x1c]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x1a]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x19]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x17]
mov dword [r15 + 0x84], ecx
movzx ecx, byte [rbp - 0x18]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x16]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x15]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x13]
mov dword [r15 + 0x80], ecx
movzx ecx, byte [rbp - 0x14]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x12]
shl ecx, 8
add ecx, eax
shl ecx, 8
movzx eax, byte [rbp - 0x11]
add ecx, eax
movzx eax, byte [rbp - 0xf]
mov dword [r15 + 0x7c], ecx
movzx ecx, byte [rbp - 0x10]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0xe]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0xd]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0xb]
mov dword [r15 + 0x78], ecx
movzx ecx, byte [rbp - 0xc]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0xa]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 9]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 7]
mov dword [r15 + 0x74], ecx
movzx ecx, byte [rbp - 8]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 6]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 5]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 3]
mov dword [r15 + 0x70], ecx
movzx ecx, byte [rbp - 4]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 2]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 1]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x5f]
mov dword [r15 + 0x6c], ecx
movzx ecx, byte [rbp - 0x60]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x5e]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x5d]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x5b]
mov dword [r15 + 0xa8], ecx
movzx ecx, byte [rbp - 0x5c]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x5a]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x59]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x57]
mov dword [r15 + 0xa4], ecx
movzx ecx, byte [rbp - 0x58]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x56]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x55]
shl ecx, 8
add ecx, eax
mov dword [r15 + 0xa0], ecx
movzx ecx, byte [rbp - 0x54]
movzx eax, byte [rbp - 0x53]
shl ecx, 8
lea r10, str.target
add ecx, eax
movzx eax, byte [rbp - 0x52]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x51]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x4f]
mov dword [r15 + 0x9c], ecx
movzx ecx, byte [rbp - 0x50]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x4e]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x4d]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x4b]
mov dword [r15 + 0x98], ecx
movzx ecx, byte [rbp - 0x4c]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x4a]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x49]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x47]
mov dword [r15 + 0x94], ecx
movzx ecx, byte [rbp - 0x48]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x46]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x45]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x43]
mov dword [r15 + 0x90], ecx
movzx ecx, byte [rbp - 0x44]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x42]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbp - 0x41]
shl ecx, 8
add ecx, eax
mov dword [r15 + 0x8c], ecx
cmp dword [r12], 0
jne 0x140032122
mov rax, r10
mov r9, r13
mov ecx, reloc.WS2_32.dll_WSACleanup
nop dword [rax]
nop word [rax + rax]
imul r9, r9, 0x21
lea rax, [rax + 1]
add r9, rcx
movsx rcx, byte [rax]
test rcx, rcx
jne 0x140031d10
mov rcx, qword [r12 + 0x20]
xor edx, edx
lea r11, reloc.WS2_32.dll_getpeername
mov rax, r9
div qword [r11 + rcx*8]
lea rax, [r12 + 0x28]
shl rdx, 4
add rdx, qword [r12 + 0x18]
mov r8, qword [rdx]
cmp r8, rax
jne 0x140031d60
cmp r8, qword [rdx + 8]
je 0x140032122
nop dword [rax]
cmp qword [r8 - 8], r9
jne 0x140031f64
mov rcx, r14
nop dword [rax]
movzx eax, byte [r8 + rcx + 0x20]
inc rcx
cmp al, byte [r10 + rcx - 1]
jne 0x140031f64
cmp rcx, 7
jne 0x140031d70
mov rbx, qword [r8 + 0x10]
test rbx, rbx
je 0x140032122
cmp dword [rbx], 2
jne 0x140032119
mov rbx, qword [rbx + 0x10]
test rbx, rbx
je 0x140032119
cmp byte [rbx], 0
lea rdi, [rbp - 0x60]
mov byte [rsp + 0x22], 0
je 0x140032133
mov esi, 0x20
test rsi, rsi
je 0x140031e1c
movzx ecx, byte [rbx + 1]
test cl, cl
je 0x140031f96
movzx eax, byte [rbx]
mov byte [rsp + 0x21], cl
lea rdx, [rbp - 0x78]
lea rcx, [rsp + 0x20]
mov r8d, reloc.WS2_32.dll_recv
mov byte [rsp + 0x20], al
call qword [sym.imp.MSVCR120.dll_strtol]
mov byte [rdi], al
mov rax, qword [rbp - 0x78]
cmp byte [rax], 0
jne 0x140031f77
add rbx, 2
inc rdi
dec rsi
cmp byte [rbx], 0
jne 0x140031dc4
test rsi, rsi
jne 0x140032133
cmp byte [rbx], 0
jne 0x140032133
mov r8d, r14d
lea rdx, [rbp - 0x5e]
lea r9, [r15 + 0x11c]
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rdx - 1]
movzx ecx, byte [rdx - 2]
inc r8d
shl ecx, 8
lea rdx, [rdx + 4]
lea r9, [r9 - 4]
add ecx, eax
movzx eax, byte [rdx - 4]
shl ecx, 8
add ecx, eax
movzx eax, byte [rdx - 3]
shl ecx, 8
add ecx, eax
movsxd rax, r8d
mov dword [r9 + 4], ecx
cmp rax, 8
jb 0x140031e40
cmp dword [r12], 0
jne 0x140031fcb
lea r10, str.workid
mov r9, r13
mov ecx, 0x77
mov rax, r10
nop dword [rax]
nop dword [rax + rax]
imul r9, r9, 0x21
lea rax, [rax + 1]
add r9, rcx
movsx rcx, byte [rax]
test rcx, rcx
jne 0x140031ea0
mov rcx, qword [r12 + 0x20]
xor edx, edx
lea rbx, reloc.WS2_32.dll_getpeername
mov rax, r9
div qword [rbx + rcx*8]
lea rax, [r12 + 0x28]
shl rdx, 4
add rdx, qword [r12 + 0x18]
mov r8, qword [rdx]
cmp r8, rax
jne 0x140031ef0
cmp r8, qword [rdx + 8]
je 0x140031fd2
nop dword [rax]
cmp qword [r8 - 8], r9
jne 0x140031fb0
mov rax, r14
nop dword [rax]
movzx ecx, byte [r8 + rax + 0x20]
inc rax
cmp cl, byte [r10 + rax - 1]
jne 0x140031fb0
cmp rax, 7
jne 0x140031f00
mov rcx, qword [r8 + 0x10]
test rcx, rcx
je 0x140031fd2
cmp dword [rcx], 2
jne 0x140031fbf
mov rcx, qword [rcx + 0x10]
call qword [sym.imp.MSVCR120.dll__strdup]
mov qword [r15 + 0x130], rax
jmp 0x140031fd2
lea rdx, str.JSON_invalid_transactions
xor ecx, ecx
call fcn.14003ce00
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.MSVCR120.dll_free]
jmp 0x140032221
cmp r8, qword [rdx + 8]
je 0x140032122
mov r8, qword [r8 + 8]
jmp 0x140031d60
lea r8, [rsp + 0x20]
lea rdx, str.hex2bin_failed_on__s
xor ecx, ecx
call fcn.14003ce00
lea rdx, str.JSON_invalid_target
jmp 0x14003221a
lea rdx, str.hex2bin_str_truncated
xor ecx, ecx
call fcn.14003ce00
lea rdx, str.JSON_invalid_target
jmp 0x14003221a
cmp r8, qword [rdx + 8]
je 0x140031fd2
mov r8, qword [r8 + 8]
jmp 0x140031ef0
lea rdx, str.JSON_invalid_workid
jmp 0x14003221a
lea rbx, reloc.WS2_32.dll_getpeername
mov r8d, dword [r15 + 0x170]
lea rdx, str.got_new_work__height_d
mov ecx, 3
call fcn.14003ce00
cmp dword [r12], 0
jne 0x14003210e
lea rax, str.longpollid
mov ecx, WSASetLastError
imul r13, r13, 0x21
lea rax, [rax + 1]
add r13, rcx
movsx rcx, byte [rax]
test rcx, rcx
jne 0x140032001
mov rcx, qword [r12 + 0x20]
xor edx, edx
mov rax, r13
div qword [rbx + rcx*8]
lea rax, [r12 + 0x28]
mov rdi, rdx
shl rdi, 4
add rdi, qword [r12 + 0x18]
mov rbx, qword [rdi]
cmp rbx, rax
jne 0x140032046
cmp rbx, qword [rdi + 8]
je 0x14003210e
cmp qword [rbx - 8], r13
jne 0x140032060
lea rcx, [rbx + 0x20]
lea rdx, str.longpollid
call sub.MSVCR120.dll_strcmp
test eax, eax
je 0x140032070
cmp rbx, qword [rdi + 8]
je 0x14003210e
mov rbx, qword [rbx + 8]
jmp 0x140032046
mov rbx, qword [rbx + 0x10]
test rbx, rbx
je 0x14003210e
cmp dword [rbx], 2
jne 0x14003210e
mov rcx, qword [0x1401f2be0]
call qword [sym.imp.MSVCR120.dll_free]
cmp dword [rbx], 2
jne 0x14003209c
mov r14, qword [rbx + 0x10]
mov rcx, r14
call qword [sym.imp.MSVCR120.dll__strdup]
cmp dword [0x1401d1a1c], 0
mov qword [0x1401f2be0], rax
jne 0x14003210e
lea rdx, str.longpolluri
mov rcx, r12
call fcn.14002f450
test rax, rax
je 0x1400320d4
cmp dword [rax], 2
jne 0x1400320d4
mov rcx, qword [rax + 0x10]
jmp 0x1400320db
mov rcx, qword [0x1401d1c00]
call qword [sym.imp.MSVCR120.dll__strdup]
movsxd rcx, dword [0x140177180]
mov dword [0x1401d1a1c], 1
lea r8, [rcx + rcx*4]
mov rcx, qword [0x1401d1cc8]
mov rdx, rax
shl r8, 6
mov rcx, qword [r8 + rcx + 0x18]
call fcn.14003e420
mov r14d, 1
jmp 0x140032221
lea rdx, str.JSON_key__s_is_not_a_string
jmp 0x140032129
lea rdx, str.JSON_key__s_not_found
mov r8, r10
xor ecx, ecx
call fcn.14003ce00
lea rdx, str.JSON_invalid_target
jmp 0x14003221a
lea rdx, str.JSON_invalid_coinbasetxn
jmp 0x14003221a
lea rdx, str.no_coinbase_transaction_provided___
jmp 0x14003221a
lea rdx, [0x1401385c0]
jmp 0x14003221a
lea rdx, str.JSON_key__s_is_not_a_string
jmp 0x140032173
lea rdx, str.JSON_key__s_not_found
mov r8, r11
xor ecx, ecx
call fcn.14003ce00
lea rdx, str.JSON_invalid_bits
jmp 0x14003221a
lea rdx, str.JSON_invalid_curtime
jmp 0x14003221a
lea rdx, str.JSON_key__s_is_not_a_string
jmp 0x1400321a5
lea rdx, str.JSON_key__s_not_found
lea r8, str.hashutxoroot
xor ecx, ecx
call fcn.14003ce00
lea rdx, str.JSON_invalid_hashutxoroot
jmp 0x14003221a
lea rdx, str.JSON_key__s_is_not_a_string
jmp 0x1400321cc
lea rdx, str.JSON_key__s_not_found
lea r8, str.hashstateroot
xor ecx, ecx
call fcn.14003ce00
lea rdx, str.JSON_invalid_hashstateroot
jmp 0x14003221a
lea rdx, str.JSON_key__s_is_not_a_string
jmp 0x1400321f3
lea rdx, str.JSON_key__s_not_found
lea r8, str.previousblockhash
xor ecx, ecx
call fcn.14003ce00
lea rdx, str.JSON_invalid_previousblockhash
jmp 0x14003221a
lea rdx, str.JSON_invalid_version
jmp 0x14003221a
lea rdx, str.JSON_invalid_height
xor ecx, ecx
call fcn.14003ce00
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.MSVCR120.dll_free]
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.MSVCR120.dll_free]
mov eax, r14d
mov rcx, qword [rbp + 0xf0]
xor rcx, rsp
call fcn.140129b50
mov rbx, qword [rsp + 0x250]
add rsp, 0x200
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret