Function at 0x40f520
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xadc
mov ebx, dword [eax + 0x16c]
cmp byte [eax + 0x182], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x38], ebx
mov ebx, dword [ebx + 0x634]
movzx esi, byte [ebx + 0x2a]
je 0x40f561
add esp, 0xadc
mov ebx, 1
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov edi, eax
mov dword [esp + 0x50], eax
mov eax, dword [eax + 0x20]
mov dword [esp + 0x6c], eax
mov eax, dword [edi + 0x1c]
mov dword [esp + 0x70], eax
mov eax, dword [edi + 0x18]
mov dword [esp + 0x74], eax
mov eax, dword [edi + 0x14]
mov dword [esp + 0x78], eax
mov eax, dword [edi + 0x10]
mov dword [esp + 0x7c], eax
mov eax, dword [edi + 0xc]
mov dword [esp + 0x80], eax
mov eax, dword [edi + 8]
mov dword [esp + 0x84], eax
mov eax, dword [edi + 4]
mov dword [esp + 8], 0x20
mov dword [esp + 0x88], eax
lea eax, [esp + 0x6c]
mov dword [esp + 4], eax
lea eax, [esp + 0x8c]
mov dword [esp], eax
call sym.___bin2hex
mov eax, esi
cmp al, 4
jbe 0x40fd1d
mov eax, dword [esp + 0x38]
lea ebx, [eax + 0x1a8]
mov dword [esp], ebx
call dbg.pthread_mutex_lock
test eax, eax
jne 0x41056e
mov eax, dword [esp + 0x38]
lea esi, [eax + 0x1ac]
mov dword [esp], esi
call dbg.pthread_rwlock_wrlock
test eax, eax
jne 0x4105dd
mov eax, dword [esp + 0x38]
cmp byte [eax + 0x300], 0
jne 0x40f7c7
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 0x68]
cmp dword [edi + 0x748], eax
mov dword [esp + 0x44], eax
je 0x40f630
mov dword [edi + 0x748], eax
mov dword [esp], esi
call dbg.pthread_rwlock_unlock
test eax, eax
jne 0x41060b
mov dword [esp], ebx
call dbg.pthread_mutex_unlock
test eax, eax
jne 0x41063c
call dword [0x5bb9e0]
lea ebx, [esp + 0x8c]
mov dword [esp], 0x7329f8
call dbg.pthread_rwlock_wrlock
test eax, eax
mov dword [esp + 0x20], ebx
mov ecx, dword [esp + 0x20]
jne 0x41066d
mov edx, dword [ecx]
add ecx, 4
lea eax, [edx - 0x1010101]
not edx
and eax, edx
and eax, 0x80808080
je 0x40f679
mov edx, eax
shr edx, 0x10
test eax, 0x8080
cmove eax, edx
lea edx, [ecx + 2]
mov ebx, eax
cmovne edx, ecx
add bl, al
lea eax, [esp + 0x8c]
sbb edx, 3
sub edx, eax
cmp edx, 0xb
mov dword [esp + 0x20], edx
jbe 0x41072b
lea ebx, [esp + 0x8c]
mov esi, edx
mov eax, 0xfeedbeef
mov edi, 0x9e3779b9
mov edx, 0x9e3779b9
mov esi, esi
lea edi, [edi]
movzx ebp, byte [ebx + 5]
movzx ecx, byte [ebx + 6]
shl ebp, 8
shl ecx, 0x10
add ecx, ebp
movzx ebp, byte [ebx + 4]
add ebp, ecx
movzx ecx, byte [ebx + 7]
shl ecx, 0x18
add ecx, ebp
add ecx, edi
movzx edi, byte [ebx + 9]
shl edi, 8
mov ebp, edi
movzx edi, byte [ebx + 0xa]
shl edi, 0x10
add edi, ebp
movzx ebp, byte [ebx + 8]
add edi, ebp
movzx ebp, byte [ebx + 0xb]
shl ebp, 0x18
add ebp, edi
movzx edi, byte [ebx + 1]
add ebp, eax
movzx eax, byte [ebx + 2]
shl edi, 8
shl eax, 0x10
add eax, edi
movzx edi, byte [ebx]
add edi, eax
movzx eax, byte [ebx + 3]
shl eax, 0x18
add eax, edi
sub eax, ecx
sub ecx, ebp
sub eax, ebp
lea eax, [eax + edx]
mov edx, ebp
shr edx, 0xd
xor eax, edx
mov edx, eax
sub ecx, eax
sub ebp, eax
shl edx, 8
xor ecx, edx
mov edx, ecx
sub ebp, ecx
shr edx, 0xd
xor ebp, edx
sub eax, ecx
sub esi, 0xc
mov edx, ebp
sub eax, ebp
sub ecx, ebp
shr edx, 0xc
add ebx, 0xc
xor eax, edx
mov edx, eax
sub ecx, eax
sub ebp, eax
shl edx, 0x10
xor ecx, edx
mov edx, ecx
sub ebp, ecx
sub eax, ecx
shr edx, 5
xor ebp, edx
mov edx, ebp
sub eax, ebp
sub ecx, ebp
shr edx, 3
xor edx, eax
mov edi, edx
sub ecx, edx
sub ebp, edx
shl edi, 0xa
xor edi, ecx
mov eax, edi
sub ebp, edi
shr eax, 0xf
xor eax, ebp
cmp esi, 0xb
ja 0x40f6e0
add eax, dword [esp + 0x20]
cmp esi, 0xb
ja case.0x40f7c0.0
jmp dword [esi*4 + 0x5c2d00]
mov byte [eax + 0x300], 0
mov eax, dword [esp + 0x50]
mov byte [eax + 0x180], 1
jmp 0x40f616
movzx ecx, byte [ebx + 0xa]
shl ecx, 0x18
add eax, ecx
movzx ecx, byte [ebx + 9]
shl ecx, 0x10
add eax, ecx
movzx ecx, byte [ebx + 8]
shl ecx, 8
add eax, ecx
movzx ecx, byte [ebx + 7]
shl ecx, 0x18
add edi, ecx
movzx ecx, byte [ebx + 6]
shl ecx, 0x10
add edi, ecx
movzx ecx, byte [ebx + 5]
shl ecx, 8
add edi, ecx
movzx ecx, byte [ebx + 4]
add edi, ecx
movzx ecx, byte [ebx + 3]
shl ecx, 0x18
add edx, ecx
movzx ecx, byte [ebx + 2]
shl ecx, 0x10
add edx, ecx
movzx ecx, byte [ebx + 1]
shl ecx, 8
add edx, ecx
movzx ecx, byte [ebx]
add edx, ecx
sub edx, edi
mov ecx, eax
sub edi, eax
sub edx, eax
shr ecx, 0xd
xor edx, ecx
mov ecx, edx
sub edi, edx
sub eax, edx
shl ecx, 8
xor edi, ecx
mov ecx, edi
sub eax, edi
sub edx, edi
shr ecx, 0xd
xor eax, ecx
mov ecx, eax
sub edx, eax
sub edi, eax
shr ecx, 0xc
xor edx, ecx
mov ecx, edx
sub edi, edx
sub eax, edx
shl ecx, 0x10
xor edi, ecx
mov esi, edi
sub eax, edi
sub edx, edi
shr esi, 5
xor eax, esi
mov ecx, eax
sub edx, eax
sub edi, eax
shr ecx, 3
xor edx, ecx
mov esi, edx
sub edi, edx
shl esi, 0xa
xor edi, esi
sub eax, edx
sub eax, edi
shr edi, 0xf
mov esi, edi
xor esi, eax
mov eax, dword [0x732914]
test eax, eax
je 0x40fa00
mov eax, dword [eax + 0x44]
mov ebx, dword [eax + 4]
mov edi, dword [eax]
lea edx, [ebx - 1]
and edx, esi
lea edx, [edx + edx*2]
lea edx, [edi + edx*4]
mov ebx, dword [edx]
test ebx, ebx
je 0x40fa00
mov edi, dword [eax + 0x14]
mov ebp, dword [esp + 0x20]
neg edi
add ebx, edi
jmp 0x40f8e1
mov ebx, dword [ebx + 0x54]
test ebx, ebx
je 0x40fa00
add ebx, edi
test ebx, ebx
je 0x40fa00
cmp esi, dword [ebx + 0x60]
jne 0x40f8d4
cmp ebp, dword [ebx + 0x5c]
jne 0x40f8d4
lea eax, [esp + 0x8c]
mov dword [esp + 8], ebp
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x58]
mov dword [esp], eax
call sym._memcmp
test eax, eax
jne 0x40f8d4
mov dword [esp], 0x7329f8
call dbg.pthread_rwlock_unlock
test eax, eax
jne 0x4106e4
call dword [0x5bb9e0]
mov eax, dword [esp + 0x38]
mov dword [esp + 8], 0x20
lea ebx, [eax + 0x290]
lea eax, [esp + 0x6c]
mov dword [esp], ebx
mov dword [esp + 4], eax
call sym._memcmp
test eax, eax
je 0x40fc4a
lea eax, [esp + 0x6c]
mov dword [esp + 8], 0x20
mov dword [esp + 4], 0x732980
mov dword [esp], eax
call sym._memcmp
test eax, eax
je 0x40fbb6
xor ebx, ebx
cmp byte [0x732fa1], 0
je 0x40fc4f
cmp byte [0x745ef7], 0
jne 0x40f9a7
cmp byte [0x732fa0], 0
jne 0x40f9a7
cmp dword [0x5bc2e0], 3
jle 0x40fc4f
mov eax, dword [esp + 0x44]
lea ebx, [esp + 0xd0]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x38]
mov eax, dword [eax]
mov dword [esp], ebx
mov dword [esp + 8], str.Stale_data_from_pool__d_at_height__d
mov dword [esp + 4], 0xa00
mov dword [esp + 0xc], eax
call sym._snprintf
mov dword [esp + 4], ebx
mov dword [esp + 8], 0
xor ebx, ebx
mov dword [esp], 4
call sym.__applog
jmp 0x40fc4f
mov dword [esp + 0x10], 0x179b
mov dword [esp + 0xc], str.block_exists
mov dword [esp + 8], str.cgminer.c
mov dword [esp + 4], 1
mov dword [esp], 0x68
call sym.__cgcalloc
test eax, eax
mov dword [esp + 0x40], eax
je 0x410ba8
mov ebx, dword [esp + 0x40]
lea eax, [esp + 0x8c]
mov dword [esp + 4], eax
mov dword [esp], ebx
call sym._strcpy
mov eax, dword [0x745ee0]
mov dword [ebx + 0x64], eax
mov ebx, dword [0x732914]
lea edx, [eax + 1]
mov dword [0x745ee0], edx
test ebx, ebx
je 0x40fd42
mov eax, dword [ebx + 0x44]
mov dword [esp + 0x30], 0
cmp dword [eax + 0xc], 6
jbe 0x40fd4a
lea eax, [ebx + 0x44]
mov dword [esp + 0x34], 1
mov edi, ebx
mov dword [esp + 0x30], eax
mov edx, dword [esp + 0x30]
xor ebp, ebp
mov dword [esp + 0x30], 0
mov dword [esp + 0x3c], 0
lea esi, [esi]
mov esi, dword [esp + 0x34]
add dword [esp + 0x3c], 1
test esi, esi
je 0x410565
mov eax, dword [edx + 8]
test eax, eax
je 0x410559
mov ecx, dword [edi + 0x44]
mov ebx, dword [ecx + 0x14]
mov ecx, 1
add eax, ebx
jne 0x40fae4
jmp 0x40faf8
add eax, ebx
je 0x40faf8
cmp esi, ecx
je 0x410550
mov eax, dword [eax + 8]
add ecx, 1
test eax, eax
jne 0x40fae0
xor eax, eax
mov dword [esp + 0x2c], edx
mov ebx, dword [esp + 0x34]
mov edx, eax
mov dword [esp + 0x20], ecx
jmp 0x40fb5a
test ebx, ebx
je 0x410470
test edx, edx
je 0x410470
mov eax, dword [edx + 8]
test eax, eax
je 0x410440
mov esi, dword [edi + 0x44]
add eax, dword [esi + 0x14]
sub ebx, 1
test ebp, ebp
je 0x40fba6
mov esi, dword [edi + 0x44]
mov ecx, edx
sub ecx, dword [esi + 0x14]
test edx, edx
mov dword [ebp + 8], ecx
je 0x410d1a
mov esi, dword [edi + 0x44]
sub ebp, dword [esi + 0x14]
mov esi, ebp
mov ebp, edx
mov edx, eax
mov dword [ebp + 4], esi
mov esi, dword [esp + 0x20]
test esi, esi
je 0x40fb10
test ebx, ebx
je 0x4103e0
test edx, edx
je 0x4103e0
mov eax, dword [edi + 0x44]
mov ecx, dword [esp + 0x2c]
mov eax, dword [eax + 0x14]
mov esi, eax
neg esi
mov ecx, dword [ecx + esi + 0x64]
sub ecx, dword [edx + esi + 0x64]
test ecx, ecx
jle 0x410450
mov esi, dword [edx + 8]
add eax, esi
test esi, esi
mov esi, 0
cmove eax, esi
sub ebx, 1
test ebp, ebp
jne 0x40fb38
mov ebp, edx
mov edx, eax
xor esi, esi
test ebp, ebp
mov dword [esp + 0x30], ebp
jne 0x40fb57
jmp 0x40fb5a
cmp byte [0x745ef7], 0
jne 0x40fbd1
cmp byte [0x732fa0], 0
jne 0x40fbd1
cmp dword [0x5bc2e0], 2
jle 0x40fc1a
mov eax, dword [esp + 0x44]
lea esi, [esp + 0xd0]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x38]
mov eax, dword [eax]
mov dword [esp + 8], str.Pool__d_now_up_to_date_at_height__d
mov dword [esp + 4], 0xa00
mov dword [esp], esi
mov dword [esp + 0xc], eax
call sym._snprintf
mov dword [esp + 8], 0
mov dword [esp + 4], esi
mov dword [esp], 3
call sym.__applog
lea eax, [esp + 0x6c]
mov dword [esp + 0x14], 0x180b
mov dword [esp + 0x10], str.test_work_current
mov dword [esp + 0xc], str.cgminer.c
mov dword [esp + 8], 0x20
mov dword [esp + 4], eax
mov dword [esp], ebx
call sym.__cg_memcpy
mov ebx, 1
mov edi, dword [esp + 0x50]
cmp byte [edi + 0x180], 0
je 0x40fd05
mov eax, dword [0x7329c4]
add eax, 1
mov dword [0x7329c4], eax
mov dword [edi + 0x1b8], eax
mov eax, dword [0x731038]
sub eax, 3
cmp eax, 1
jbe 0x40fc93
mov eax, dword [esp + 0x50]
mov esi, dword [eax + 0x16c]
call sym._current_pool
cmp esi, eax
jne 0x40fd05
mov eax, dword [esp + 0x50]
cmp byte [eax + 0x184], 0
je 0x41074a
cmp byte [0x745ef7], 0
jne 0x40fcbf
cmp byte [0x732fa0], 0
jne 0x40fcbf
cmp dword [0x5bc2e0], 1
jle 0x40fd00
mov eax, dword [esp + 0x38]
lea esi, [esp + 0xd0]
mov eax, dword [eax]
mov dword [esp + 8], str.Stratum_from_pool__d_requested_work_restart
mov dword [esp + 4], 0xa00
mov dword [esp], esi
mov dword [esp + 0xc], eax
call sym._snprintf
mov dword [esp + 8], 0
mov dword [esp + 4], esi
mov dword [esp], 2
call sym.__applog
call sym._restart_threads
mov eax, dword [esp + 0x50]
mov byte [eax + 0x180], 0
add esp, 0xadc
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
movzx esi, al
add ebx, 0x2b
test esi, esi
je 0x40fd38
xor edx, edx
movzx eax, byte [ebx + edx]
mov byte [esp + edx + 0x68], al
add edx, 1
cmp edx, esi
jb 0x40fd29
sub dword [esp + 0x68], 1
jmp 0x40f5d1
mov dword [esp + 0x30], 0
mov edi, dword [esp + 0x40]
mov dword [esp], edi
call sym._strlen
cmp eax, 0xb
mov dword [esp + 0x20], eax
jbe 0x410acd
mov ecx, edi
mov edi, 0xfeedbeef
mov ebp, eax
mov dword [esp + 0x2c], ebx
mov edx, 0x9e3779b9
mov eax, 0x9e3779b9
mov ebx, edi
lea esi, [esi]
movzx esi, byte [ecx + 5]
mov edi, esi
movzx esi, byte [ecx + 6]
shl edi, 8
shl esi, 0x10
add esi, edi
movzx edi, byte [ecx + 4]
add edi, esi
movzx esi, byte [ecx + 7]
shl esi, 0x18
add esi, edi
add edx, esi
movzx esi, byte [ecx + 9]
mov edi, esi
movzx esi, byte [ecx + 0xa]
shl edi, 8
shl esi, 0x10
add esi, edi
movzx edi, byte [ecx + 8]
add edi, esi
movzx esi, byte [ecx + 0xb]
shl esi, 0x18
add esi, edi
add esi, ebx
movzx ebx, byte [ecx + 1]
shl ebx, 8
mov edi, ebx
movzx ebx, byte [ecx + 2]
shl ebx, 0x10
add ebx, edi
movzx edi, byte [ecx]
add edi, ebx
movzx ebx, byte [ecx + 3]
shl ebx, 0x18
add ebx, edi
sub ebx, edx
sub edx, esi
sub ebx, esi
add eax, ebx
mov ebx, esi
shr ebx, 0xd
xor eax, ebx
mov ebx, eax
sub edx, eax
sub esi, eax
shl ebx, 8
xor edx, ebx
mov ebx, edx
sub esi, edx
shr ebx, 0xd
xor ebx, esi
sub eax, edx
sub ebp, 0xc
mov esi, ebx
sub eax, ebx
sub edx, ebx
shr esi, 0xc
add ecx, 0xc
xor eax, esi
mov esi, eax
sub edx, eax
sub ebx, eax
shl esi, 0x10
xor edx, esi
mov esi, edx
sub ebx, edx
sub eax, edx
shr esi, 5
xor ebx, esi
mov esi, ebx
sub eax, ebx
sub edx, ebx
shr esi, 3
xor eax, esi
mov esi, eax
sub edx, eax
sub ebx, eax
shl esi, 0xa
xor edx, esi
mov esi, edx
sub ebx, edx
shr esi, 0xf
xor ebx, esi
cmp ebp, 0xb
ja 0x40fd80
mov edi, ebx
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x20]
add esi, edi
cmp ebp, 0xb
ja case.0x40fe6b.0
jmp dword [ebp*4 + 0x5c2d30]
movzx edi, byte [ecx + 0xa]
shl edi, 0x18
add esi, edi
movzx edi, byte [ecx + 9]
shl edi, 0x10
add esi, edi
movzx edi, byte [ecx + 8]
shl edi, 8
add esi, edi
movzx edi, byte [ecx + 7]
shl edi, 0x18
add edx, edi
movzx edi, byte [ecx + 6]
shl edi, 0x10
add edx, edi
movzx edi, byte [ecx + 5]
shl edi, 8
add edx, edi
movzx edi, byte [ecx + 4]
add edx, edi
movzx edi, byte [ecx + 3]
shl edi, 0x18
add eax, edi
movzx edi, byte [ecx + 2]
shl edi, 0x10
add eax, edi
movzx edi, byte [ecx + 1]
shl edi, 8
add eax, edi
movzx ecx, byte [ecx]
add eax, ecx
sub eax, edx
mov ecx, esi
sub eax, esi
shr ecx, 0xd
xor ecx, eax
mov eax, edx
mov edx, ecx
sub eax, esi
shl edx, 8
sub eax, ecx
mov edi, edx
xor edi, eax
mov eax, esi
sub eax, ecx
mov edx, edi
sub eax, edi
shr edx, 0xd
xor edx, eax
mov eax, ecx
sub eax, edi
mov esi, edx
sub eax, edx
shr edx, 0xc
xor edx, eax
mov eax, edi
sub eax, esi
mov ecx, edx
sub eax, edx
shl edx, 0x10
mov edi, edx
xor edi, eax
mov eax, esi
sub eax, ecx
mov edx, edi
sub eax, edi
shr edx, 5
xor edx, eax
mov eax, ecx
sub eax, edi
mov esi, edx
sub eax, edx
shr edx, 3
xor edx, eax
mov eax, edi
mov edi, dword [esp + 0x20]
sub eax, esi
mov ecx, edx
sub eax, edx
shl ecx, 0xa
xor eax, ecx
sub esi, edx
mov edx, esi
sub edx, eax
shr eax, 0xf
xor eax, edx
test ebx, ebx
mov esi, eax
mov eax, dword [esp + 0x40]
mov dword [eax + 0x60], esi
mov dword [eax + 0x58], eax
mov dword [eax + 0x5c], edi
je 0x410ae9
mov eax, dword [ebx + 0x44]
mov edi, dword [esp + 0x40]
mov dword [edi + 0x44], eax
mov dword [edi + 0x4c], 0
lea ebp, [edi + 0x44]
mov edx, dword [ebx + 0x44]
mov eax, dword [edx + 0x10]
sub eax, dword [edx + 0x14]
mov dword [edi + 0x48], eax
mov eax, dword [ebx + 0x44]
mov eax, dword [eax + 0x10]
mov dword [eax + 8], edi
mov eax, dword [ebx + 0x44]
mov dword [eax + 0x10], ebp
mov eax, dword [ebx + 0x44]
add dword [eax + 0xc], 1
mov edx, dword [ebx + 0x44]
mov ebx, dword [esp + 0x40]
mov eax, dword [edx + 4]
sub eax, 1
and esi, eax
mov eax, dword [edx]
lea ecx, [esi + esi*2]
lea eax, [eax + ecx*4]
mov edx, dword [eax]
add dword [eax + 4], 1
mov dword [ebx + 0x50], 0
mov dword [ebx + 0x54], edx
mov edx, dword [eax]
test edx, edx
je 0x40ffc4
mov dword [edx + 0xc], ebp
mov edx, dword [eax + 8]
mov dword [eax], ebp
lea edx, [edx + edx*4 + 5]
add edx, edx
cmp dword [eax + 4], edx
jb 0x40ffea
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 0x44]
mov ebx, dword [eax + 0x24]
test ebx, ebx
mov dword [esp + 0x34], ebx
je 0x4108ad
mov ebx, dword [esp + 0x50]
mov eax, 0x1d
mov ecx, 0
movzx edx, byte [ebx + 0x48]
mov ebx, dword [ebx + 0x48]
bswap ebx
sub eax, edx
shl eax, 3
test eax, eax
cmovns ecx, eax
mov eax, 0xffff
xor edx, edx
shld edx, eax, cl
xor esi, esi
shl eax, cl
test cl, 0x20
cmovne edx, eax
cmovne eax, esi
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
test edx, edx
fild qword [esp + 0x20]
js 0x4108a2
and ebx, 0xffffff
mov dword [esp + 0x20], ebx
fstp qword [esp + 0x58]
fld qword [esp + 0x58]
fild dword [esp + 0x20]
fdivp st(1)
fld qword [0x5bb958]
fxch st(1)
fucomi st(1)
fstp st(1)
jp 0x410c0f
jne 0x410c0f
fstp st(0)
lea ebx, [esp + 0xd0]
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x4100d3
cmp byte [0x732fa1], 0
je 0x4100d3
cmp byte [0x745ef7], 0
jne 0x41009b
cmp byte [0x732fa0], 0
jne 0x41009b
cmp dword [0x5bc2e0], 3
jle 0x4100d3
mov eax, dword [esp + 0x30]
mov dword [esp + 8], str.Deleted_block__d_from_database
mov dword [esp + 4], 0xa00
mov dword [esp], ebx
mov dword [esp + 0xc], eax
call sym._snprintf
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
mov dword [esp], 4
call sym.__applog
mov dword [esp], 0x7329f8
call dbg.pthread_rwlock_unlock
test eax, eax
jne 0x4106eb
call dword [0x5bb9e0]
mov dword [esp], 0x745ec8
call dbg.pthread_mutex_lock
test eax, eax
jne 0x410a94
mov dword [esp], 0x745ecc
call dbg.pthread_rwlock_wrlock
test eax, eax
jne 0x410a5b
mov dword [esp], 0x746168
call sym._cgtime_real
lea eax, [esp + 0x8c]
mov dword [esp], 0x745680
mov dword [esp + 4], eax
call sym._strcpy
lea eax, [esp + 0x6c]
mov dword [esp + 0x14], 0x1767
mov dword [esp + 0x10], str.set_curblock
mov dword [esp + 0xc], str.cgminer.c
mov dword [esp + 8], 0x20
mov dword [esp + 4], eax
mov dword [esp], 0x732980
call sym.__cg_memcpy
mov eax, dword [0x746168]
mov ecx, dword [0x74616c]
mov edx, 0x10624dd3
mov dword [esp], ebx
mov dword [esp + 0xd0], eax
mov eax, ecx
sar ecx, 0x1f
imul edx
sar edx, 6
sub edx, ecx
mov esi, edx
call dword [sym.imp.msvcrt.dll_localtime]
mov dword [esp + 0x18], esi
mov edx, dword [eax]
mov dword [esp + 0x14], edx
mov edx, dword [eax + 4]
mov dword [esp + 0x10], edx
mov eax, dword [eax + 8]
mov dword [esp + 8], str.__02d:_02d:_02d._03d_
mov dword [esp + 4], 0x20
mov dword [esp], 0x732920
mov dword [esp + 0xc], eax
call sym._snprintf
mov dword [esp], 0x745ecc
call dbg.pthread_rwlock_unlock
test eax, eax
jne 0x410a39
mov dword [esp], 0x745ec8
call dbg.pthread_mutex_unlock
test eax, eax
jne 0x410a00
call dword [0x5bb9e0]
mov eax, 0x745680
jmp 0x410211
add eax, 1
cmp eax, 0x7456b9
je 0x410898
cmp byte [eax], 0x30
je 0x410203
mov dword [esp + 8], 8
mov dword [esp + 4], eax
mov dword [esp], 0x7329a0
call sym._strncpy
cmp byte [0x745ef7], 0
mov byte [0x7329a8], 0
jne 0x410250
cmp byte [0x732fa0], 0
jne 0x410250
cmp dword [0x5bc2e0], 2
jle 0x410290
mov dword [esp + 0x10], 0x732918
mov dword [esp + 0xc], 0x745680
mov dword [esp + 8], str.New_block:__s..._diff__s
mov dword [esp + 4], 0xa00
mov dword [esp], ebx
call sym._snprintf
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
mov dword [esp], 3
call sym.__applog
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4102f4
cmp byte [0x732fa1], 0
je 0x4102f4
cmp byte [0x745ef7], 0
jne 0x4102bc
cmp byte [0x732fa0], 0
jne 0x4102bc
cmp dword [0x5bc2e0], 3
jle 0x4102f4
mov eax, dword [esp + 0x30]
mov dword [esp + 8], str.Deleted_block__d_from_database
mov dword [esp + 4], 0xa00
mov dword [esp], ebx
mov dword [esp + 0xc], eax
call sym._snprintf
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
mov dword [esp], 4
call sym.__applog
lea eax, [esp + 0x6c]
mov dword [esp + 0x14], 0x17e6
mov dword [esp + 0x10], str.test_work_current
mov dword [esp + 0xc], str.cgminer.c
mov dword [esp + 8], 0x20
mov dword [esp + 4], eax
mov eax, dword [esp + 0x38]
add eax, 0x290
mov dword [esp], eax
call sym.__cg_memcpy
cmp dword [0x745ee0], 1
je 0x410a54
mov eax, dword [0x7329c4]
mov edi, dword [esp + 0x50]
add eax, 1
cmp byte [edi + 0x180], 0
mov dword [0x7329c4], eax
mov dword [edi + 0x1b8], eax
je 0x410688
cmp byte [edi + 0x184], 0
je 0x410816
cmp byte [0x745ef7], 0
jne 0x410386
cmp byte [0x732fa0], 0
jne 0x410386
cmp dword [0x5bc2e0], 1
jle 0x4103c8
mov eax, dword [esp + 0x44]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x38]
mov eax, dword [eax]
mov dword [esp + 8], str.Stratum_from_pool__d_detected_new_block_at_height__d
mov dword [esp + 0xc], eax
mov dword [esp + 4], 0xa00
mov dword [esp], ebx
call sym._snprintf
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
mov dword [esp], 2
call sym.__applog
call sym._restart_threads
mov ebx, 1
jmp 0x40fd05
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x410425
mov esi, dword [eax + 8]
test esi, esi
je 0x410425
mov eax, dword [edi + 0x44]
add esi, dword [eax + 0x14]
sub dword [esp + 0x20], 1
test ebp, ebp
je 0x410430
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x410413
mov eax, edx
mov dword [esp + 0x2c], esi
mov edx, ecx
jmp 0x40fb38
mov dword [ebp + 8], 0
mov dword [esp + 0x2c], esi
xor ebp, ebp
jmp 0x40fb5a
xor esi, esi
sub dword [esp + 0x20], 1
test ebp, ebp
jne 0x4103fe
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x2c], esi
jmp 0x40fbaa
xor eax, eax
jmp 0x40fb31
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x410425
mov esi, dword [ecx + 8]
add eax, esi
test esi, esi
mov esi, 0
cmovne esi, eax
jmp 0x4103f5
test edx, edx
jne 0x40fab0
test ebp, ebp
je 0x410483
mov dword [ebp + 8], 0
cmp dword [esp + 0x3c], 1
jbe 0x410724
mov edx, dword [esp + 0x30]
shl dword [esp + 0x34], 1
test edx, edx
jne 0x40fa94
mov ebx, edi
xor ebp, ebp
mov eax, dword [ebx + 0x44]
mov dword [eax + 0x10], ebp
mov eax, dword [ebx + 0x44]
mov ebp, dword [esp + 0x30]
sub ebp, dword [eax + 0x14]
mov eax, dword [ebp + 0x64]
mov dword [0x732914], ebp
lea esi, [ebp + 0x44]
mov dword [esp + 0x30], eax
mov eax, dword [ebp + 0x48]
test eax, eax
je 0x410bef
mov ecx, dword [ebp + 0x44]
cmp esi, dword [ecx + 0x10]
je 0x410bd6
mov edx, dword [ecx + 0x14]
mov edi, dword [ebp + 0x4c]
mov ebx, ebp
mov dword [eax + edx + 8], edi
mov edx, dword [ebp + 0x4c]
test edx, edx
je 0x4104f9
mov eax, dword [ebx + 0x44]
mov ecx, dword [ebp + 0x48]
mov eax, dword [eax + 0x14]
mov dword [edx + eax + 4], ecx
mov ecx, dword [ebx + 0x44]
mov eax, dword [ecx + 4]
sub eax, 1
and eax, dword [ebp + 0x60]
lea edx, [eax + eax*2]
mov eax, dword [ecx]
lea eax, [eax + edx*4]
sub dword [eax + 4], 1
cmp esi, dword [eax]
je 0x410bcc
mov eax, dword [ebp + 0x50]
test eax, eax
je 0x410526
mov edx, dword [ebp + 0x54]
mov dword [eax + 0x10], edx
mov eax, dword [ebp + 0x54]
test eax, eax
je 0x410533
mov edx, dword [ebp + 0x50]
mov dword [eax + 0xc], edx
mov eax, dword [ebx + 0x44]
sub dword [eax + 0xc], 1
mov dword [esp], ebp
call sym._free
jmp 0x40fd4a
mov ecx, dword [esp + 0x34]
jmp 0x40faf8
xor eax, eax
mov ecx, 1
jmp 0x40faf8
mov eax, edx
xor ecx, ecx
jmp 0x40faf8
call dword [sym.imp.msvcrt.dll__errno]
mov dword [esp + 0x18], 0x17d4
mov dword [esp + 0x14], str.test_work_current
mov dword [esp + 0x10], str.cgminer.c
mov eax, dword [eax]
mov dword [esp + 8], 0x5c1a98
mov dword [esp + 0xc], eax
lea ebx, [esp + 0xd0]
mov dword [esp + 4], 0xa00
mov dword [esp], ebx
call sym._snprintf
mov dword [esp + 8], 1
mov dword [esp + 4], ebx
mov dword [esp], 0
call sym.__applog
mov dword [esp + 4], 1
mov dword [esp], 1
call sym.___quit
call dword [sym.imp.msvcrt.dll__errno]
mov dword [esp + 0x18], 0x17d4
mov dword [esp + 0x14], str.test_work_current
mov dword [esp + 0x10], str.cgminer.c
mov eax, dword [eax]
mov dword [esp + 8], 0x5c1a64
mov dword [esp + 0xc], eax
jmp 0x41059a
call dword [sym.imp.msvcrt.dll__errno]
mov dword [esp + 0x18], 0x17df
mov dword [esp + 0x14], str.test_work_current
mov dword [esp + 0x10], str.cgminer.c
mov eax, dword [eax]
mov dword [esp + 8], 0x5c1afc
mov dword [esp + 0xc], eax
jmp 0x41059a
call dword [sym.imp.msvcrt.dll__errno]
mov dword [esp + 0x18], 0x17df
mov dword [esp + 0x14], str.test_work_current
mov dword [esp + 0x10], str.cgminer.c
mov eax, dword [eax]
mov dword [esp + 8], 0x5c1ac8
mov dword [esp + 0xc], eax
jmp 0x41059a
call dword [sym.imp.msvcrt.dll__errno]
mov dword [esp + 0x18], 0x1798
mov dword [esp + 0x14], str.block_exists
jmp 0x4105f3
cmp byte [0x745368], 0
mov eax, dword [esp + 0x38]
jne 0x4107cb
cmp byte [eax + 0x398], 0
jne 0x4103c8
cmp byte [0x745ef7], 0
jne 0x4106c5
cmp byte [0x732fa0], 0
jne 0x4106c5
cmp dword [0x5bc2e0], 1
jle 0x4103c8
mov eax, dword [esp + 0x44]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x38]
mov eax, dword [eax]
mov dword [esp + 8], str.New_block_detected_on_network_from_pool__d_at_height__d
mov dword [esp + 0xc], eax
jmp 0x4103a0
lea ebx, [esp + 0xd0]
call dword [sym.imp.msvcrt.dll__errno]
mov dword [esp + 0x18], 0x17b3
mov dword [esp + 0x14], str.block_exists
mov dword [esp + 0x10], str.cgminer.c
mov eax, dword [eax]
mov dword [esp + 8], 0x5c1afc
mov dword [esp + 4], 0xa00
mov dword [esp + 0xc], eax
jmp 0x4105a9
mov ebx, edi
jmp 0x4104a2
mov esi, dword [esp + 0x20]
mov eax, 0xfeedbeef
mov edi, 0x9e3779b9
mov edx, 0x9e3779b9
lea ebx, [esp + 0x8c]
jmp 0x40f7b7
cmp byte [0x745ef7], 0
jne 0x410769
cmp byte [0x732fa0], 0
jne 0x410769
cmp dword [0x5bc2e0], 1
jle 0x40fd00
mov eax, dword [esp + 0x38]
mov ecx, str.GBT
lea esi, [esp + 0xd0]
mov edx, dword [eax]
mov eax, dword [esp + 0x50]
cmp byte [eax + 0x1ac], 0
mov eax, 0x5c1082
mov dword [esp + 0x10], edx
mov dword [esp + 8], str._sLONGPOLL_from_pool__d_requested_work_restart
mov dword [esp + 4], 0xa00
mov dword [esp], esi
cmovne eax, ecx
mov dword [esp + 0xc], eax
call sym._snprintf
mov dword [esp + 8], 0
mov dword [esp + 4], esi
mov dword [esp], 2
call sym.__applog
jmp 0x40fd00
cmp byte [eax + 0x398], 0
jne 0x4103c8
cmp byte [0x745ef7], 0
jne 0x4107f7
cmp byte [0x732fa0], 0
jne 0x4107f7
cmp dword [0x5bc2e0], 1
jle 0x4103c8
mov eax, dword [esp + 0x44]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x38]
mov eax, dword [eax]
mov dword [esp + 8], str.New_block_detected_on_network_before_pool_notification_from_pool__d_at_height__d
mov dword [esp + 0xc], eax
jmp 0x4103a0
cmp byte [0x745ef7], 0
jne 0x410835
cmp byte [0x732fa0], 0
jne 0x410835
cmp dword [0x5bc2e0], 1
jle 0x4103c8
mov eax, dword [esp + 0x38]
mov edi, dword [esp + 0x44]
mov ecx, str.GBT
mov edx, dword [eax]
mov eax, dword [esp + 0x50]
cmp byte [eax + 0x1ac], 0
mov eax, 0x5c1082
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], edx
mov dword [esp + 8], str._sLONGPOLL_from_pool__d_detected_new_block_at_height__d
mov dword [esp + 4], 0xa00
mov dword [esp], ebx
cmovne eax, ecx
mov dword [esp + 0xc], eax
call sym._snprintf
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
mov dword [esp], 2
call sym.__applog
jmp 0x4103c8
mov eax, 0x7456b9
jmp 0x410216
fadd dword [0x5c8d10]
jmp 0x410036
mov dword [esp + 4], 1
mov eax, dword [eax + 4]
lea eax, [eax + eax*2]
shl eax, 3
mov dword [esp], eax
call sym._calloc
test eax, eax
mov edi, eax
je 0x410d06
mov esi, dword [esp + 0x40]
mov eax, dword [esi + 0x44]
mov edx, dword [eax + 4]
mov ebx, dword [eax + 0xc]
mov ecx, dword [eax + 8]
lea edx, [edx + edx - 1]
test edx, ebx
setne dl
add ecx, 1
shr ebx, cl
movzx edx, dl
add edx, ebx
mov dword [eax + 0x18], edx
mov eax, dword [esi + 0x44]
mov dword [eax + 0x1c], 0
mov edx, dword [esi + 0x44]
mov eax, dword [edx + 4]
test eax, eax
je 0x4109a5
xor ebp, ebp
mov dword [esp + 0x2c], ebp
mov ebp, esi
mov ebx, dword [esp + 0x2c]
lea ecx, [ebx + ebx*2]
mov ebx, dword [edx]
lea ecx, [ebx + ecx*4]
mov ebx, dword [ecx]
test ebx, ebx
je 0x410994
mov dword [esp + 0x20], edi
jmp 0x410938
mov eax, dword [ebp + 0x44]
mov ebx, esi
mov eax, dword [eax + 4]
lea eax, [eax + eax - 1]
and eax, dword [ebx + 0x1c]
mov edi, dword [esp + 0x20]
mov esi, dword [ebx + 0x10]
lea eax, [eax + eax*2]
lea ecx, [edi + eax*4]
mov eax, dword [ecx + 4]
add eax, 1
mov dword [ecx + 4], eax
mov edx, dword [ebp + 0x44]
cmp eax, dword [edx + 0x18]
jbe 0x41096f
add dword [edx + 0x1c], 1
xor edx, edx
mov edi, dword [ebp + 0x44]
mov eax, dword [ecx + 4]
div dword [edi + 0x18]
mov dword [ecx + 8], eax
mov dword [ebx + 0xc], 0
mov eax, dword [ecx]
mov dword [ebx + 0x10], eax
mov eax, dword [ecx]
test eax, eax
je 0x410984
mov dword [eax + 0xc], ebx
test esi, esi
mov dword [ecx], ebx
jne 0x410930
mov edx, dword [ebp + 0x44]
mov edi, dword [esp + 0x20]
mov eax, dword [edx + 4]
add dword [esp + 0x2c], 1
mov ebx, dword [esp + 0x2c]
cmp ebx, eax
jb 0x410916
mov eax, dword [edx]
mov dword [esp], eax
call sym._free
mov ebx, dword [esp + 0x40]
mov eax, dword [ebx + 0x44]
shl dword [eax + 4], 1
mov eax, dword [ebx + 0x44]
add dword [eax + 8], 1
mov eax, dword [ebx + 0x44]
mov dword [eax], edi
mov eax, dword [ebx + 0x44]
mov edx, dword [eax + 0xc]
shr edx, 1
cmp dword [eax + 0x1c], edx
jbe 0x4109dc
mov ebx, dword [eax + 0x20]
add ebx, 1
mov dword [esp + 0x34], ebx
mov ebx, dword [esp + 0x34]
mov dword [eax + 0x20], ebx
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 0x44]
cmp dword [eax + 0x20], 1
jbe 0x40ffea
mov dword [eax + 0x24], 1
jmp 0x40ffea
call dword [sym.imp.msvcrt.dll__errno]
mov dword [esp + 0x18], 0x1769
mov dword [esp + 0x14], str.set_curblock
mov dword [esp + 0x10], str.cgminer.c
mov eax, dword [eax]
mov dword [esp + 8], 0x5c1ac8
mov dword [esp + 4], 0xa00
mov dword [esp + 0xc], eax
jmp 0x4105a9
call dword [sym.imp.msvcrt.dll__errno]
mov dword [esp + 0x18], 0x1769
mov dword [esp + 0x14], str.set_curblock
jmp 0x410701
xor ebx, ebx
jmp 0x40fd05
call dword [sym.imp.msvcrt.dll__errno]
mov dword [esp + 0x18], 0x1764
mov dword [esp + 0x14], str.set_curblock
mov dword [esp + 0x10], str.cgminer.c
mov eax, dword [eax]
mov dword [esp + 8], 0x5c1a64
mov dword [esp + 4], 0xa00
mov dword [esp + 0xc], eax
jmp 0x4105a9
call dword [sym.imp.msvcrt.dll__errno]
mov dword [esp + 0x18], 0x1764
mov dword [esp + 0x14], str.set_curblock
mov dword [esp + 0x10], str.cgminer.c
mov eax, dword [eax]
mov dword [esp + 8], 0x5c1a98
mov dword [esp + 4], 0xa00
mov dword [esp + 0xc], eax
jmp 0x4105a9
mov ebp, dword [esp + 0x20]
mov ecx, dword [esp + 0x40]
mov edi, 0xfeedbeef
mov edx, 0x9e3779b9
mov eax, 0x9e3779b9
jmp 0x40fe60
mov dword [eax + 0x4c], 0
mov dword [eax + 0x48], 0
mov edi, eax
mov dword [esp], 0x2c
call sym._malloc
mov edx, eax
test edx, edx
mov dword [edi + 0x44], edx
je 0x410d06
mov edi, edx
mov eax, ebx
mov ecx, 0xb
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x40]
lea ebp, [edi + 0x44]
mov eax, dword [edi + 0x44]
mov dword [eax + 0x10], ebp
mov eax, dword [edi + 0x44]
mov dword [eax + 4], 0x20
mov eax, dword [edi + 0x44]
mov dword [eax + 8], 5
mov eax, dword [edi + 0x44]
mov dword [eax + 0x14], 0x44
mov edi, dword [edi + 0x44]
mov dword [esp], 0x180
call sym._malloc
mov edx, dword [esp + 0x40]
mov dword [edi], eax
mov eax, dword [edx + 0x44]
mov dword [eax + 0x28], 0xa0111fe1
mov eax, dword [edx + 0x44]
mov eax, dword [eax]
test eax, eax
je 0x410d06
lea edi, [eax + 4]
mov dword [eax], 0
mov dword [eax + 0x17c], 0
and edi, 0xfffffffc
sub eax, edi
mov ecx, eax
mov eax, ebx
mov ebx, edx
add ecx, 0x180
shr ecx, 2
rep stosd dword es:[edi], eax
mov dword [0x732914], edx
jmp 0x40ff8d
lea ebx, [esp + 0xd0]
mov dword [esp + 8], str.block_exists_OOM
mov dword [esp + 4], 0xa00
mov dword [esp], ebx
call sym._snprintf
jmp 0x4105b1
mov edx, dword [ebp + 0x54]
mov dword [eax], edx
jmp 0x410519
add eax, dword [ecx + 0x14]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp + 0x48]
test eax, eax
je 0x410d12
mov ecx, dword [ebp + 0x44]
jmp 0x4104d9
mov edx, dword [ebp + 0x4c]
test edx, edx
je 0x410d23
mov ecx, dword [ebp + 0x44]
cmp esi, dword [ecx + 0x10]
je 0x410bd6
mov dword [0x732914], edx
mov ebx, edx
jmp 0x4104e8
fld dword [0x5c8d04]
fxch st(1)
fucomi st(1)
jae 0x410cd1
fstp st(1)
fnstcw word [esp + 0x56]
movzx eax, word [esp + 0x56]
mov ah, 0xc
mov word [esp + 0x54], ax
fld st(0)
fldcw word [esp + 0x54]
fistp qword [esp + 0x48]
fldcw word [esp + 0x56]
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
mov dword [esp + 4], 0
mov ecx, 0x732918
fstp qword [esp + 0x20]
mov dword [esp], 8
call sym._suffix_string
cmp byte [0x745ef7], 0
fld qword [esp + 0x20]
fstp qword [0x5bb958]
jne 0x410c8d
cmp byte [0x732fa0], 0
jne 0x410c8d
cmp dword [0x5bc2e0], 1
jle 0x410068
lea ebx, [esp + 0xd0]
mov dword [esp + 0xc], 0x732918
mov dword [esp + 8], str.Network_diff_set_to__s
mov dword [esp + 4], 0xa00
mov dword [esp], ebx
call sym._snprintf
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
mov dword [esp], 2
call sym.__applog
jmp 0x41006f
fnstcw word [esp + 0x56]
movzx eax, word [esp + 0x56]
fsubr st(1), st(0)
fxch st(1)
mov ah, 0xc
mov word [esp + 0x54], ax
fldcw word [esp + 0x54]
fistp qword [esp + 0x48]
fldcw word [esp + 0x56]
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
lea ecx, [edx - 0x80000000]
mov edx, ecx
jmp 0x410c47
mov dword [esp], 0xffffffff
call sym._exit
mov edx, dword [ebp + 0x4c]
jmp 0x410c02
xor ebp, ebp
mov edx, eax
jmp 0x40fb5a
mov eax, dword [ebp + 0x44]
xor ebx, ebx
mov eax, dword [eax]
mov dword [esp], eax
call sym._free
mov eax, dword [ebp + 0x44]
mov dword [esp], eax
call sym._free
mov dword [0x732914], 0
jmp 0x41053a