Function at 0x40e640
Capabilities:
Contain obfuscated stackstrings
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, eax
push edi
push esi
push ebx
sub esp, 0x18c
cmp byte [eax + 0x234], 0
mov byte [esp + 0x5f], dl
je 0x40eb72
cmp byte [0x4a0b61], 0
jne 0x40ebea
movzx edx, byte [ebp + 0x1d4]
lea eax, [esp + 0x80]
mov dword [esp + 0x34], eax
mov edi, edx
mov edx, edi
test dl, dl
jne 0x40e922
call fcn.00459600
test eax, eax
mov dword [esp + 0x38], eax
je 0x40f151
cmp byte [ebp + 0x43], 0
lea ebx, [esp + 0x6c]
jne 0x40e888
cmp byte [0x4a01c3], 0
jne 0x40e888
cmp byte [0x4a0b61], 0
je 0x40e6e4
cmp byte [0x4a2d14], 0
jne 0x40e950
cmp byte [0x4a0b60], 0
jne 0x40e950
cmp dword [0x47f720], 3
jg 0x40e950
lea ebx, [esp + 0x6c]
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 1
mov dword [esp + 0xc], str._id_:_0___method_:__getblocktemplate____params_:___capabilities_:___coinbasetxn____workid____coinbase_append____n
mov eax, dword [ebp + 0x88]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x84]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.004199e0
test eax, eax
mov dword [esp + 0x3c], eax
je 0x40ead0
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], 0x480ecb
mov dword [esp], eax
call fcn.0045a090
test eax, eax
je 0x40e7f5
mov dword [esp + 4], str.mutable
mov dword [esp], eax
call fcn.0045a090
mov dword [esp], eax
mov esi, eax
call fcn.0045a2f0
test eax, eax
jle 0x40e7f5
xor edi, edi
mov dword [esp + 0x58], ebx
mov ebx, edi
mov edi, eax
mov byte [esp + 0x40], 0
mov byte [esp + 0x53], 0
mov dword [esp + 0x54], ebp
jmp 0x40e797
add ebx, 1
cmp edi, ebx
je 0x40e7e2
mov dword [esp + 4], ebx
mov dword [esp], esi
call fcn.0045a310
test eax, eax
je 0x40e790
cmp dword [eax], 2
jne 0x40e790
mov dword [esp], eax
call fcn.0045a490
mov dword [esp + 8], 0xf
mov dword [esp + 4], str.coinbase_append
mov dword [esp], eax
mov ebp, eax
call fcn.0047a348
test eax, eax
jne 0x40eb42
add ebx, 1
cmp edi, ebx
mov byte [esp + 0x53], 1
jne 0x40e797
movzx edx, byte [esp + 0x40]
and dl, byte [esp + 0x53]
mov ebp, dword [esp + 0x54]
mov ebx, dword [esp + 0x58]
mov edi, edx
mov edx, dword [esp + 0x3c]
mov eax, dword [edx + 4]
cmp eax, 0xffffffff
je 0x40e813
sub eax, 1
test eax, eax
mov dword [edx + 4], eax
jne 0x40e813
mov dword [esp], edx
call fcn.0045a6d0
mov eax, edi
test al, al
je 0x40ead0
mov byte [ebp + 0x234], 1
mov dword [ebp + 0x80], str._id_:_0___method_:__getblocktemplate____params_:___capabilities_:___coinbasetxn____workid____coinbase_append____n
mov byte [ebp + 0x43], 0
cmp byte [0x4a0b61], 0
je 0x40e888
cmp byte [0x4a2d14], 0
jne 0x40e851
cmp byte [0x4a0b60], 0
je 0x40ebd8
mov edi, dword [esp + 0x34]
mov esi, str.GBT_coinbase__append_support_found__switching_to_GBT_protocol
mov ecx, 0xf
rep movsd dword es:[edi], dword [esi]
movzx edx, byte [0x481512]
movzx eax, word [esi]
mov byte [edi + 2], dl
mov word [edi], ax
lea eax, [esp + 0x80]
mov dword [esp + 4], eax
mov dword [esp], 4
call fcn.0042ace0
lea esi, [esp + 0x70]
mov dword [esp], esi
call fcn.004199a0
mov dword [esp + 0x18], ebx
lea ebx, [esp + 0x78]
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 1
mov eax, dword [ebp + 0x80]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x88]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x84]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.004199e0
mov dword [esp], ebx
mov edi, eax
call fcn.004199a0
mov eax, dword [ebp + 0x188]
test eax, eax
je 0x40e903
cmp byte [0x4a01c3], 0
je 0x40e9b0
test edi, edi
jne 0x40ec47
mov dword [esp], ebp
call fcn.0041ba40
test al, al
je 0x40ee04
mov byte [ebp + 0x1d4], 1
lea ebx, [ebp + 0x1d6]
mov eax, ebp
mov edx, ebx
call fcn.00408360
test al, al
je 0x40f070
movzx eax, byte [ebp + 0x1d5]
add esp, 0x18c
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [esp + 0x80]
mov dword [esp + 4], eax
mov dword [esp], 4
mov dword [esp + 0x80], 0x626f7250
mov dword [esp + 0x84], 0x20676e69
mov dword [esp + 0x88], 0x20726f66
mov dword [esp + 0x8c], 0x20544247
mov dword [esp + 0x90], 0x70707573
mov dword [esp + 0x94], 0x74726f
call fcn.0042ace0
jmp 0x40e6e4
cmp byte [0x4a2d14], 0
jne 0x40e9cb
cmp byte [0x4a0b60], 0
jne 0x40e9cb
cmp dword [0x47f720], 2
jle 0x40ea12
mov dword [esp + 0x10], eax
mov eax, dword [ebp]
lea edx, [esp + 0x80]
mov dword [esp], edx
mov dword [esp + 8], str.Testing_pool__d_stratum__s
mov dword [esp + 4], 0x100
mov dword [esp + 0xc], eax
call fcn.00471bd0
lea eax, [esp + 0x80]
mov dword [esp + 4], eax
mov dword [esp], 3
call fcn.0042ace0
mov eax, dword [ebp + 0x188]
mov dword [esp + 4], eax
mov dword [esp], ebp
call fcn.0041acd0
test al, al
je 0x40e903
mov dword [esp], ebp
call fcn.0041ba40
test al, al
je 0x40e903
cmp byte [0x4a2d14], 0
jne 0x40ea51
cmp byte [0x4a0b60], 0
jne 0x40ea51
cmp dword [0x47f720], 1
jle 0x40eaa2
mov eax, dword [ebp + 0x188]
lea edx, [esp + 0x80]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x84]
mov dword [esp + 0x10], eax
mov eax, dword [ebp]
mov dword [esp + 8], str.Switching_pool__d__s_to__s
mov dword [esp + 4], 0x100
mov dword [esp], edx
mov dword [esp + 0xc], eax
call fcn.00471bd0
lea eax, [esp + 0x80]
mov dword [esp + 4], eax
mov dword [esp], 2
call fcn.0042ace0
mov ecx, dword [ebp + 0x84]
test ecx, ecx
je 0x40f095
mov eax, dword [esp + 0x38]
mov byte [ebp + 0x1d4], 1
mov dword [esp], eax
call fcn.004595f8
movzx edi, byte [ebp + 0x1d4]
jmp 0x40e67e
movzx eax, byte [ebp + 0x234]
mov byte [ebp + 0x43], 0
test al, al
jne 0x40e832
cmp byte [0x4a0b61], 0
je 0x40e888
cmp byte [0x4a2d14], 0
jne 0x40eb06
cmp byte [0x4a0b60], 0
je 0x40ebc6
mov edi, dword [esp + 0x34]
mov esi, str.No_GBT_coinbase__append_support_found__using_getwork_protocol
mov ecx, 0xf
rep movsd dword es:[edi], dword [esi]
lea edx, [esp + 0x80]
movzx eax, word [esi]
mov word [edi], ax
movzx eax, byte [0x481552]
mov byte [edi + 2], al
mov dword [esp + 4], edx
mov dword [esp], 4
call fcn.0042ace0
jmp 0x40e888
mov dword [esp + 8], 0xf
mov dword [esp + 4], str.submit_coinbase
mov dword [esp], ebp
call fcn.0047a348
movzx edx, byte [esp + 0x40]
test eax, eax
mov eax, 1
cmove edx, eax
mov byte [esp + 0x40], dl
jmp 0x40e790
cmp byte [0x4a2d14], 0
jne 0x40eb88
cmp byte [0x4a0b60], 0
je 0x40eedd
mov eax, dword [ebp + 0x84]
lea ebx, [esp + 0x80]
mov dword [esp + 8], str.Testing_pool__s
mov dword [esp + 4], 0x100
mov dword [esp], ebx
mov dword [esp + 0xc], eax
call fcn.00471bd0
mov dword [esp + 4], ebx
mov dword [esp], 3
call fcn.0042ace0
jmp 0x40e66a
cmp dword [0x47f720], 3
jle 0x40e888
jmp 0x40eb06
cmp dword [0x47f720], 3
jle 0x40e888
jmp 0x40e851
cmp byte [0x4a2d14], 0
jne 0x40ec09
cmp byte [0x4a0b60], 0
jne 0x40ec09
cmp dword [0x47f720], 3
jle 0x40e66a
mov eax, dword [ebp + 0x84]
lea ebx, [esp + 0x80]
mov dword [esp + 8], str.Retrieving_block_template_from_pool__s
mov dword [esp + 4], 0x100
mov dword [esp], ebx
mov dword [esp + 0xc], eax
call fcn.00471bd0
mov dword [esp + 4], ebx
mov dword [esp], 4
call fcn.0042ace0
jmp 0x40e66a
call fcn.0040e4d0
mov ecx, edi
mov dword [esp + 0x3c], eax
mov edx, eax
mov eax, ebp
call fcn.00408050
test al, al
je 0x40eeef
cmp byte [0x4a0b61], 0
je 0x40ecca
cmp byte [0x4a2d14], 0
jne 0x40ec82
cmp byte [0x4a0b60], 0
je 0x40f0ae
mov eax, dword [ebp + 0x84]
lea edx, [esp + 0x80]
mov dword [esp + 0x10], eax
mov eax, dword [ebp]
mov dword [esp], edx
mov dword [esp + 8], str.Successfully_retrieved_and_deciphered_work_from_pool__u__s
mov dword [esp + 4], 0x100
mov dword [esp + 0xc], eax
mov dword [esp + 0x30], edx
call fcn.00471bd0
mov edx, dword [esp + 0x30]
mov dword [esp], 4
mov dword [esp + 4], edx
call fcn.0042ace0
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x3c]
mov dword [eax + 0x208], ebp
mov eax, dword [esp + 0x6c]
mov dword [edx + 0x218], eax
mov eax, edx
add eax, 0x280
mov dword [esp], eax
mov dword [esp + 4], esi
call fcn.0041ac40
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], ebx
add eax, 0x288
mov dword [esp], eax
call fcn.0041ac40
mov eax, dword [esp + 0x3c]
xor edx, edx
mov byte [eax + 0x2a8], 0x54
call fcn.00402970
cmp byte [0x4a0b61], 0
je 0x40edc0
cmp byte [0x4a2d14], 0
jne 0x40ed3f
cmp byte [0x4a0b60], 0
je 0x40f0d5
lea eax, [esp + 0x80]
mov dword [esp + 4], eax
mov dword [esp], 4
mov dword [esp + 0x80], 0x68737550
mov dword [esp + 0x84], 0x20676e69
mov dword [esp + 0x88], 0x6c6f6f70
mov dword [esp + 0x8c], 0x74736574
mov dword [esp + 0x90], 0x726f7720
mov dword [esp + 0x94], 0x6f74206b
mov dword [esp + 0x98], 0x73616220
mov dword [esp + 0x9c], 0x6f702065
mov word [esp + 0xa0], 0x6c6f
mov byte [esp + 0xa2], 0
call fcn.0042ace0
mov eax, dword [esp + 0x3c]
mov ebx, 1
mov edx, dword [0x4a2c44]
mov dword [esp + 4], eax
mov eax, dword [0x49f064]
lea eax, [eax + eax*8]
lea eax, [edx + eax*8]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call fcn.00419720
lea eax, [ebp + 0x68]
add dword [ebp + 0x54], 1
add dword [0x4a2c3c], 1
mov dword [esp], eax
call fcn.004199a0
jmp 0x40ef5c
cmp byte [0x4a0b61], 0
je 0x40ee68
cmp byte [0x4a2d14], 0
jne 0x40ee28
cmp byte [0x4a0b60], 0
jne 0x40ee28
cmp dword [0x47f720], 3
jle 0x40ee68
mov eax, dword [ebp + 0x84]
lea ebx, [esp + 0x80]
mov dword [esp + 0x10], eax
mov eax, dword [ebp]
mov dword [esp + 8], str.FAILED_to_retrieve_work_from_pool__u__s
mov dword [esp + 4], 0x100
mov dword [esp], ebx
mov dword [esp + 0xc], eax
call fcn.00471bd0
mov dword [esp + 4], ebx
mov dword [esp], 4
call fcn.0042ace0
xor ebx, ebx
cmp byte [esp + 0x5f], 0
jne 0x40eec4
cmp byte [0x4a2d14], 0
jne 0x40ee8c
cmp byte [0x4a0b60], 0
jne 0x40ee8c
mov eax, dword [0x47f720]
test eax, eax
jle 0x40eec4
mov eax, dword [ebp]
lea ebx, [esp + 0x80]
mov dword [esp], ebx
mov dword [esp + 8], str.Pool__u_slow_down_or_URL_or_credentials_invalid
mov dword [esp + 4], 0x100
mov dword [esp + 0xc], eax
call fcn.00471bd0
mov dword [esp + 4], ebx
xor ebx, ebx
mov dword [esp], 1
call fcn.0042ace0
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.004595f8
add esp, 0x18c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
cmp dword [0x47f720], 2
jle 0x40e66a
jmp 0x40eb88
cmp byte [0x4a0b61], 0
je 0x40ef4e
cmp byte [0x4a2d14], 0
jne 0x40ef0e
cmp byte [0x4a0b60], 0
je 0x40f0c0
mov eax, dword [ebp + 0x84]
lea ebx, [esp + 0x80]
mov dword [esp + 0x10], eax
mov eax, dword [ebp]
mov dword [esp + 8], str.Successfully_retrieved_but_FAILED_to_decipher_work_from_pool__u__s
mov dword [esp + 4], 0x100
mov dword [esp], ebx
mov dword [esp + 0xc], eax
call fcn.00471bd0
mov dword [esp + 4], ebx
mov dword [esp], 4
call fcn.0042ace0
mov eax, dword [esp + 0x3c]
xor ebx, ebx
mov dword [esp], eax
call fcn.00403150
mov eax, dword [edi + 4]
cmp eax, 0xffffffff
je 0x40ef76
sub eax, 1
test eax, eax
mov dword [edi + 4], eax
jne 0x40ef76
mov dword [esp], edi
call fcn.0045a6d0
mov eax, dword [ebp + 0x50]
test eax, eax
jne 0x40eec4
mov esi, dword [ebp + 0x4c]
test esi, esi
je 0x40efa3
mov dword [esp + 4], 0x48160b
mov dword [esp], esi
call fcn.0047a3a0
test eax, eax
je 0x40f1df
mov dword [ebp + 0x50], esi
cmp byte [ebp + 0x4a], 0
jne 0x40eec4
lea eax, [ebp + 0xb0]
mov byte [ebp + 0x4a], 1
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0x4107f0
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.00463ff0
test eax, eax
je 0x40eec4
lea eax, [esp + 0x80]
mov dword [esp + 0x80], 0x6c696146
mov dword [esp + 0x84], 0x74206465
mov dword [esp + 0x88], 0x7263206f
mov dword [esp + 0x8c], 0x65746165
mov dword [esp + 0x90], 0x6f6f7020
mov dword [esp + 0x94], 0x6f6c206c
mov dword [esp + 0x98], 0x6f70676e
mov dword [esp + 0x9c], 0x74206c6c
mov dword [esp + 0xa0], 0x61657268
mov word [esp + 0xa4], 0x64
mov dword [esp + 4], eax
mov dword [esp], 0
call fcn.0042ace0
mov dword [esp], 1
call fcn.00404a60
nop
lea esi, [esi]
mov dword [esp], ebp
call fcn.0041ba40
test al, al
jne 0x40f0e7
mov dword [esp + 4], ebx
mov dword [esp], ebp
call fcn.00407260
add esp, 0x18c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebp + 0x188]
mov dword [esp], eax
call fcn.00471b68
mov dword [ebp + 0x84], eax
jmp 0x40eab0
cmp dword [0x47f720], 3
jle 0x40ecca
jmp 0x40ec82
cmp dword [0x47f720], 3
jle 0x40ef4e
lea esi, [esi]
jmp 0x40ef0e
cmp dword [0x47f720], 3
jle 0x40edc0
jmp 0x40ed3f
mov dword [esp], ebp
call fcn.0041dc10
test al, al
je 0x40f07c
lea eax, [ebp + 0x218]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0x40d870
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.00463ff0
test eax, eax
jne 0x40f2c8
lea eax, [ebp + 0x220]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0x413860
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.00463ff0
test eax, eax
jne 0x40f25c
mov eax, 1
jmp 0x40e940
cmp byte [0x4a2d14], 0
jne 0x40f16d
cmp byte [0x4a0b60], 0
jne 0x40f16d
mov ebx, dword [0x47f720]
test ebx, ebx
js 0x40f1d8
lea eax, [esp + 0x80]
mov dword [esp + 4], eax
mov dword [esp], 0
mov dword [esp + 0x80], 0x4c525543
mov dword [esp + 0x84], 0x696e6920
mov dword [esp + 0x88], 0x6c616974
mov dword [esp + 0x8c], 0x74617369
mov dword [esp + 0x90], 0x206e6f69
mov dword [esp + 0x94], 0x6c696166
mov word [esp + 0x98], 0x6465
mov byte [esp + 0x9a], 0
call fcn.0042ace0
xor eax, eax
jmp 0x40e940
mov edi, dword [ebp + 0x84]
xor eax, eax
cmp byte [esi], 0x2f
mov dword [esp], edi
sete al
add esi, eax
call fcn.0047a2e0
mov edx, eax
movzx eax, byte [edi + eax - 1]
mov dword [esp], esi
mov dword [esp + 0x30], edx
mov byte [esp + 0x3c], al
call fcn.0047a2e0
mov edx, dword [esp + 0x30]
lea eax, [edx + eax + 2]
mov dword [esp], eax
call fcn.0047a2e8
test eax, eax
mov dword [ebp + 0x50], eax
je 0x40f31e
cmp byte [esp + 0x3c], 0x2f
mov ecx, 0x4800b9
mov edx, 0x4813f7
mov dword [esp + 0x10], esi
cmove edx, ecx
mov dword [esp + 0xc], edx
mov dword [esp + 8], edi
mov dword [esp + 4], 0x48160f
mov dword [esp], eax
call fcn.004017e0
jmp 0x40efa3
lea eax, [esp + 0x80]
mov dword [esp + 0x80], 0x6c696146
mov dword [esp + 0x84], 0x74206465
mov dword [esp + 0x88], 0x7263206f
mov dword [esp + 0x8c], 0x65746165
mov dword [esp + 0x90], 0x72747320
mov dword [esp + 0x94], 0x6d757461
mov dword [esp + 0x98], 0x68747220
mov dword [esp + 0x9c], 0x64616572
mov byte [esp + 0xa0], 0
jmp 0x40f04f
lea eax, [esp + 0x80]
mov dword [esp + 0x80], 0x6c696146
mov dword [esp + 0x84], 0x74206465
mov dword [esp + 0x88], 0x7263206f
mov dword [esp + 0x8c], 0x65746165
mov dword [esp + 0x90], 0x72747320
mov dword [esp + 0x94], 0x6d757461
mov dword [esp + 0x98], 0x68747320
jmp 0x40f2b0
cmp byte [0x4a2d14], 0
jne 0x40f33d
cmp byte [0x4a0b60], 0
jne 0x40f33d
mov eax, dword [0x47f720]
test eax, eax
js 0x40f1d8
lea eax, [esp + 0x80]
mov dword [esp + 4], eax
mov dword [esp], 0
mov dword [esp + 0x80], 0x6c6c614d
mov dword [esp + 0x84], 0x6620636f
mov dword [esp + 0x88], 0x756c6961
mov dword [esp + 0x8c], 0x69206572
mov dword [esp + 0x90], 0x6f70206e
mov dword [esp + 0x94], 0x615f6c6f
mov dword [esp + 0x98], 0x76697463
mov word [esp + 0x9c], 0x65
call fcn.0042ace0
xor eax, eax
jmp 0x40e940