Function at 0x4582b0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x9cc
mov dword [esp + 0x40], 0
lea ebp, [esp + 0xc0]
mov dword [esp + 0x44], 0
mov dword [esp + 0x38], 0
lea eax, [esp + 0x44]
mov dword [esp + 4], eax
mov dword [esp], 0
call fcn.004666f0
sub esp, 8
cmp eax, 0
mov dword [esp + 0x30], eax
jl 0x459234
je 0x459115
xor ebx, ebx
mov dword [esp + 0x34], 0
mov dword [esp + 0x2c], 0
jmp 0x45837d
cmp byte [0x4a0b61], 0
je 0x458370
cmp byte [0x4a2d14], 0
jne 0x45833b
cmp byte [0x4a0b60], 0
jne 0x45833b
cmp dword [0x47f720], 3
jle 0x458370
movzx edx, word [esp + 0x58]
mov dword [esp + 0xc], eax
mov dword [esp + 8], str.Not_a_ZTEX_device__04x:_04x
mov dword [esp + 4], 0x100
mov dword [esp + 0x10], edx
mov dword [esp], ebp
call fcn.00471bd0
mov dword [esp + 4], ebp
mov dword [esp], 4
call fcn.0042ace0
add ebx, 1
cmp ebx, dword [esp + 0x30]
je 0x4584c0
mov eax, dword [esp + 0x44]
lea edx, [esp + 0x4e]
mov esi, dword [eax + ebx*4]
mov dword [esp + 4], edx
mov dword [esp + 0x48], 0
mov dword [esp], esi
call fcn.004666a0
sub esp, 8
test eax, eax
jne 0x4589be
movzx eax, word [esp + 0x56]
cmp ax, 0x221a
jne 0x458317
cmp word [esp + 0x58], 0x100
jne 0x458317
lea ecx, [esp + 0x48]
mov dword [esp + 4], ecx
mov dword [esp], esi
call fcn.004666d0
sub esp, 8
test eax, eax
je 0x458552
cmp byte [0x4a2d14], 0
jne 0x4583fa
cmp byte [0x4a0b60], 0
jne 0x4583fa
mov ecx, dword [0x47f720]
test ecx, ecx
js 0x45842e
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.libztex_checkDevice
mov dword [esp + 8], str._s:_Can_not_open_ZTEX_device:__d
mov dword [esp + 4], 0x100
mov dword [esp], ebp
call fcn.00471bd0
mov dword [esp + 4], ebp
mov dword [esp], 0
call fcn.0042ace0
xor esi, esi
mov eax, dword [esp + 0x48]
test eax, eax
je 0x458443
mov dword [esp], eax
call fcn.004666e0
sub esp, 4
cmp esi, 2
je 0x4584f8
cmp esi, 3
je 0x4584e6
test esi, esi
jne 0x458370
movzx eax, byte [0x4a2d14]
test al, al
jne 0x45847e
cmp byte [0x4a0b60], 0
jne 0x45847e
mov eax, dword [0x47f720]
test eax, eax
js 0x458370
mov dword [esp + 0xc], 0
add ebx, 1
mov dword [esp + 8], str.Ztex:_Can_not_check_device:__d
mov dword [esp + 4], 0x100
mov dword [esp], ebp
call fcn.00471bd0
mov dword [esp + 4], ebp
mov dword [esp], 0
call fcn.0042ace0
cmp ebx, dword [esp + 0x30]
jne 0x45837d
nop
lea esi, [esi]
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0x38], eax
jle 0x458510
mov eax, dword [esp + 0x44]
mov dword [esp + 4], 1
mov dword [esp], eax
call fcn.004666f8
sub esp, 8
jmp 0x4582d9
add dword [esp + 0x2c], 1
mov dword [esp + 0x34], 1
jmp 0x458370
mov ecx, dword [esp + 0x2c]
mov dword [esp + ecx*4 + 0x1c0], ebx
add ecx, 1
mov dword [esp + 0x2c], ecx
jmp 0x458370
mov edi, dword [esp + 0x34]
test edi, edi
jne 0x4591f1
mov esi, dword [esp + 0x2c]
test esi, esi
jne 0x458637
xor ebx, ebx
mov eax, dword [esp + 0x44]
test eax, eax
je 0x458545
mov dword [esp + 4], 1
mov dword [esp], eax
call fcn.004666f8
sub esp, 8
add esp, 0x9cc
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [esp + 0x80]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x1c], 0x1f4
mov dword [esp + 0x18], 0x28
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x22
mov dword [esp + 4], 0xc0
mov dword [esp], eax
call fcn.00466728
sub esp, 0x20
test eax, eax
js 0x459203
cmp byte [esp + 0x80], 0x28
je 0x458828
cmp byte [0x4a2d14], 0
jne 0x4585c8
cmp byte [0x4a0b60], 0
je 0x458770
mov dword [ebp], 0x7865745a
xor esi, esi
mov dword [ebp + 4], 0x65686320
mov dword [ebp + 8], 0x64206b63
mov dword [ebp + 0xc], 0x63697665
mov dword [ebp + 0x10], 0x45203a65
mov dword [ebp + 0x14], 0x726f7272
mov dword [ebp + 0x18], 0x61657220
mov dword [ebp + 0x1c], 0x676e6964
mov dword [ebp + 0x20], 0x65747a20
mov dword [ebp + 0x24], 0x65642078
mov dword [ebp + 0x28], 0x69726373
mov dword [ebp + 0x2c], 0x726f7470
mov byte [ebp + 0x30], 0
mov dword [esp + 4], ebp
mov dword [esp], 0
call fcn.0042ace0
jmp 0x458430
mov eax, dword [esp + 0x2c]
xor esi, esi
xor ebx, ebx
lea ebp, [esp + 0x40]
shl eax, 2
mov dword [esp], eax
call fcn.0047a2e8
test eax, eax
mov edi, eax
jne 0x4586d9
jmp 0x458901
mov dword [eax + 0x54], 0
mov word [eax + 0x2072], 0xffff
mov eax, dword [esp + 0x44]
mov dword [esp + 4], ebp
mov edx, dword [esp + esi*4 + 0x1c0]
mov eax, dword [eax + edx*4]
mov dword [esp], eax
call fcn.004579e0
test eax, eax
jne 0x459126
mov dword [esp], 8
call fcn.0047a2e8
test eax, eax
mov dword [edi + ebx*4], eax
je 0x458785
mov edx, dword [esp + 0x40]
test ebx, ebx
mov dword [esp + 0x40], 0
mov dword [eax + 4], 0
mov dword [eax], edx
je 0x4586c9
mov edx, dword [edi + ebx*4 - 4]
mov dword [edx + 4], eax
add ebx, 1
add esi, 1
cmp esi, dword [esp + 0x2c]
jge 0x458812
mov eax, dword [esp + 0x40]
test eax, eax
jne 0x458660
mov dword [esp], 0x2090
call fcn.0047a2e8
test eax, eax
mov dword [esp + 0x40], eax
jne 0x458660
cmp byte [0x4a2d14], 0
jne 0x458719
cmp byte [0x4a0b60], 0
jne 0x458719
mov ecx, dword [0x47f720]
test ecx, ecx
js 0x458763
call fcn.0047a378
lea ebx, [esp + 0xc0]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.0047a470
mov dword [esp + 0xc], str.libztex_scanDevices
mov dword [esp + 8], str._s:_Can_not_allocate_memory_for_device_struct:__s
mov dword [esp + 4], 0x100
mov dword [esp], ebx
mov dword [esp + 0x10], eax
call fcn.00471bd0
mov dword [esp + 4], ebx
mov dword [esp], 0
call fcn.0042ace0
mov dword [esp], edi
call fcn.0047a350
jmp 0x458528
mov eax, dword [0x47f720]
test eax, eax
jns 0x4585c8
lea esi, [esi]
jmp 0x45842e
cmp byte [0x4a2d14], 0
jne 0x4587a0
cmp byte [0x4a0b60], 0
jne 0x4587a0
mov eax, dword [0x47f720]
test eax, eax
js 0x4587f1
call fcn.0047a378
mov eax, dword [eax]
mov dword [esp], eax
call fcn.0047a470
mov dword [esp + 0xc], str.libztex_scanDevices
mov dword [esp + 8], str._s:_Can_not_allocate_memory_for_device:__s
mov dword [esp + 4], 0x100
mov dword [esp + 0x10], eax
lea eax, [esp + 0xc0]
mov dword [esp], eax
call fcn.00471bd0
lea edx, [esp + 0xc0]
mov dword [esp + 4], edx
mov dword [esp], 0
call fcn.0042ace0
mov eax, dword [esp + 0x40]
add esi, 1
mov dword [esp], eax
call fcn.00458260
cmp esi, dword [esp + 0x2c]
mov dword [esp + 0x40], 0
jl 0x4586d9
test ebx, ebx
je 0x458763
mov eax, dword [esp + 0x9e0]
mov dword [eax], edi
jmp 0x45852a
cmp byte [esp + 0x81], 1
jne 0x4585b2
cmp byte [esp + 0x82], 0x5a
jne 0x4585b2
cmp byte [esp + 0x83], 0x54
jne 0x4585b2
cmp byte [esp + 0x84], 0x45
jne 0x4585b2
cmp byte [esp + 0x85], 0x58
jne 0x4585b2
cmp byte [esp + 0x86], 0xa
mov esi, 1
jne 0x458430
movzx eax, byte [esp + 0x87]
cmp al, 0xd
je 0x459185
cmp al, 0xf
je 0x458a16
cmp byte [0x4a2d14], 0
jne 0x4588b9
cmp byte [0x4a0b60], 0
jne 0x4588b9
mov edi, dword [0x47f720]
test edi, edi
js 0x458430
mov dword [ebp], 0x6e756f46
mov esi, 1
mov dword [ebp + 4], 0x6e752064
mov dword [ebp + 8], 0x776f6e6b
mov dword [ebp + 0xc], 0x747a206e
mov dword [ebp + 0x10], 0x62207865
mov dword [ebp + 0x14], 0x6472616f
mov byte [ebp + 0x18], 0
mov dword [esp + 4], ebp
mov dword [esp], 0
call fcn.0042ace0
jmp 0x458430
cmp byte [0x4a2d14], 0
jne 0x458921
cmp byte [0x4a0b60], 0
jne 0x458921
mov ebx, dword [0x47f720]
test ebx, ebx
js 0x458528
lea eax, [esp + 0xc0]
mov dword [esp + 4], eax
mov dword [esp], 0
mov dword [esp + 0xc0], 0x7865745a
mov dword [esp + 0xc4], 0x61637320
mov dword [esp + 0xc8], 0x6564206e
mov dword [esp + 0xcc], 0x65636976
mov dword [esp + 0xd0], 0x46203a73
mov dword [esp + 0xd4], 0x656c6961
mov dword [esp + 0xd8], 0x6f742064
mov dword [esp + 0xdc], 0x6c6c6120
mov dword [esp + 0xe0], 0x7461636f
mov dword [esp + 0xe4], 0x656d2065
mov dword [esp + 0xe8], 0x79726f6d
mov byte [esp + 0xec], 0
call fcn.0042ace0
jmp 0x458528
cmp byte [0x4a2d14], 0
jne 0x4589de
cmp byte [0x4a0b60], 0
jne 0x4589de
mov esi, dword [0x47f720]
test esi, esi
js 0x458468
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], ebp
call fcn.00471bd0
mov dword [esp + 4], ebp
mov dword [esp], 0
call fcn.0042ace0
movzx eax, byte [0x4a2d14]
jmp 0x458464
cmp byte [0x4a2d14], 0
jne 0x458a31
cmp byte [0x4a0b60], 0
jne 0x458a31
mov eax, dword [0x47f720]
test eax, eax
js 0x458a6e
mov dword [ebp], 0x6e756f46
mov dword [ebp + 4], 0x747a2064
mov dword [ebp + 8], 0x62207865
mov dword [ebp + 0xc], 0x6472616f
mov dword [ebp + 0x10], 0x312e3120
mov word [ebp + 0x14], 0x7935
mov byte [ebp + 0x16], 0
mov dword [esp + 4], ebp
mov dword [esp], 0
call fcn.0042ace0
cmp byte [esp + 0x88], 0
jne 0x45910b
cmp byte [0x4a2d14], 0
jne 0x458a98
cmp byte [0x4a0b60], 0
jne 0x458a98
mov esi, dword [0x47f720]
test esi, esi
js 0x458b07
mov dword [ebp], 0x6e756f46
mov dword [ebp + 4], 0x75642064
mov dword [ebp + 8], 0x20796d6d
mov dword [ebp + 0xc], 0x6d726966
mov dword [ebp + 0x10], 0x65726177
mov dword [ebp + 0x14], 0x7274202c
mov dword [ebp + 0x18], 0x676e6979
mov dword [ebp + 0x1c], 0x206f7420
mov dword [ebp + 0x20], 0x646e6573
mov dword [ebp + 0x24], 0x6e696d20
mov dword [ebp + 0x28], 0x20676e69
mov dword [ebp + 0x2c], 0x6d726966
mov dword [ebp + 0x30], 0x65726177
mov byte [ebp + 0x34], 0
mov dword [esp + 4], ebp
mov dword [esp], 0
call fcn.0042ace0
lea edx, [esp + 0x60]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x3c], edx
movzx edx, byte [esp + 0x5d]
lea ecx, [esp + 0x60]
mov dword [esp], 0x20
call fcn.004565a0
test eax, eax
mov esi, eax
js 0x4590ba
cmp byte [0x4a2d14], 0
jne 0x458b50
cmp byte [0x4a0b60], 0
jne 0x458b50
mov edx, dword [0x47f720]
xor eax, eax
test edx, edx
js 0x458b87
lea ecx, [esp + 0x60]
mov dword [esp + 0xc], ecx
mov dword [esp + 8], str.productString:__s
mov dword [esp + 4], 0x100
mov dword [esp], ebp
call fcn.00471bd0
mov dword [esp + 4], ebp
mov dword [esp], 0
call fcn.0042ace0
movzx eax, byte [0x4a2d14]
movzx edx, byte [esp + 0x87]
mov esi, str.USB_FPGA_Module_1.15d__default_
mov ecx, 0x20
mov edi, dword [esp + 0x3c]
mov byte [esp + 0x27], dl
repe cmpsb byte [esi], byte es:[edi]
je 0x458bb7
mov edi, dword [esp + 0x3c]
mov esi, str.USB_FPGA_Module_1.15x__default_
mov ecx, 0x20
repe cmpsb byte [esi], byte es:[edi]
jne 0x458bc2
cmp byte [esp + 0x27], 0xd
je 0x4590b0
mov edi, dword [esp + 0x3c]
mov esi, str.USB_FPGA_Module_1.15y__default_
mov ecx, 0x20
repe cmpsb byte [esi], byte es:[edi]
jne 0x458bdf
cmp byte [esp + 0x27], 0xf
je 0x458c60
test al, al
jne 0x458bf9
cmp byte [0x4a0b60], 0
jne 0x458bf9
mov eax, dword [0x47f720]
test eax, eax
js 0x45842e
mov dword [ebp], 0x6c756f63
xor esi, esi
mov dword [ebp + 4], 0x6f6e2064
mov dword [ebp + 8], 0x69662074
mov dword [ebp + 0xc], 0x65727567
mov dword [ebp + 0x10], 0x74756f20
mov dword [ebp + 0x14], 0x69687720
mov dword [ebp + 0x18], 0x66206863
mov dword [ebp + 0x1c], 0x776d7269
mov dword [ebp + 0x20], 0x20657261
mov dword [ebp + 0x24], 0x75206f74
mov word [ebp + 0x28], 0x6573
mov byte [ebp + 0x2a], 0
mov dword [esp + 4], ebp
mov dword [esp], 0
call fcn.0042ace0
jmp 0x458430
mov edi, str.ztex_ufm1_15y1.bin
test al, al
jne 0x458c7b
cmp byte [0x4a0b60], 0
jne 0x458c7b
mov eax, dword [0x47f720]
test eax, eax
js 0x458ca7
mov dword [esp + 0xc], edi
mov dword [esp + 8], str.Mining_firmware_filename:__s
mov dword [esp + 4], 0x100
mov dword [esp], ebp
call fcn.00471bd0
mov dword [esp + 4], ebp
mov dword [esp], 0
call fcn.0042ace0
mov dword [esp + 4], edi
mov dword [esp], str.ztex
call fcn.0043eca0
test eax, eax
mov esi, eax
je 0x459080
mov dword [esp + 8], 2
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.0047a420
test eax, eax
je 0x458d42
cmp byte [0x4a2d14], 0
jne 0x458cf8
cmp byte [0x4a0b60], 0
jne 0x458cf8
mov eax, dword [0x47f720]
test eax, eax
js 0x458d33
call fcn.0047a378
mov eax, dword [eax]
mov dword [esp], eax
call fcn.0047a470
mov dword [esp + 8], str.Ztex_firmware_fseek:__s
mov dword [esp + 4], 0x100
mov dword [esp], ebp
mov dword [esp + 0xc], eax
call fcn.00471bd0
mov dword [esp + 4], ebp
mov dword [esp], 0
call fcn.0042ace0
mov dword [esp], esi
xor esi, esi
call fcn.0047a3c0
jmp 0x458430
mov dword [esp], esi
call fcn.0047a428
mov dword [esp], esi
mov edi, eax
call fcn.0047a478
mov dword [esp], edi
call fcn.0047a2e8
test eax, eax
mov dword [esp + 0x3c], eax
je 0x458fe0
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xc], esi
mov dword [esp + 8], edi
mov dword [esp + 4], 1
mov dword [esp], eax
call fcn.0047a430
mov dword [esp], esi
mov dword [esp + 0x28], eax
call fcn.0047a3c0
mov edx, dword [esp + 0x28]
cmp edi, edx
jbe 0x458df6
cmp byte [0x4a2d14], 0
jne 0x458db7
cmp byte [0x4a0b60], 0
jne 0x458db7
mov eax, dword [0x47f720]
test eax, eax
js 0x45842e
mov dword [esp + 0x10], edx
xor esi, esi
mov dword [esp + 0x14], edi
mov dword [esp + 0xc], str.libztex_checkDevice
mov dword [esp + 8], str._s:_Incomplete_firmware_read:__d__d
mov dword [esp + 4], 0x100
mov dword [esp], ebp
call fcn.00471bd0
mov dword [esp + 4], ebp
mov dword [esp], 0
call fcn.0042ace0
jmp 0x458430
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x80]
mov dword [esp + 0xc], 8
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00459b00
test eax, eax
je 0x458fab
cmp byte [eax + 8], 0
jne 0x458e7e
cmp byte [0x4a2d14], 0
jne 0x458e47
cmp byte [0x4a0b60], 0
jne 0x458e47
mov esi, dword [0x47f720]
test esi, esi
js 0x45842e
mov dword [esp + 0xc], str.libztex_checkDevice
mov dword [esp + 8], str._s:_found_a_ZTEX_dummy_firmware
mov dword [esp + 4], 0x100
xor esi, esi
mov dword [esp], ebp
call fcn.00471bd0
mov dword [esp + 4], ebp
mov dword [esp], 0
call fcn.0042ace0
jmp 0x458430
mov eax, dword [esp + 0x48]
mov edx, 1
call fcn.0047d9b8
test al, al
jne 0x45842e
xor edx, edx
test edi, edi
mov esi, edx
mov ecx, ebx
je 0x458f14
mov eax, dword [esp + 0x3c]
mov ebx, edi
mov edx, 0x100
sub ebx, esi
cmp ebx, 0x100
cmova ebx, edx
add eax, esi
mov dword [esp + 0x14], eax
mov eax, esi
and eax, 0xffff
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x1c], 0x3e8
mov dword [esp + 0x18], ebx
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0xa0
mov dword [esp + 4], 0x40
mov dword [esp], eax
mov dword [esp + 0x28], ecx
call fcn.00466728
sub esp, 0x20
cmp ebx, eax
mov ecx, dword [esp + 0x28]
jg 0x459047
add esi, 0x100
cmp edi, esi
ja 0x458e9e
mov ebx, ecx
mov eax, dword [esp + 0x48]
xor edx, edx
call fcn.0047d9b8
test al, al
jne 0x45842e
cmp byte [0x4a2d14], 0
jne 0x458f4b
cmp byte [0x4a0b60], 0
jne 0x458f4b
mov eax, dword [0x47f720]
mov esi, 3
test eax, eax
js 0x458430
mov dword [ebp], 0x7865745a
mov esi, 3
mov dword [ebp + 4], 0x76656420
mov dword [ebp + 8], 0x3a656369
mov dword [ebp + 0xc], 0x63757320
mov dword [ebp + 0x10], 0x66736563
mov dword [ebp + 0x14], 0x796c6c75
mov dword [ebp + 0x18], 0x6f727720
mov dword [ebp + 0x1c], 0x66206574
mov dword [ebp + 0x20], 0x776d7269
mov dword [ebp + 0x24], 0x657261
mov dword [esp + 4], ebp
mov dword [esp], 0
call fcn.0042ace0
jmp 0x458430
cmp byte [0x4a2d14], 0
jne 0x458fcb
cmp byte [0x4a0b60], 0
jne 0x458fcb
mov edi, dword [0x47f720]
test edi, edi
js 0x45842e
mov dword [esp + 0xc], str.libztex_checkDevice
mov dword [esp + 8], str._s:_found_firmware_is_not_ZTEX
jmp 0x458e57
cmp byte [0x4a2d14], 0
jne 0x458fff
cmp byte [0x4a0b60], 0
jne 0x458fff
mov eax, dword [0x47f720]
test eax, eax
js 0x458d33
call fcn.0047a378
mov eax, dword [eax]
mov dword [esp], eax
call fcn.0047a470
mov dword [esp + 0xc], str.libztex_checkDevice
mov dword [esp + 8], str._s:_Can_not_allocate_memory:__s
mov dword [esp + 4], 0x100
mov dword [esp], ebp
mov dword [esp + 0x10], eax
call fcn.00471bd0
mov dword [esp + 4], ebp
mov dword [esp], 0
call fcn.0042ace0
jmp 0x458d33
cmp byte [0x4a2d14], 0
mov edx, esi
mov ebx, ecx
jne 0x45906b
cmp byte [0x4a0b60], 0
jne 0x45906b
mov ecx, dword [0x47f720]
test ecx, ecx
js 0x45842e
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], edx
mov dword [esp + 8], str.Ztex_device:_Failed_to_write_firmware_at__d_with_err:__d
jmp 0x45840e
cmp byte [0x4a2d14], 0
jne 0x45909f
cmp byte [0x4a0b60], 0
jne 0x45909f
mov eax, dword [0x47f720]
test eax, eax
js 0x45842e
mov dword [esp + 0xc], edi
mov dword [esp + 8], str.failed_to_open_firmware_file__s
jmp 0x458e57
mov edi, str.ztex_ufm1_15d4.bin
jmp 0x458c65
cmp byte [0x4a2d14], 0
jne 0x4590da
cmp byte [0x4a0b60], 0
jne 0x4590da
mov ecx, dword [0x47f720]
test ecx, ecx
js 0x458443
mov dword [esp + 0xc], esi
mov dword [esp + 8], str.Ztex_check_device:_Failed_to_read_device_productString_with_err__d
mov dword [esp + 4], 0x100
mov dword [esp], ebp
call fcn.00471bd0
mov dword [esp + 4], ebp
mov dword [esp], 0
call fcn.0042ace0
jmp 0x458443
mov esi, 2
jmp 0x458430
mov esi, dword [esp + 0x38]
test esi, esi
jg 0x4584ca
jmp 0x458528
cmp byte [0x4a2d14], 0
jne 0x459146
cmp byte [0x4a0b60], 0
jne 0x459146
mov edx, dword [0x47f720]
test edx, edx
js 0x4587f1
lea edx, [esp + 0xc0]
mov dword [esp + 0xc], eax
mov dword [esp + 8], str.prepare_device:__d
mov dword [esp + 4], 0x100
mov dword [esp], edx
call fcn.00471bd0
lea ecx, [esp + 0xc0]
mov dword [esp + 4], ecx
mov dword [esp], 0
call fcn.0042ace0
jmp 0x4587f1
cmp byte [0x4a2d14], 0
jne 0x4591a4
cmp byte [0x4a0b60], 0
jne 0x4591a4
mov eax, dword [0x47f720]
test eax, eax
js 0x458a6e
mov dword [ebp], 0x6e756f46
mov dword [ebp + 4], 0x747a2064
mov dword [ebp + 8], 0x62207865
mov dword [ebp + 0xc], 0x6472616f
mov dword [ebp + 0x10], 0x312e3120
mov dword [ebp + 0x14], 0x6f206435
mov dword [ebp + 0x18], 0x2e312072
mov dword [ebp + 0x1c], 0x783531
mov dword [esp + 4], ebp
mov dword [esp], 0
call fcn.0042ace0
jmp 0x458a6e
cmp dword [esp + 0x38], eax
cmovge eax, dword [esp + 0x38]
mov dword [esp + 0x38], eax
jmp 0x4584ca
cmp byte [0x4a2d14], 0
jne 0x459223
cmp byte [0x4a0b60], 0
jne 0x459223
mov edx, dword [0x47f720]
test edx, edx
js 0x45842e
mov dword [esp + 0xc], eax
mov dword [esp + 8], str.Ztex_check_device:_Failed_to_read_ztex_descriptor_with_err__d
jmp 0x458e57
cmp byte [0x4a2d14], 0
jne 0x459254
cmp byte [0x4a0b60], 0
jne 0x459254
mov edi, dword [0x47f720]
test edi, edi
js 0x458528
mov eax, dword [esp + 0x30]
lea ebx, [esp + 0xc0]
mov dword [esp + 8], str.Ztex_scan_devices:_Failed_to_list_usb_devices_with_err__d
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], 0
call fcn.0042ace0
jmp 0x458528