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

Disassembly:
sub esp, 0x1bc
mov eax, dword [esp + 0x1c4]
mov dword [esp + 0x1b0], esi
mov esi, dword [esp + 0x1c0]
mov dword [esp + 0x1ac], ebx
mov dword [esp + 0x1b4], edi
mov dword [esp + 0x1b8], ebp
mov ebx, dword [eax]
mov dword [esp], esi
lea eax, [ebx + 0x1c]
mov dword [esp + 4], eax
call fcn.004666d0
sub esp, 8
test eax, eax
je 0x457ab0
cmp byte [0x4a2d14], 0
jne 0x457a4c
cmp byte [0x4a0b60], 0
jne 0x457a4c
mov ebx, dword [0x47f720]
test ebx, ebx
js 0x458016
lea ebx, [esp + 0xa0]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.libztex_prepare_device
mov dword [esp + 8], str._s:_Can_not_open_ZTEX_device:__d
mov dword [esp + 4], 0x100
mov dword [esp], ebx
call fcn.00471bd0
mov dword [esp + 4], ebx
mov dword [esp], 0
call fcn.0042ace0
xor edx, edx
mov eax, edx
mov ebx, dword [esp + 0x1ac]
mov esi, dword [esp + 0x1b0]
mov edi, dword [esp + 0x1b4]
mov ebp, dword [esp + 0x1b8]
add esp, 0x1bc
ret
lea eax, [ebx + 0xa]
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.004666a0
sub esp, 8
test eax, eax
jne 0x4580f9
movzx edx, byte [ebx + 0x1a]
lea edi, [ebx + 0x22]
mov eax, dword [ebx + 0x1c]
mov ecx, edi
mov dword [esp], 0xb
call fcn.004565a0
test eax, eax
mov edx, eax
js 0x45801d
lea ebp, [esp + 0x60]
mov dword [esp + 0x1c], 0x1f4
mov dword [esp + 0x18], 0x28
mov dword [esp + 0x14], ebp
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x22
mov dword [esp + 4], 0xc0
mov eax, dword [ebx + 0x1c]
mov dword [esp], eax
call fcn.00466728
sub esp, 0x20
test eax, eax
mov edx, eax
js 0x4580c9
cmp byte [esp + 0x60], 0x28
je 0x457c20
cmp byte [0x4a2d14], 0
jne 0x457b70
cmp byte [0x4a0b60], 0
jne 0x457b70
mov ecx, dword [0x47f720]
mov edx, 2
test ecx, ecx
js 0x457a89
lea esi, [esi]
lea eax, [esp + 0xa0]
mov dword [esp + 4], eax
mov dword [esp], 0
mov dword [esp + 0xa0], 0x7865745a
mov dword [esp + 0xa4], 0x65686320
mov dword [esp + 0xa8], 0x64206b63
mov dword [esp + 0xac], 0x63697665
mov dword [esp + 0xb0], 0x45203a65
mov dword [esp + 0xb4], 0x726f7272
mov dword [esp + 0xb8], 0x61657220
mov dword [esp + 0xbc], 0x676e6964
mov dword [esp + 0xc0], 0x65747a20
mov dword [esp + 0xc4], 0x65642078
mov dword [esp + 0xc8], 0x69726373
mov dword [esp + 0xcc], 0x726f7470
mov byte [esp + 0xd0], 0
call fcn.0042ace0
mov edx, 2
jmp 0x457a89
cmp byte [esp + 0x61], 1
jne 0x457b47
cmp byte [esp + 0x62], 0x5a
jne 0x457b47
cmp byte [esp + 0x63], 0x54
jne 0x457b47
cmp byte [esp + 0x64], 0x45
jne 0x457b47
cmp byte [esp + 0x65], 0x58
jne 0x457b47
movzx eax, byte [esp + 0x66]
mov byte [ebx + 0x2d], al
movzx eax, byte [esp + 0x67]
mov byte [ebx + 0x2e], al
movzx eax, byte [esp + 0x68]
mov byte [ebx + 0x2f], al
movzx eax, byte [esp + 0x69]
mov byte [ebx + 0x30], al
movzx eax, byte [esp + 0x6a]
mov byte [ebx + 0x31], al
movzx eax, byte [esp + 0x6b]
mov byte [ebx + 0x32], al
movzx eax, byte [esp + 0x6c]
mov byte [ebx + 0x33], al
movzx eax, byte [esp + 0x6d]
mov byte [ebx + 0x34], al
movzx eax, byte [esp + 0x6e]
mov byte [ebx + 0x35], al
movzx eax, byte [esp + 0x6f]
mov byte [ebx + 0x36], al
movzx eax, byte [esp + 0x70]
mov byte [ebx + 0x37], al
movzx eax, byte [esp + 0x71]
mov byte [ebx + 0x38], al
movzx eax, byte [esp + 0x72]
mov byte [ebx + 0x39], al
movzx eax, byte [esp + 0x73]
mov byte [ebx + 0x3a], al
movzx eax, byte [esp + 0x74]
mov byte [ebx + 0x3b], al
movzx eax, byte [esp + 0x75]
mov byte [ebx + 0x3c], al
movzx eax, byte [esp + 0x76]
mov byte [ebx + 0x3d], al
movzx eax, byte [esp + 0x77]
mov byte [ebx + 0x3e], al
movzx eax, byte [esp + 0x78]
mov byte [ebx + 0x3f], al
movzx eax, byte [esp + 0x79]
mov byte [ebx + 0x40], al
movzx eax, byte [esp + 0x7a]
mov byte [ebx + 0x41], al
movzx eax, byte [esp + 0x7b]
mov byte [ebx + 0x42], al
movzx eax, byte [esp + 0x7c]
mov byte [ebx + 0x43], al
movzx eax, byte [esp + 0x7d]
mov byte [ebx + 0x44], al
mov dword [esp + 0x1c], 0x1f4
mov dword [esp + 0x18], 0x40
mov dword [esp + 0x14], ebp
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x82
mov dword [esp + 4], 0xc0
mov eax, dword [ebx + 0x1c]
mov dword [esp], eax
call fcn.00466728
sub esp, 0x20
test eax, eax
mov edx, eax
js 0x4580c9
movzx eax, byte [esp + 0x60]
cmp al, 5
jne 0x458175
mov ecx, 0xb
jmp 0x457d85
cmp byte [ebp + edx], 0
je 0x45807c
add edx, 1
cmp edx, 0x3f
jle 0x457d77
lea eax, [edx + 1]
mov dword [esp], eax
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], ecx
call fcn.0047a2e8
mov dword [ebx + 0x54], eax
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
mov dword [esp], eax
add ecx, ebp
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
call fcn.0047a3a8
mov edx, dword [esp + 0x4c]
mov eax, dword [ebx + 0x54]
mov byte [eax + edx], 0
movzx eax, byte [esp + 0x61]
movzx edx, byte [esp + 0x63]
add eax, 1
mov byte [ebx + 0x45], al
shl edx, 8
mov byte [esp + 0x57], al
movzx eax, byte [esp + 0x62]
or eax, edx
movzx edx, byte [esp + 0x64]
sub ax, 0x2710
mov word [ebx + 0x46], ax
movzx ecx, byte [esp + 0x67]
mov word [esp + 0x58], ax
movzx eax, byte [esp + 0x65]
mov byte [esp + 0x5a], cl
shl eax, 8
or eax, edx
movzx edx, byte [esp + 0x60]
mov dword [esp + 0x5c], eax
movzx eax, byte [esp + 0x66]
fild dword [esp + 0x5c]
fmul qword [0x48ec10]
cmp dl, 5
sete byte [esp + 0x5b]
cmp dl, 2
mov byte [ebx + 0x51], cl
movzx ecx, byte [esp + 0x5b]
mov byte [esp + 0x4b], al
fst qword [ebx + 0x48]
mov byte [ebx + 0x50], al
mov byte [ebx + 0x52], al
mov byte [ebx + 0x58], cl
jbe 0x458169
movzx eax, byte [esp + 0x69]
movzx ebp, byte [esp + 0x68]
movzx ecx, byte [esp + 0x6a]
shl eax, 8
or eax, ebp
add eax, 1
mov dword [esp + 0x5c], eax
xor eax, eax
cmp dl, 5
fild dword [esp + 0x5c]
cmovae eax, ecx
fmul dword [0x48ec18]
fst qword [ebx + 0x60]
cmp byte [0x4a0b61], 0
mov byte [ebx + 0x68], al
je 0x457f26
cmp byte [0x4a2d14], 0
jne 0x457ea8
cmp byte [0x4a0b60], 0
jne 0x457ea8
cmp dword [0x47f720], 3
jle 0x457f2c
cmp byte [esp + 0x5b], 0
movzx ebp, al
mov ecx, 0x48e60a
mov eax, 0x48e608
mov dword [esp + 0x34], ebp
fstp qword [esp + 0x2c]
cmove eax, ecx
movzx ecx, byte [esp + 0x4b]
mov dword [esp + 0x28], eax
movzx eax, byte [esp + 0x5a]
lea ebp, [esp + 0xa0]
fstp qword [esp + 0x18]
mov dword [esp + 0xc], edx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], eax
movzx eax, word [esp + 0x58]
mov dword [esp + 8], str.PID:__d_numNonces:__d_offsNonces:__d_freqM1:__f_freqMaxM:__d_freqM:__d_suspendSupported:__s_hashesPerClock:__f_extraSolutions:__d
mov dword [esp + 4], 0x100
mov dword [esp], ebp
mov dword [esp + 0x14], eax
movzx eax, byte [esp + 0x57]
mov dword [esp + 0x10], eax
call fcn.00471bd0
mov dword [esp + 4], ebp
mov dword [esp], 4
call fcn.0042ace0
jmp 0x457f30
fstp st(0)
fstp st(0)
jmp 0x457f30
fstp st(0)
fstp st(0)
cmp byte [esp + 0x60], 3
ja 0x457fb0
mov dword [esp + 8], 0xd
mov dword [esp + 4], str.ztex_ufm1_15b
mov eax, dword [ebx + 0x54]
mov dword [esp], eax
call fcn.0047a3e0
test eax, eax
je 0x457f5f
fld dword [0x48ec1c]
fstp qword [ebx + 0x60]
cmp byte [0x4a2d14], 0
jne 0x457f7a
cmp byte [0x4a0b60], 0
jne 0x457f7a
cmp dword [0x47f720], 0
jle 0x457fb0
fld qword [ebx + 0x60]
lea ebp, [esp + 0xa0]
fstp qword [esp + 0xc]
mov dword [esp + 8], str.HASHES_PER_CLOCK_not_defined__assuming__0.2f
mov dword [esp + 4], 0x100
mov dword [esp], ebp
call fcn.00471bd0
mov dword [esp + 4], ebp
mov dword [esp], 1
call fcn.0042ace0
lea eax, [ebx + 0x70]
xor edx, edx
fldz
fst qword [eax]
add edx, 1
fst qword [eax + 0x800]
fst qword [eax + 0x1000]
fst qword [eax + 0x1800]
add eax, 8
cmp edx, 0xff
jne 0x457fb7
fstp st(0)
mov word [ebx + 0x2070], 1
mov dword [esp], esi
call fcn.004666a8
push ebp
mov byte [ebx + 0x20], al
mov dword [esp], esi
call fcn.004666b0
push edx
mov byte [ebx + 0x21], al
add ebx, 0x2079
mov dword [esp + 8], edi
mov dword [esp + 4], str.ZTEX__s_1
mov dword [esp], ebx
call fcn.0047da6e
xor edx, edx
jmp 0x457a89
cmp byte [0x4a2d14], 0
jne 0x45803c
cmp byte [0x4a0b60], 0
jne 0x45803c
cmp dword [0x47f720], 0
js 0x457a89
mov dword [esp + 0xc], edx
mov dword [esp + 8], str.Ztex_check_device:_Failed_to_read_device_snString_with_err__d
lea ebx, [esp + 0xa0]
mov dword [esp + 4], 0x100
mov dword [esp], ebx
mov dword [esp + 0x4c], edx
call fcn.00471bd0
mov dword [esp + 4], ebx
mov dword [esp], 0
call fcn.0042ace0
mov edx, dword [esp + 0x4c]
jmp 0x457a89
cmp ecx, edx
jl 0x457d8a
cmp byte [0x4a2d14], 0
jne 0x45809a
cmp byte [0x4a0b60], 0
je 0x458152
lea eax, [esp + 0xa0]
mov esi, str.Invalid_bitstream_file_name_.
mov edi, eax
mov ecx, 0x1e
rep movsb byte es:[edi], byte [esi]
mov dword [esp + 4], eax
mov dword [esp], 0
call fcn.0042ace0
mov edx, 4
jmp 0x457a89
cmp byte [0x4a2d14], 0
jne 0x4580e8
cmp byte [0x4a0b60], 0
jne 0x4580e8
cmp dword [0x47f720], 0
js 0x457a89
mov dword [esp + 0xc], edx
mov dword [esp + 8], str.Ztex_check_device:_Failed_to_read_ztex_descriptor_with_err__d
jmp 0x458048
cmp byte [0x4a2d14], 0
jne 0x458118
cmp byte [0x4a0b60], 0
jne 0x458118
cmp dword [0x47f720], 0
js 0x458016
lea ebx, [esp + 0xa0]
mov dword [esp + 0xc], eax
mov dword [esp + 8], str.Ztex_check_device:_Failed_to_open_read_descriptor_with_error__d
mov dword [esp + 4], 0x100
mov dword [esp], ebx
call fcn.00471bd0
mov dword [esp + 4], ebx
mov dword [esp], 0
call fcn.0042ace0
xor edx, edx
jmp 0x457a89
cmp dword [0x47f720], 0
jns 0x45809a
mov edx, 4
jmp 0x457a89
fld1
xor eax, eax
fst qword [ebx + 0x60]
jmp 0x457e79
cmp al, 4
jne 0x4581f3
cmp byte [0x4a2d14], 0
jne 0x458194
cmp byte [0x4a0b60], 0
jne 0x458194
cmp dword [0x47f720], 0
jle 0x4581dc
lea ecx, [esp + 0xa0]
mov dword [esp], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 8], str.Firmware_out_of_date___d_.
mov dword [esp + 4], 0x100
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], ecx
call fcn.00471bd0
mov ecx, dword [esp + 0x50]
mov dword [esp], 1
mov dword [esp + 4], ecx
call fcn.0042ace0
movzx eax, byte [esp + 0x60]
mov edx, dword [esp + 0x4c]
cmp al, 4
ja 0x457d70
cmp al, 3
sbb ecx, ecx
and ecx, 0xfffffffe
add ecx, 0xa
jmp 0x457d85
cmp al, 2
je 0x458179
cmp byte [0x4a2d14], 0
jne 0x458209
cmp byte [0x4a0b60], 0
je 0x458246
lea ebx, [esp + 0xa0]
mov dword [esp + 0xc], eax
mov dword [esp + 8], str.Invalid_BTCMiner_descriptor_version._Firmware_must_be_updated___d_.
mov dword [esp + 4], 0x100
mov dword [esp], ebx
call fcn.00471bd0
mov dword [esp + 4], ebx
mov dword [esp], 0
call fcn.0042ace0
mov edx, 3
jmp 0x457a89
cmp dword [0x47f720], 0
jns 0x458209
mov edx, 3
jmp 0x457a89