Function at 0x40d560
Capabilities:
Contain obfuscated stackstrings
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
mov edi, str.000000000000000000000000000000000000
push esi
push ebx
sub esp, 0x1cc
mov dword [esp + 0x68], eax
add eax, 8
mov dword [esp + 4], 0x12
mov dword [esp], eax
call fcn.00419220
mov ecx, 0x24
mov dword [esp + 0x5c], eax
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40c435
mov dword [esp], 0x4a034c
call fcn.00463af0
test eax, eax
jne 0x40d53e
mov edx, dword [0x4a0350]
test edx, edx
mov dword [esp + 0x50], edx
je 0x40c3f3
mov esi, dword [esp + 0x5c]
mov dword [esp], esi
call fcn.0047a2e0
cmp eax, 0xb
mov edi, eax
mov ecx, eax
jbe 0x40d2d7
mov eax, esi
mov ebx, 0xfeedbeef
mov esi, 0x9e3779b9
mov edx, 0x9e3779b9
mov dword [esp + 0x54], edi
lea esi, [esi]
movsx ebp, byte [eax + 5]
movsx ecx, byte [eax + 6]
shl ebp, 8
shl ecx, 0x10
add ecx, ebp
movsx ebp, byte [eax + 4]
add ebp, ecx
movsx ecx, byte [eax + 7]
shl ecx, 0x18
add ecx, ebp
movsx ebp, byte [eax + 9]
add esi, ecx
movsx ecx, byte [eax + 0xa]
shl ebp, 8
shl ecx, 0x10
add ecx, ebp
movsx ebp, byte [eax + 8]
add ebp, ecx
movsx ecx, byte [eax + 0xb]
shl ecx, 0x18
add ecx, ebp
movsx ebp, byte [eax + 1]
add ecx, ebx
movsx ebx, byte [eax + 2]
shl ebp, 8
shl ebx, 0x10
add ebx, ebp
movsx ebp, byte [eax]
add ebp, ebx
movsx ebx, byte [eax + 3]
shl ebx, 0x18
add ebx, ebp
sub ebx, ecx
sub ebx, esi
sub esi, ecx
add edx, ebx
mov ebx, ecx
shr ebx, 0xd
xor edx, ebx
mov ebx, edx
sub esi, edx
shl ebx, 8
xor ebx, esi
mov esi, ecx
sub esi, edx
mov ecx, ebx
sub esi, ebx
shr ecx, 0xd
xor ecx, esi
sub edx, ebx
mov esi, ecx
sub edx, ecx
shr esi, 0xc
sub edi, 0xc
xor esi, edx
mov edx, ebx
sub edx, ecx
mov ebx, esi
sub edx, esi
add eax, 0xc
shl ebx, 0x10
xor ebx, edx
mov edx, ecx
sub edx, esi
mov ecx, ebx
sub edx, ebx
sub esi, ebx
shr ecx, 5
xor ecx, edx
mov edx, ecx
sub esi, ecx
shr edx, 3
sub ebx, ecx
xor edx, esi
mov esi, edx
sub ebx, edx
shl esi, 0xa
sub ecx, edx
xor esi, ebx
mov ebx, esi
sub ecx, esi
shr ebx, 0xf
xor ebx, ecx
cmp edi, 0xb
ja 0x40c210
mov ecx, edi
mov edi, dword [esp + 0x54]
add ebx, edi
cmp ecx, 0xb
ja case.0x40c2f7.0
jmp dword [ecx*4 + 0x481268]
movsx ecx, byte [eax + 0xa]
shl ecx, 0x18
add ebx, ecx
movsx ecx, byte [eax + 9]
shl ecx, 0x10
add ebx, ecx
movsx ecx, byte [eax + 8]
shl ecx, 8
add ebx, ecx
movsx ecx, byte [eax + 7]
shl ecx, 0x18
add esi, ecx
movsx ecx, byte [eax + 6]
shl ecx, 0x10
add esi, ecx
movsx ecx, byte [eax + 5]
shl ecx, 8
add esi, ecx
movsx ecx, byte [eax + 4]
add esi, ecx
movsx ecx, byte [eax + 3]
shl ecx, 0x18
add edx, ecx
movsx ecx, byte [eax + 2]
shl ecx, 0x10
add edx, ecx
movsx ecx, byte [eax + 1]
shl ecx, 8
add edx, ecx
movsx eax, byte [eax]
add edx, eax
sub edx, esi
mov eax, ebx
mov ebp, dword [esp + 0x50]
sub edx, ebx
sub esi, ebx
shr eax, 0xd
xor edx, eax
mov eax, edx
sub esi, edx
shl eax, 8
sub ebx, edx
xor eax, esi
mov esi, eax
sub ebx, eax
shr esi, 0xd
sub edx, eax
xor esi, ebx
mov ecx, esi
sub edx, esi
shr ecx, 0xc
sub eax, esi
xor ecx, edx
mov edx, ecx
sub eax, ecx
shl edx, 0x10
sub esi, ecx
xor edx, eax
mov eax, edx
sub esi, edx
shr eax, 5
sub ecx, edx
xor eax, esi
mov ebx, eax
sub ecx, eax
shr ebx, 3
sub edx, eax
xor ebx, ecx
sub edx, ebx
mov ecx, ebx
sub eax, ebx
mov ebx, dword [ebp + 0x28]
shl ecx, 0xa
xor ecx, edx
sub eax, ecx
shr ecx, 0xf
xor ecx, eax
mov eax, dword [ebx + 4]
sub eax, 1
and ecx, eax
lea eax, [ecx + ecx*2]
mov ecx, dword [ebx]
lea eax, [ecx + eax*4]
mov esi, dword [eax]
test esi, esi
je 0x40c8e5
lea esi, [esi]
sub esi, dword [ebx + 0x14]
test esi, esi
je 0x40c3f5
cmp edi, dword [esi + 0x40]
je 0x40c453
mov esi, dword [esi + 0x38]
test esi, esi
jne 0x40c3e0
xor esi, esi
mov dword [esp], 0x4a034c
call fcn.00462840
test eax, eax
jne 0x40d45d
call fcn.0045fb60
test esi, esi
je 0x40c474
mov eax, dword [esp + 0x68]
cmp byte [eax + 0x21c], 0
jne 0x40c6a5
mov ebx, 1
mov eax, dword [esp + 0x68]
mov byte [eax + 0x21c], 0
jmp 0x40c43a
mov ebx, 1
mov esi, dword [esp + 0x5c]
mov dword [esp], esi
call fcn.0047a350
add esp, 0x1cc
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x5c]
mov dword [esp + 8], edi
mov dword [esp + 4], eax
mov eax, dword [esi + 0x3c]
mov dword [esp], eax
call fcn.0047a368
test eax, eax
jne 0x40c3ec
jmp 0x40c3f5
mov dword [esp + 4], 1
mov dword [esp], 0x4c
call fcn.0047a380
test eax, eax
mov dword [esp + 0x64], eax
je 0x40d4da
mov esi, dword [esp + 0x5c]
mov eax, dword [esp + 0x64]
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.0047a360
mov eax, dword [0x4a2d90]
mov edx, dword [esp + 0x64]
mov dword [edx + 0x48], eax
add eax, 1
mov dword [esp], 0x4a034c
mov dword [0x4a2d90], eax
call fcn.00465930
test eax, eax
jne 0x40d54f
mov esi, dword [0x4a0350]
test esi, esi
je 0x40d2fc
mov eax, dword [esi + 0x28]
cmp dword [eax + 0xc], 6
jbe 0x40c8ec
lea ecx, [esi + 0x28]
mov ebp, 1
mov dword [esp + 0x6c], ecx
mov edi, esi
xor edx, edx
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0x58], 0
mov esi, edx
mov dword [esp + 0x6c], 0
add dword [esp + 0x58], 1
test ebp, ebp
je 0x40c69c
mov edx, dword [ebx + 8]
test edx, edx
je 0x40c670
mov eax, dword [edi + 0x28]
mov ecx, dword [eax + 0x14]
mov eax, 1
add edx, ecx
jne 0x40c544
jmp 0x40c554
add edx, ecx
je 0x40c554
cmp eax, ebp
je 0x40c554
mov edx, dword [edx + 8]
add eax, 1
test edx, edx
jne 0x40c540
xor edx, edx
test eax, eax
mov dword [esp + 0x54], ebx
mov ebx, edx
mov dword [esp + 0x50], ebp
mov dword [esp + 0x24], ebp
je 0x40c5b8
test ebx, ebx
je 0x40c576
mov edx, dword [esp + 0x50]
test edx, edx
jne 0x40c601
mov ebp, dword [esp + 0x54]
mov edx, dword [ebp + 8]
test edx, edx
je 0x40c695
mov ecx, dword [edi + 0x28]
add edx, dword [ecx + 0x14]
sub eax, 1
test esi, esi
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x54], edx
je 0x40c63e
mov ebp, dword [edi + 0x28]
mov edx, ecx
sub edx, dword [ebp + 0x14]
mov dword [esi + 8], edx
mov edx, dword [edi + 0x28]
sub esi, dword [edx + 0x14]
test eax, eax
mov dword [ecx + 4], esi
mov esi, ecx
jne 0x40c566
test ebx, ebx
jne 0x40c650
test ebx, ebx
mov ebp, dword [esp + 0x24]
jne 0x40c511
cmp dword [esp + 0x58], 1
mov edx, esi
mov dword [esi + 8], 0
jbe 0x40c74b
mov ecx, dword [esp + 0x6c]
add ebp, ebp
test ecx, ecx
jne 0x40c4f9
mov esi, edi
xor edx, edx
mov dword [8], 0
jmp 0x40c74d
mov edx, dword [edi + 0x28]
mov ecx, dword [esp + 0x54]
mov edx, dword [edx + 0x14]
mov dword [esp + 0x60], edx
neg edx
mov ebp, dword [ecx + edx + 0x48]
sub ebp, dword [ebx + edx + 0x48]
test ebp, ebp
jle 0x40c680
mov ebp, dword [ebx + 8]
xor edx, edx
mov ecx, dword [esp + 0x60]
add ecx, ebp
test ebp, ebp
cmovne edx, ecx
sub dword [esp + 0x50], 1
test esi, esi
mov ecx, ebx
mov ebx, edx
jne 0x40c59e
mov dword [esp + 0x6c], ecx
xor esi, esi
jmp 0x40c5af
mov ebp, dword [esp + 0x50]
test ebp, ebp
je 0x40c5c0
mov edx, dword [ebx + 8]
test edx, edx
je 0x40c67c
mov ecx, dword [edi + 0x28]
add edx, dword [ecx + 0x14]
jmp 0x40c62d
xor edx, edx
mov eax, 1
jmp 0x40c554
xor edx, edx
jmp 0x40c62d
mov ebp, dword [ecx + 8]
xor edx, edx
mov ecx, dword [esp + 0x60]
add ecx, ebp
test ebp, ebp
cmovne edx, ecx
jmp 0x40c58b
xor edx, edx
jmp 0x40c58b
mov edx, ebx
xor eax, eax
jmp 0x40c554
mov eax, dword [0x4a01f8]
mov esi, dword [esp + 0x68]
add eax, 1
mov dword [esi + 0x248], eax
mov ebx, dword [esi + 0x208]
mov dword [0x4a01f8], eax
call fcn.00409d40
cmp ebx, eax
jne 0x40c423
cmp byte [0x4a2d14], 0
jne 0x40c6ea
cmp byte [0x4a0b60], 0
jne 0x40c6ea
cmp dword [0x47f720], 1
jle 0x40c741
mov edi, dword [esp + 0x68]
mov ecx, 0x4800b9
lea ebx, [esp + 0xc0]
mov eax, dword [edi + 0x208]
cmp byte [edi + 0x23c], 0
mov edx, dword [eax]
mov eax, str.GBT
cmove eax, ecx
mov dword [esp + 0xc], eax
mov dword [esp + 8], str._sLONGPOLL_from_pool__d_requested_work_restart
mov dword [esp + 0x10], edx
mov dword [esp + 4], 0x100
mov dword [esp], ebx
call fcn.00471bd0
mov dword [esp + 4], ebx
mov dword [esp], 2
call fcn.0042ace0
call fcn.0040bfc0
jmp 0x40c423
mov esi, edi
mov eax, dword [esi + 0x28]
mov ebx, dword [esp + 0x6c]
mov dword [eax + 0x10], edx
mov eax, dword [esi + 0x28]
sub ebx, dword [eax + 0x14]
mov eax, dword [ebx + 0x2c]
mov esi, dword [ebx + 0x48]
mov dword [0x4a0350], ebx
test eax, eax
mov dword [esp + 0x58], esi
je 0x40d429
mov edx, dword [ebx + 0x28]
lea edi, [ebx + 0x28]
mov esi, dword [edx + 0x14]
mov ecx, dword [edx + 0x10]
sub ecx, esi
cmp ebx, ecx
je 0x40d41c
test eax, eax
je 0x40d3ee
mov edx, dword [ebx + 0x28]
mov esi, ebx
mov ecx, dword [ebx + 0x30]
mov edx, dword [edx + 0x14]
mov dword [eax + edx + 8], ecx
mov eax, dword [ebx + 0x30]
test eax, eax
je 0x40c7b6
mov edx, dword [esi + 0x28]
mov ecx, dword [ebx + 0x2c]
mov edx, dword [edx + 0x14]
mov dword [eax + edx + 4], ecx
mov edx, dword [esi + 0x28]
mov eax, dword [edx + 4]
mov edx, dword [edx]
sub eax, 1
and eax, dword [ebx + 0x44]
lea eax, [eax + eax*2]
shl eax, 2
add edx, eax
sub dword [edx + 4], 1
mov edx, dword [esi + 0x28]
add eax, dword [edx]
cmp edi, dword [eax]
je 0x40d3e4
mov eax, dword [ebx + 0x34]
test eax, eax
je 0x40c7ea
mov edx, dword [ebx + 0x38]
mov dword [eax + 0x10], edx
mov eax, dword [ebx + 0x38]
test eax, eax
je 0x40c7f7
mov edx, dword [ebx + 0x34]
mov dword [eax + 0xc], edx
mov eax, dword [esi + 0x28]
sub dword [eax + 0xc], 1
mov dword [esp], ebx
call fcn.0047a350
mov eax, dword [esp + 0x64]
mov dword [eax + 0x30], 0
mov edx, eax
mov dword [eax + 0x3c], eax
mov ecx, dword [edx]
add edx, 4
lea eax, [ecx - 0x1010101]
not ecx
and eax, ecx
and eax, 0x80808080
je 0x40c816
mov ecx, eax
shr ecx, 0x10
test eax, 0x8080
cmove eax, ecx
lea ecx, [edx + 2]
cmove edx, ecx
add al, al
mov eax, dword [esp + 0x64]
sbb edx, 3
sub edx, dword [esp + 0x64]
test esi, esi
mov dword [eax + 0x40], edx
jne 0x40c93d
mov eax, dword [esp + 0x64]
mov dword [eax + 0x2c], 0
mov dword [esp], 0x2c
mov dword [0x4a0350], eax
call fcn.0047a2e8
mov ebx, eax
mov eax, dword [esp + 0x64]
test ebx, ebx
mov dword [eax + 0x28], ebx
je 0x40d462
xor esi, esi
mov ecx, 0xb
mov eax, esi
mov edi, ebx
rep stosd dword es:[edi], eax
mov dword [ebx + 4], 0x20
mov dword [ebx + 8], 5
mov edx, dword [esp + 0x64]
mov dword [ebx + 0x14], 0x28
add edx, 0x28
mov dword [ebx + 0x10], edx
mov dword [esp], 0x180
mov dword [esp + 0x54], edx
call fcn.0047a2e8
test eax, eax
mov dword [ebx], eax
je 0x40d462
mov edi, eax
mov ecx, 0x60
mov eax, esi
rep stosd dword es:[edi], eax
mov dword [ebx + 0x28], 0xa0111fe1
mov esi, dword [esp + 0x64]
jmp 0x40c96a
xor esi, esi
jmp 0x40c3e3
mov eax, dword [esp + 0x64]
mov dword [eax + 0x30], 0
mov edx, eax
mov dword [eax + 0x3c], eax
mov ecx, dword [edx]
add edx, 4
lea eax, [ecx - 0x1010101]
not ecx
and eax, ecx
and eax, 0x80808080
je 0x40c8fc
mov ecx, eax
shr ecx, 0x10
test eax, 0x8080
cmove eax, ecx
lea ecx, [edx + 2]
cmove edx, ecx
add al, al
mov eax, dword [esp + 0x64]
sbb edx, 3
sub edx, dword [esp + 0x64]
mov dword [esp + 0x58], 0
mov dword [eax + 0x40], edx
mov eax, dword [esi + 0x28]
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x64]
mov eax, dword [eax + 0x10]
mov dword [eax + 8], edx
mov edx, dword [esi + 0x28]
mov eax, dword [edx + 0x10]
sub eax, dword [edx + 0x14]
mov dword [ecx + 0x2c], eax
mov eax, dword [esi + 0x28]
add ecx, 0x28
mov dword [esp + 0x54], ecx
mov dword [eax + 0x10], ecx
mov ebx, dword [esi + 0x28]
add dword [ebx + 0xc], 1
mov eax, dword [esi + 0x28]
mov ebx, dword [esp + 0x64]
mov dword [ebx + 0x28], eax
mov ecx, ebx
mov dword [ebx + 0x44], 0xfeedbeef
mov edx, dword [ecx]
add ecx, 4
lea eax, [edx - 0x1010101]
not edx
and eax, edx
and eax, 0x80808080
je 0x40c981
mov edx, eax
shr edx, 0x10
test eax, 0x8080
cmove eax, edx
lea edx, [ecx + 2]
cmovne edx, ecx
add al, al
mov eax, dword [esp + 0x64]
sbb edx, 3
sub edx, eax
cmp edx, 0xb
mov dword [esp + 0x50], edx
jbe 0x40d3fd
mov ebp, 0x9e3779b9
mov edx, 0x9e3779b9
mov dword [esp + 0x60], esi
mov esi, ebp
mov ebp, dword [esp + 0x50]
mov dword [esp + 0x6c], 0xfeedbeef
mov ebx, 0xfeedbeef
movsx edi, byte [eax + 5]
movsx ecx, byte [eax + 6]
shl edi, 8
shl ecx, 0x10
add edi, ecx
movsx ecx, byte [eax + 4]
add edi, ecx
movsx ecx, byte [eax + 7]
shl ecx, 0x18
add ecx, edi
movsx edi, byte [eax + 9]
add esi, ecx
movsx ecx, byte [eax + 0xa]
shl edi, 8
shl ecx, 0x10
add edi, ecx
movsx ecx, byte [eax + 8]
add edi, ecx
movsx ecx, byte [eax + 0xb]
shl ecx, 0x18
add ecx, edi
movsx edi, byte [eax + 1]
add ebx, ecx
movsx ecx, byte [eax + 2]
shl edi, 8
shl ecx, 0x10
add edi, ecx
movsx ecx, byte [eax]
add edi, ecx
movsx ecx, byte [eax + 3]
shl ecx, 0x18
add ecx, edi
sub ecx, ebx
sub ecx, esi
sub esi, ebx
add edx, ecx
mov ecx, ebx
shr ecx, 0xd
xor edx, ecx
mov ecx, edx
sub esi, edx
shl ecx, 8
sub ebx, edx
xor ecx, esi
mov edi, ecx
sub ebx, ecx
shr edi, 0xd
xor edi, ebx
sub edx, ecx
mov esi, edi
sub edx, edi
shr esi, 0xc
sub ecx, edi
xor esi, edx
sub ebp, 0xc
mov ebx, esi
sub ecx, esi
shl ebx, 0x10
sub edi, esi
xor ebx, ecx
add eax, 0xc
mov ecx, ebx
sub edi, ebx
shr ecx, 5
sub esi, ebx
xor ecx, edi
mov edx, ecx
sub esi, ecx
shr edx, 3
sub ebx, ecx
xor edx, esi
mov esi, edx
sub ebx, edx
shl esi, 0xa
sub ecx, edx
xor esi, ebx
mov ebx, esi
sub ecx, esi
shr ebx, 0xf
xor ebx, ecx
mov ecx, dword [esp + 0x64]
cmp ebp, 0xb
mov dword [ecx + 0x44], ebx
ja 0x40c9e3
mov dword [esp + 0x50], ebp
mov ebp, esi
mov esi, dword [esp + 0x60]
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x60], eax
mov eax, dword [ecx]
add ecx, 4
lea edi, [eax - 0x1010101]
not eax
and edi, eax
and edi, 0x80808080
je 0x40cad0
mov dword [esp + 0x6c], ebx
mov ebx, edi
mov eax, dword [esp + 0x60]
shr ebx, 0x10
test edi, 0x8080
cmovne ebx, edi
mov dword [esp + 0x2c], ebx
lea ebx, [ecx + 2]
cmove ecx, ebx
movzx ebx, byte [esp + 0x2c]
add bl, bl
sbb ecx, 3
sub ecx, dword [esp + 0x64]
mov ebx, dword [esp + 0x6c]
mov edi, dword [esp + 0x64]
add ebx, ecx
cmp dword [esp + 0x50], 0xb
mov dword [edi + 0x44], ebx
ja case.0x40cb2d.0
mov ecx, dword [esp + 0x50]
jmp dword [ecx*4 + 0x481298]
movsx ecx, byte [eax + 0xa]
mov edi, dword [esp + 0x64]
shl ecx, 0x18
add ebx, ecx
mov dword [edi + 0x44], ebx
movsx ecx, byte [eax + 9]
shl ecx, 0x10
add ebx, ecx
mov ecx, dword [esp + 0x64]
mov dword [ecx + 0x44], ebx
movsx ecx, byte [eax + 8]
mov edi, dword [esp + 0x64]
shl ecx, 8
add ebx, ecx
mov dword [edi + 0x44], ebx
movsx ecx, byte [eax + 7]
shl ecx, 0x18
add ebp, ecx
movsx ecx, byte [eax + 6]
shl ecx, 0x10
add ebp, ecx
movsx ecx, byte [eax + 5]
shl ecx, 8
add ebp, ecx
movsx ecx, byte [eax + 4]
add ebp, ecx
movsx ecx, byte [eax + 3]
shl ecx, 0x18
add edx, ecx
movsx ecx, byte [eax + 2]
shl ecx, 0x10
add edx, ecx
movsx ecx, byte [eax + 1]
shl ecx, 8
add edx, ecx
movsx eax, byte [eax]
add edx, eax
sub edx, ebp
mov eax, ebx
sub edx, ebx
mov ecx, ebp
shr eax, 0xd
sub ecx, ebx
xor edx, eax
mov eax, edx
sub ecx, edx
shl eax, 8
sub ebx, edx
xor eax, ecx
mov edi, eax
sub ebx, eax
shr edi, 0xd
sub edx, eax
xor edi, ebx
mov ecx, edi
sub edx, edi
shr ecx, 0xc
sub eax, edi
xor ecx, edx
mov edx, ecx
sub eax, ecx
shl edx, 0x10
xor edx, eax
mov eax, edi
sub eax, ecx
mov ebx, edx
sub eax, edx
sub ecx, edx
shr ebx, 5
xor ebx, eax
mov eax, ebx
sub ecx, ebx
shr eax, 3
sub edx, ebx
xor eax, ecx
mov ecx, eax
sub edx, eax
shl ecx, 0xa
xor ecx, edx
mov edx, ecx
shr edx, 0xf
sub ebx, eax
mov eax, dword [esp + 0x64]
sub ebx, ecx
xor edx, ebx
mov dword [eax + 0x44], edx
mov ecx, dword [esi + 0x28]
mov eax, dword [ecx + 4]
sub eax, 1
and eax, edx
mov edx, dword [ecx]
lea eax, [eax + eax*2]
mov ecx, dword [esp + 0x64]
shl eax, 2
add edx, eax
add dword [edx + 4], 1
mov edx, dword [esi + 0x28]
mov edx, dword [edx]
mov edx, dword [edx + eax]
mov dword [ecx + 0x34], 0
mov dword [ecx + 0x38], edx
mov edx, dword [esi + 0x28]
mov edx, dword [edx]
add edx, eax
mov ecx, dword [edx]
test ecx, ecx
je 0x40cc5d
mov ebx, dword [esp + 0x54]
mov dword [ecx + 0xc], ebx
mov edx, dword [esi + 0x28]
mov edx, dword [edx]
add edx, eax
mov ebp, dword [esp + 0x54]
mov dword [edx], ebp
mov edx, dword [esi + 0x28]
add eax, dword [edx]
mov edx, dword [eax + 8]
lea edx, [edx + edx*4 + 5]
add edx, edx
cmp dword [eax + 4], edx
jb 0x40cdd3
mov eax, dword [esp + 0x64]
mov ebx, dword [eax + 0x28]
cmp dword [ebx + 0x24], 1
je 0x40cdd3
mov eax, dword [ebx + 4]
lea esi, [eax + eax*2]
shl esi, 3
mov dword [esp], esi
call fcn.0047a2e8
test eax, eax
mov edi, eax
je 0x40d462
mov dword [esp + 8], esi
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.0047a388
mov eax, dword [ebx + 4]
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebx + 8]
lea eax, [eax + eax - 1]
test eax, edx
setne al
add ecx, 1
shr edx, cl
movzx eax, al
add eax, edx
mov edx, dword [esp + 0x64]
mov dword [ebx + 0x18], eax
mov eax, dword [edx + 0x28]
mov dword [eax + 0x1c], 0
mov eax, dword [edx + 0x28]
mov edx, dword [eax + 4]
test edx, edx
je 0x40cd87
xor ebp, ebp
mov dword [esp + 0x54], ebp
mov ebp, dword [esp + 0x64]
mov ebx, dword [esp + 0x54]
mov esi, dword [eax]
lea ecx, [ebx + ebx*2]
lea ecx, [esi + ecx*4]
mov ebx, dword [ecx]
test ebx, ebx
je 0x40cd78
mov dword [esp + 0x6c], edi
jmp 0x40cd1f
mov eax, dword [ebp + 0x28]
mov ebx, esi
mov edx, dword [eax + 4]
lea edx, [edx + edx - 1]
mov edi, dword [esp + 0x6c]
and edx, dword [ebx + 0x1c]
mov esi, dword [ebx + 0x10]
lea edx, [edx + edx*2]
lea ecx, [edi + edx*4]
mov edx, dword [ecx + 4]
add edx, 1
mov dword [ecx + 4], edx
cmp edx, dword [eax + 0x18]
jbe 0x40cd53
add dword [eax + 0x1c], 1
xor edx, edx
mov eax, dword [ecx + 4]
mov edi, dword [ebp + 0x28]
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 0x40cd68
mov dword [eax + 0xc], ebx
test esi, esi
mov dword [ecx], ebx
jne 0x40cd17
mov eax, dword [ebp + 0x28]
mov edi, dword [esp + 0x6c]
mov edx, dword [eax + 4]
add dword [esp + 0x54], 1
cmp dword [esp + 0x54], edx
jb 0x40ccff
mov eax, dword [eax]
mov dword [esp], eax
call fcn.0047a350
mov ebp, dword [esp + 0x64]
xor ecx, ecx
mov eax, dword [ebp + 0x28]
shl dword [eax + 4], 1
mov eax, dword [ebp + 0x28]
add dword [eax + 8], 1
mov eax, dword [ebp + 0x28]
mov dword [eax], edi
mov eax, dword [ebp + 0x28]
mov edx, dword [eax + 0xc]
shr edx, 1
cmp dword [eax + 0x1c], edx
jbe 0x40cdbc
mov ecx, dword [eax + 0x20]
add ecx, 1
mov edx, dword [esp + 0x64]
mov dword [eax + 0x20], ecx
mov eax, dword [edx + 0x28]
cmp dword [eax + 0x20], 1
jbe 0x40cdd3
mov dword [eax + 0x24], 1
mov eax, dword [esp + 0x68]
mov ebx, dword [eax + 0x48]
bswap ebx
mov eax, ebx
and ebx, 0xffffff
shr eax, 0x18
lea ecx, [eax - 3]
mov edx, ecx
and edx, 3
shl edx, 3
test edx, edx
jne 0x40cdfb
lea ecx, [eax - 4]
mov dl, 0x20
xor eax, eax
mov dword [esp + eax + 0x80], 0
add eax, 4
cmp eax, 0x20
jb 0x40cdfd
mov eax, ecx
shr eax, 2
cmp eax, 6
ja 0x40cf0b
mov ecx, 0x20
mov esi, ebx
sub ecx, edx
shr esi, cl
mov ecx, edx
shl ebx, cl
mov dword [esp + eax*4 + 0x84], esi
mov dword [esp + eax*4 + 0x80], ebx
mov eax, dword [esp + 0x9c]
mov edx, dword [esp + 0x98]
cmp byte [0x4a2cb9], 0
bswap eax
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x94]
bswap edx
mov dword [esp + 0xa4], edx
bswap eax
mov dword [esp + 0xa8], eax
je 0x40ce82
mov edx, dword [esp + 0xa2]
mov eax, dword [esp + 0xa6]
mov edi, edx
mov esi, eax
bswap edi
mov ebx, edi
bswap esi
or ebx, esi
je 0x40d543
fld qword [0x47e008]
mov dword [esp + 8], esi
fstp qword [esp + 0x30]
mov dword [esp + 0xc], edi
mov dword [esp], 0
mov dword [esp + 4], 0xffff0000
call fcn.004718b0
mov ecx, 0x4a03c0
mov dword [esp], 0
call fcn.00401810
test edi, edi
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], edi
fild qword [esp + 0x70]
fld qword [esp + 0x30]
js 0x40d2ef
fxch st(1)
fstp qword [esp + 0x78]
fld qword [esp + 0x78]
fdivr dword [0x484bf8]
fst qword [0x47e008]
fxch st(1)
fucompi st(1)
fstp st(0)
jp 0x40d475
jne 0x40d475
mov dword [esp], 0x4a034c
call fcn.00462840
test eax, eax
jne 0x40d45d
call fcn.0045fb60
mov ebx, dword [esp + 0x58]
test ebx, ebx
je 0x40cf87
cmp byte [0x4a0b61], 0
je 0x40cf87
cmp byte [0x4a2d14], 0
jne 0x40cf50
cmp byte [0x4a0b60], 0
jne 0x40cf50
cmp dword [0x47f720], 3
jle 0x40cf87
mov esi, dword [esp + 0x58]
lea ebx, [esp + 0xc0]
mov dword [esp + 8], str.Deleted_block__d_from_database
mov dword [esp + 4], 0x100
mov dword [esp], ebx
mov dword [esp + 0xc], esi
call fcn.00471bd0
mov dword [esp + 4], ebx
mov dword [esp], 4
call fcn.0042ace0
mov esi, dword [esp + 0x5c]
mov dword [esp], 0x4a0360
mov dword [esp + 4], esi
call fcn.0047a360
mov eax, dword [esp + 0x68]
mov edi, dword [eax + 0xc]
mov edx, dword [eax + 0x10]
mov esi, dword [eax + 0x1c]
mov ebx, dword [eax + 0x18]
mov ecx, dword [eax + 0x14]
mov ebp, dword [eax + 4]
mov dword [esp + 0x28], edi
mov dword [esp + 0x90], edi
mov edi, dword [eax + 8]
mov eax, dword [eax]
mov dword [esp + 0x8c], edx
mov dword [esp + 0xb0], edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x80], esi
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], ecx
mov dword [esp + 0x94], edi
mov eax, dword [eax + 0x20]
mov dword [esp], 0x4a2c34
mov dword [esp + 0x98], ebp
mov dword [esp + 0xa4], esi
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb4], edx
mov dword [esp + 0xb8], edi
mov dword [esp + 0xbc], ebp
call fcn.00460dd0
test eax, eax
jne 0x40d4d5
mov dword [esp], 0x4a2c38
call fcn.00465930
test eax, eax
jne 0x40d54f
mov dword [esp], 0x4a2cd8
call fcn.004199a0
mov eax, dword [0x4a0388]
mov dword [esp], eax
call fcn.0047a350
lea eax, [esp + 0x82]
mov dword [esp + 4], 8
mov dword [esp], eax
call fcn.00419220
mov dword [0x4a0388], eax
mov eax, dword [0x4a2cc8]
mov dword [esp], eax
call fcn.0047a350
lea eax, [esp + 0xa0]
mov dword [esp + 4], 0x20
mov dword [esp], eax
call fcn.00419220
mov dword [esp + 4], 0x4a2cd8
mov dword [esp], 0x4a03a0
mov dword [0x4a2cc8], eax
call fcn.00402ce0
mov dword [esp], 0x4a2c38
call fcn.00462840
test eax, eax
jne 0x40d45d
call fcn.0045fb60
mov dword [esp], 0x4a2c34
call fcn.004603e0
test eax, eax
jne 0x40d4d0
call fcn.0045fb60
cmp byte [0x4a2d14], 0
jne 0x40d11c
cmp byte [0x4a0b60], 0
jne 0x40d11c
cmp dword [0x47f720], 2
jle 0x40d15c
mov eax, dword [0x4a0388]
lea ebx, [esp + 0xc0]
mov dword [esp + 0x10], 0x4a03c0
mov dword [esp + 8], str.New_block:__s..._diff__s
mov dword [esp + 4], 0x100
mov dword [esp + 0xc], eax
mov dword [esp], ebx
call fcn.00471bd0
mov dword [esp + 4], ebx
mov dword [esp], 3
call fcn.0042ace0
cmp dword [0x4a2d90], 1
je 0x40d46e
mov eax, dword [0x4a01f8]
mov ecx, dword [esp + 0x68]
add eax, 1
cmp byte [ecx + 0x221], 0
mov dword [0x4a01f8], eax
mov dword [ecx + 0x248], eax
jne 0x40d204
cmp byte [ecx + 0x21c], 0
je 0x40d210
cmp byte [0x4a2d14], 0
jne 0x40d1ad
cmp byte [0x4a0b60], 0
jne 0x40d1ad
cmp dword [0x47f720], 1
jle 0x40d204
mov ebx, dword [esp + 0x68]
mov ecx, 0x4800b9
mov eax, dword [ebx + 0x208]
cmp byte [ebx + 0x23c], 0
lea ebx, [esp + 0xc0]
mov edx, dword [eax]
mov eax, str.GBT
cmove eax, ecx
mov dword [esp + 0xc], eax
mov dword [esp + 8], str._sLONGPOLL_from_pool__d_detected_new_block
mov dword [esp + 0x10], edx
mov dword [esp + 4], 0x100
mov dword [esp], ebx
call fcn.00471bd0
mov dword [esp + 4], ebx
mov dword [esp], 2
call fcn.0042ace0
call fcn.0040bfc0
xor ebx, ebx
jmp 0x40c428
cmp byte [0x4a2d2b], 0
je 0x40d352
cmp byte [0x4a2d14], 0
jne 0x40d238
cmp byte [0x4a0b60], 0
jne 0x40d238
cmp dword [0x47f720], 1
jle 0x40d204
lea eax, [esp + 0xc0]
mov dword [esp + 4], eax
mov dword [esp], 2
mov dword [esp + 0xc0], 0x2077654e
mov dword [esp + 0xc4], 0x636f6c62
mov dword [esp + 0xc8], 0x6564206b
mov dword [esp + 0xcc], 0x74636574
mov dword [esp + 0xd0], 0x6f206465
mov dword [esp + 0xd4], 0x656e206e
mov dword [esp + 0xd8], 0x726f7774
mov dword [esp + 0xdc], 0x6562206b
mov dword [esp + 0xe0], 0x65726f66
mov dword [esp + 0xe4], 0x6e6f6c20
mov dword [esp + 0xe8], 0x6c6f7067
mov word [esp + 0xec], 0x6c
call fcn.0042ace0
jmp 0x40d204
mov eax, dword [esp + 0x5c]
mov ebx, 0xfeedbeef
mov esi, 0x9e3779b9
mov edx, 0x9e3779b9
jmp 0x40c2f0
fxch st(1)
fadd dword [0x484bfc]
jmp 0x40cee5
mov eax, dword [esp + 0x64]
mov dword [eax + 0x30], 0
mov edx, eax
mov dword [eax + 0x3c], eax
mov ecx, dword [edx]
add edx, 4
lea eax, [ecx - 0x1010101]
not ecx
and eax, ecx
and eax, 0x80808080
je 0x40d30c
mov ecx, eax
shr ecx, 0x10
test eax, 0x8080
cmove eax, ecx
lea ecx, [edx + 2]
cmove edx, ecx
add al, al
mov eax, dword [esp + 0x64]
sbb edx, 3
sub edx, dword [esp + 0x64]
mov dword [esp + 0x58], 0
mov dword [eax + 0x40], edx
jmp 0x40c857
cmp byte [0x4a2d14], 0
jne 0x40d371
cmp byte [0x4a0b60], 0
jne 0x40d371
cmp dword [0x47f720], 1
jle 0x40d204
lea eax, [esp + 0xc0]
mov dword [esp + 4], eax
mov dword [esp], 2
mov dword [esp + 0xc0], 0x2077654e
mov dword [esp + 0xc4], 0x636f6c62
mov dword [esp + 0xc8], 0x6564206b
mov dword [esp + 0xcc], 0x74636574
mov dword [esp + 0xd0], 0x6f206465
mov dword [esp + 0xd4], 0x656e206e
mov dword [esp + 0xd8], 0x726f7774
mov word [esp + 0xdc], 0x6b
call fcn.0042ace0
jmp 0x40d204
mov edx, dword [ebx + 0x38]
mov dword [eax], edx
jmp 0x40c7dd
mov eax, dword [ebx + 0x30]
mov dword [0x4a0350], eax
mov esi, eax
jmp 0x40c7a5
mov ecx, dword [esp + 0x50]
mov ebp, 0x9e3779b9
mov edx, 0x9e3779b9
mov eax, dword [esp + 0x64]
mov dword [esp + 0x6c], 0xfeedbeef
jmp 0x40cb15
add eax, esi
mov dword [edx + 0x10], eax
mov eax, dword [ebx + 0x2c]
jmp 0x40c78b
mov edi, dword [ebx + 0x30]
test edi, edi
jne 0x40c775
mov eax, dword [ebx + 0x28]
xor esi, esi
mov eax, dword [eax]
mov dword [esp], eax
call fcn.0047a350
mov eax, dword [ebx + 0x28]
mov dword [esp], eax
call fcn.0047a350
mov dword [0x4a0350], 0
jmp 0x40c7fe
call fcn.0047aa32
mov dword [esp], 0xffffffff
call fcn.0047a2f8
xor ebx, ebx
jmp 0x40c43a
cmp byte [0x4a2d14], 0
jne 0x40d494
cmp byte [0x4a0b60], 0
jne 0x40d494
cmp dword [0x47f720], 1
jle 0x40cf0b
lea ebx, [esp + 0xc0]
mov dword [esp + 0xc], 0x4a03c0
mov dword [esp + 8], str.Network_diff_set_to__s
mov dword [esp + 4], 0x100
mov dword [esp], ebx
call fcn.00471bd0
mov dword [esp + 4], ebx
mov dword [esp], 2
call fcn.0042ace0
jmp 0x40cf0b
call fcn.0047aa68
call fcn.0047aad4
lea eax, [esp + 0xc0]
mov dword [esp + 4], eax
mov dword [esp], 0
mov dword [esp + 0xc0], 0x74736574
mov dword [esp + 0xc4], 0x726f775f
mov dword [esp + 0xc8], 0x75635f6b
mov dword [esp + 0xcc], 0x6e657272
mov dword [esp + 0xd0], 0x4f4f2074
mov word [esp + 0xd4], 0x4d
call fcn.0042ace0
mov dword [esp], 1
call fcn.00404a60
call fcn.0047a9fc
mov esi, 1
xor edi, edi
jmp 0x40ce94
call fcn.0047aa9e
lea esi, [esi]
lea edi, [edi]
cmp byte [eax + 0x21e], 0
je 0x40d570
mov eax, 1
ret
jmp 0x40c180