Function at 0x412b70
Capabilities:
Check for peb beingdebugged flag

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4999ad
mov eax, dword fs:[0]
push eax
sub esp, 0xc
push ebx
push esi
push edi
mov eax, dword [0x4ed800]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
lea ecx, [ebp - 0x18]
call fcn.004102b0
mov eax, 2
mov dword [ebp - 4], 0
push 1
mov word [0x4f2b08], 0xffff
mov dword [0x4f2b00], 0x4f2b0a
mov word [0x4f2b04], ax
call fcn.00414f40
call fcn.00414ea0
movsd xmm0, qword [0x4a7010]
push ecx
movsd qword [esp], xmm0
push 1
call fcn.00415040
mov edx, dword [0x4f2afc]
lea ecx, [esi + 8]
add esp, 0xc
movzx eax, byte [edx]
mov byte [ebp - 0x10], al
movzx eax, byte [edx + 1]
mov byte [ebp - 0xf], al
lea eax, [edx + 2]
mov dword [0x4f2afc], eax
movzx eax, word [ebp - 0x10]
push eax
call fcn.0040b7a0
mov edx, dword [0x4f2afc]
lea ecx, [esi + 0x30]
movzx eax, byte [edx]
mov byte [ebp - 0x10], al
movzx eax, byte [edx + 1]
mov byte [ebp - 0xf], al
lea eax, [edx + 2]
mov dword [0x4f2afc], eax
movzx eax, word [ebp - 0x10]
push eax
call fcn.0040b7a0
mov edx, dword [0x4f2afc]
lea ecx, [esi + 0x58]
movzx eax, byte [edx]
mov byte [ebp - 0x10], al
movzx eax, byte [edx + 1]
mov byte [ebp - 0xf], al
lea eax, [edx + 2]
mov dword [0x4f2afc], eax
movzx eax, word [ebp - 0x10]
push eax
call fcn.0040b7a0
mov edx, dword [0x4f2afc]
lea ecx, [esi + 0x80]
movzx eax, byte [edx]
mov byte [ebp - 0x10], al
movzx eax, byte [edx + 1]
mov byte [ebp - 0xf], al
lea eax, [edx + 2]
mov dword [0x4f2afc], eax
movzx eax, word [ebp - 0x10]
push eax
call fcn.0040b7a0
mov edx, dword [0x4f2afc]
lea ecx, [esi + 0xa8]
movzx eax, byte [edx]
mov byte [ebp - 0x10], al
movzx eax, byte [edx + 1]
mov byte [ebp - 0xf], al
lea eax, [edx + 2]
mov dword [0x4f2afc], eax
movzx eax, word [ebp - 0x10]
push eax
call fcn.0040b7a0
mov edx, dword [0x4f2afc]
lea ecx, [esi + 0xd0]
movzx eax, byte [edx]
mov byte [ebp - 0x10], al
movzx eax, byte [edx + 1]
mov byte [ebp - 0xf], al
lea eax, [edx + 2]
mov dword [0x4f2afc], eax
movzx eax, word [ebp - 0x10]
push eax
call fcn.0040b7a0
mov edx, dword [0x4f2afc]
lea ecx, [esi + 0xf8]
movzx eax, byte [edx]
mov byte [ebp - 0x10], al
movzx eax, byte [edx + 1]
mov byte [ebp - 0xf], al
lea eax, [edx + 2]
mov dword [0x4f2afc], eax
movzx eax, word [ebp - 0x10]
push eax
call fcn.0040b7a0
mov edx, dword [0x4f2afc]
lea ecx, [esi + 0x120]
movzx eax, byte [edx]
mov byte [ebp - 0x10], al
movzx eax, byte [edx + 1]
mov byte [ebp - 0xf], al
lea eax, [edx + 2]
mov dword [0x4f2afc], eax
movzx eax, word [ebp - 0x10]
push eax
call fcn.0040b7a0
cmp dword [0x4ed034], 2
je 0x412d5a
movsd xmm0, qword [0x4f1838]
mov eax, 0x4a76cc
movsd xmm1, qword [0x4f1840]
jmp 0x412d6f
movsd xmm0, qword [0x4f1848]
mov eax, 0x4a76c8
movsd xmm1, qword [0x4f1850]
sub esp, 0x10
lea ecx, [esi + 0x148]
movsd qword [esp + 8], xmm1
movsd qword [esp], xmm0
push eax
push 2
call fcn.0040b570
mov edx, dword [0x4f2afc]
lea ecx, [esi + 0x148]
movzx eax, byte [edx]
mov byte [ebp - 0x10], al
movzx eax, byte [edx + 1]
mov byte [ebp - 0xf], al
lea eax, [edx + 2]
mov dword [0x4f2afc], eax
movzx eax, word [ebp - 0x10]
push eax
call fcn.0040b7a0
mov edx, dword [0x4f2afc]
lea ecx, [esi + 0x170]
movzx eax, byte [edx]
mov byte [ebp - 0x10], al
movzx eax, byte [edx + 1]
mov byte [ebp - 0xf], al
lea eax, [edx + 2]
mov dword [0x4f2afc], eax
movzx eax, word [ebp - 0x10]
push eax
call fcn.0040b7a0
mov edx, dword [0x4f2afc]
lea ecx, [esi + 0x198]
movzx eax, byte [edx]
mov byte [ebp - 0x10], al
movzx eax, byte [edx + 1]
mov byte [ebp - 0xf], al
lea eax, [edx + 2]
mov dword [0x4f2afc], eax
movzx eax, word [ebp - 0x10]
push eax
call fcn.0040b7a0
mov edx, dword [0x4f2afc]
lea ecx, [esi + 0x1c0]
movzx eax, byte [edx]
mov byte [ebp - 0x10], al
movzx eax, byte [edx + 1]
mov byte [ebp - 0xf], al
lea eax, [edx + 2]
mov dword [0x4f2afc], eax
movzx eax, word [ebp - 0x10]
push eax
call fcn.0040b7a0
mov edx, dword [0x4f2afc]
lea ecx, [esi + 0x1e8]
movzx eax, byte [edx]
mov byte [ebp - 0x10], al
movzx eax, byte [edx + 1]
mov byte [ebp - 0xf], al
lea eax, [edx + 2]
mov dword [0x4f2afc], eax
movzx eax, word [ebp - 0x10]
push eax
call fcn.0040b7a0
mov edx, dword [0x4f2afc]
lea ecx, [esi + 0x210]
movzx eax, byte [edx]
mov byte [ebp - 0x10], al
movzx eax, byte [edx + 1]
mov byte [ebp - 0xf], al
lea eax, [edx + 2]
mov dword [0x4f2afc], eax
movzx eax, word [ebp - 0x10]
push eax
call fcn.0040b7a0
mov edx, dword [0x4f2afc]
lea ecx, [esi + 0x260]
movzx eax, byte [edx]
mov byte [ebp - 0x10], al
movzx eax, byte [edx + 1]
mov byte [ebp - 0xf], al
lea eax, [edx + 2]
mov dword [0x4f2afc], eax
movzx eax, word [ebp - 0x10]
push eax
call fcn.0040b7a0
mov edx, dword [0x4f2afc]
lea ecx, [esi + 0x288]
movzx eax, byte [edx]
mov byte [ebp - 0x10], al
movzx eax, byte [edx + 1]
mov byte [ebp - 0xf], al
lea eax, [edx + 2]
mov dword [0x4f2afc], eax
movzx eax, word [ebp - 0x10]
push eax
call fcn.0040b7a0
mov edx, dword [0x4f2afc]
lea ecx, [esi + 0x2b0]
movzx eax, byte [edx]
mov byte [ebp - 0x10], al
movzx eax, byte [edx + 1]
mov byte [ebp - 0xf], al
lea eax, [edx + 2]
mov dword [0x4f2afc], eax
movzx eax, word [ebp - 0x10]
push eax
call fcn.0040b7a0
mov edx, dword [0x4f2afc]
lea ecx, [esi + 0x2d8]
movzx eax, byte [edx]
mov byte [ebp - 0x10], al
movzx eax, byte [edx + 1]
mov byte [ebp - 0xf], al
lea eax, [edx + 2]
mov dword [0x4f2afc], eax
movzx eax, word [ebp - 0x10]
push eax
call fcn.0040b7a0
mov edx, dword [0x4f2afc]
lea ecx, [esi + 0x300]
movzx eax, byte [edx]
mov byte [ebp - 0x10], al
movzx eax, byte [edx + 1]
mov byte [ebp - 0xf], al
lea eax, [edx + 2]
mov dword [0x4f2afc], eax
movzx eax, word [ebp - 0x10]
push eax
call fcn.0040b7a0
mov edx, dword [0x4f2afc]
lea ecx, [esi + 0x328]
movzx eax, byte [edx]
mov byte [ebp - 0x10], al
movzx eax, byte [edx + 1]
mov byte [ebp - 0xf], al
lea eax, [edx + 2]
mov dword [0x4f2afc], eax
movzx eax, word [ebp - 0x10]
push eax
call fcn.0040b7a0
mov edx, dword [0x4f2afc]
lea ecx, [esi + 0x350]
movzx eax, byte [edx]
mov byte [ebp - 0x10], al
movzx eax, byte [edx + 1]
mov byte [ebp - 0xf], al
lea eax, [edx + 2]
mov dword [0x4f2afc], eax
movzx eax, word [ebp - 0x10]
push eax
call fcn.0040b7a0
mov edx, dword [0x4f2afc]
lea ecx, [esi + 0x378]
movzx eax, byte [edx]
mov byte [ebp - 0x10], al
movzx eax, byte [edx + 1]
mov byte [ebp - 0xf], al
lea eax, [edx + 2]
mov dword [0x4f2afc], eax
movzx eax, word [ebp - 0x10]
push eax
call fcn.0040b7a0
lea ecx, [esi + 0x3a0]
mov edx, dword [0x4f2afc]
movzx eax, byte [edx]
mov byte [ebp - 0x10], al
movzx eax, byte [edx + 1]
mov byte [ebp - 0xf], al
lea eax, [edx + 2]
mov dword [0x4f2afc], eax
movzx eax, word [ebp - 0x10]
push eax
call fcn.0040b7a0
mov edx, dword [0x4f2afc]
lea ecx, [esi + 0x3c8]
movzx eax, byte [edx]
mov byte [ebp - 0x10], al
movzx eax, byte [edx + 1]
mov byte [ebp - 0xf], al
lea eax, [edx + 2]
mov dword [0x4f2afc], eax
movzx eax, word [ebp - 0x10]
push eax
call fcn.0040b7a0
mov edx, dword [0x4f2afc]
lea ecx, [esi + 0x3f0]
movzx eax, byte [edx]
mov byte [ebp - 0x10], al
movzx eax, byte [edx + 1]
mov byte [ebp - 0xf], al
lea eax, [edx + 2]
mov dword [0x4f2afc], eax
movzx eax, word [ebp - 0x10]
push eax
call fcn.0040b7a0
mov edx, dword [0x4f2afc]
lea ecx, [esi + 0x418]
movzx eax, byte [edx]
mov byte [ebp - 0x10], al
movzx eax, byte [edx + 1]
mov byte [ebp - 0xf], al
lea eax, [edx + 2]
mov dword [0x4f2afc], eax
movzx eax, word [ebp - 0x10]
push eax
call fcn.0040b7a0
mov edx, dword [0x4f2afc]
lea ecx, [esi + 0x440]
movzx eax, byte [edx]
mov byte [ebp - 0x10], al
movzx eax, byte [edx + 1]
mov byte [ebp - 0xf], al
lea eax, [edx + 2]
mov dword [0x4f2afc], eax
movzx eax, word [ebp - 0x10]
push eax
call fcn.0040b7a0
mov edx, dword [0x4f2afc]
lea ecx, [esi + 0x468]
movzx eax, byte [edx]
mov byte [ebp - 0x10], al
movzx eax, byte [edx + 1]
mov byte [ebp - 0xf], al
lea eax, [edx + 2]
mov dword [0x4f2afc], eax
movzx eax, word [ebp - 0x10]
push eax
call fcn.0040b7a0
mov edx, dword [0x4f2afc]
lea ecx, [esi + 0x490]
movzx eax, byte [edx]
mov byte [ebp - 0x10], al
movzx eax, byte [edx + 1]
mov byte [ebp - 0xf], al
lea eax, [edx + 2]
mov dword [0x4f2afc], eax
movzx eax, word [ebp - 0x10]
push eax
call fcn.0040b7a0
mov edx, dword [0x4f2afc]
lea ecx, [esi + 0x4b8]
movzx eax, byte [edx]
mov byte [ebp - 0x10], al
movzx eax, byte [edx + 1]
mov byte [ebp - 0xf], al
lea eax, [edx + 2]
mov dword [0x4f2afc], eax
movzx eax, word [ebp - 0x10]
push eax
call fcn.0040b7a0
mov edx, dword [0x4f2afc]
lea ecx, [esi + 0x4e0]
movzx eax, byte [edx]
mov byte [ebp - 0x10], al
movzx eax, byte [edx + 1]
mov byte [ebp - 0xf], al
lea eax, [edx + 2]
mov dword [0x4f2afc], eax
movzx eax, word [ebp - 0x10]
push eax
call fcn.0040b7a0
mov edx, dword [0x4f2afc]
lea ecx, [esi + 0x508]
movzx eax, byte [edx]
mov byte [ebp - 0x10], al
movzx eax, byte [edx + 1]
mov byte [ebp - 0xf], al
lea eax, [edx + 2]
mov dword [0x4f2afc], eax
movzx eax, word [ebp - 0x10]
push eax
call fcn.0040b7a0
mov edx, dword [0x4f2afc]
lea ecx, [esi + 0x530]
movzx eax, byte [edx]
mov byte [ebp - 0x10], al
movzx eax, byte [edx + 1]
mov byte [ebp - 0xf], al
lea eax, [edx + 2]
mov dword [0x4f2afc], eax
movzx eax, word [ebp - 0x10]
push eax
call fcn.0040b7a0
mov edx, dword [0x4f2afc]
lea ecx, [esi + 0x558]
movzx eax, byte [edx]
mov byte [ebp - 0x10], al
movzx eax, byte [edx + 1]
mov byte [ebp - 0xf], al
lea eax, [edx + 2]
mov dword [0x4f2afc], eax
movzx eax, word [ebp - 0x10]
push eax
call fcn.0040b7a0
mov edx, dword [0x4f2afc]
lea ecx, [esi + 0x580]
movzx eax, byte [edx]
mov byte [ebp - 0x10], al
movzx eax, byte [edx + 1]
mov byte [ebp - 0xf], al
lea eax, [edx + 2]
mov dword [0x4f2afc], eax
movzx eax, word [ebp - 0x10]
push eax
call fcn.0040b7a0
mov edx, dword [0x4f2afc]
lea ecx, [esi + 0x5a8]
movzx eax, byte [edx]
mov byte [ebp - 0x10], al
movzx eax, byte [edx + 1]
mov byte [ebp - 0xf], al
lea eax, [edx + 2]
mov dword [0x4f2afc], eax
movzx eax, word [ebp - 0x10]
push eax
call fcn.0040b7a0
mov edx, dword [0x4f2afc]
lea ecx, [esi + 0x5d0]
movzx eax, byte [edx]
mov byte [ebp - 0x10], al
movzx eax, byte [edx + 1]
mov byte [ebp - 0xf], al
lea eax, [edx + 2]
mov dword [0x4f2afc], eax
movzx eax, word [ebp - 0x10]
push eax
call fcn.0040b7a0
mov edx, dword [0x4f2afc]
lea ecx, [esi + 0x5f8]
movzx eax, byte [edx]
mov byte [ebp - 0x10], al
movzx eax, byte [edx + 1]
mov byte [ebp - 0xf], al
lea eax, [edx + 2]
mov dword [0x4f2afc], eax
movzx eax, word [ebp - 0x10]
push eax
call fcn.0040b7a0
mov edx, dword [0x4f2afc]
lea ecx, [esi + 0x620]
movzx eax, byte [edx]
mov byte [ebp - 0x10], al
movzx eax, byte [edx + 1]
mov byte [ebp - 0xf], al
lea eax, [edx + 2]
mov dword [0x4f2afc], eax
movzx eax, word [ebp - 0x10]
push eax
call fcn.0040b7a0
mov edx, dword [0x4f2afc]
lea ecx, [esi + 0x648]
movzx eax, byte [edx]
mov byte [ebp - 0x10], al
movzx eax, byte [edx + 1]
mov byte [ebp - 0xf], al
lea eax, [edx + 2]
mov dword [0x4f2afc], eax
movzx eax, word [ebp - 0x10]
push eax
call fcn.0040b7a0
mov edx, dword [0x4f2afc]
lea ecx, [esi + 0x670]
movzx eax, byte [edx]
mov byte [ebp - 0x10], al
movzx eax, byte [edx + 1]
mov byte [ebp - 0xf], al
lea eax, [edx + 2]
mov dword [0x4f2afc], eax
movzx eax, word [ebp - 0x10]
push eax
call fcn.0040b7a0
mov edx, dword [0x4f2afc]
lea ecx, [esi + 0x698]
movzx eax, byte [edx]
mov byte [ebp - 0x10], al
movzx eax, byte [edx + 1]
mov byte [ebp - 0xf], al
lea eax, [edx + 2]
mov dword [0x4f2afc], eax
movzx eax, word [ebp - 0x10]
push eax
call fcn.0040b7a0
mov edx, dword [0x4f2afc]
lea ecx, [esi + 0x6c0]
movzx eax, byte [edx]
mov byte [ebp - 0x10], al
movzx eax, byte [edx + 1]
mov byte [ebp - 0xf], al
lea eax, [edx + 2]
mov dword [0x4f2afc], eax
movzx eax, word [ebp - 0x10]
push eax
call fcn.0040b7a0
mov edx, dword [0x4f2afc]
lea ecx, [esi + 0x6e8]
movzx eax, byte [edx]
mov byte [ebp - 0x10], al
movzx eax, byte [edx + 1]
mov byte [ebp - 0xf], al
lea eax, [edx + 2]
mov dword [0x4f2afc], eax
movzx eax, word [ebp - 0x10]
push eax
call fcn.0040b7a0
mov edx, dword [0x4f2afc]
lea ecx, [esi + 0x710]
movzx eax, byte [edx]
mov byte [ebp - 0x10], al
movzx eax, byte [edx + 1]
mov byte [ebp - 0xf], al
lea eax, [edx + 2]
mov dword [0x4f2afc], eax
movzx eax, word [ebp - 0x10]
push eax
call fcn.0040b7a0
mov edx, dword [0x4f2afc]
lea ecx, [esi + 0x738]
movzx eax, byte [edx]
mov byte [ebp - 0x10], al
movzx eax, byte [edx + 1]
mov byte [ebp - 0xf], al
lea eax, [edx + 2]
mov dword [0x4f2afc], eax
movzx eax, word [ebp - 0x10]
push eax
call fcn.0040b7a0
mov edx, dword [0x4f2afc]
lea ecx, [esi + 0x760]
movzx eax, byte [edx]
mov byte [ebp - 0x10], al
movzx eax, byte [edx + 1]
mov byte [ebp - 0xf], al
lea eax, [edx + 2]
mov dword [0x4f2afc], eax
movzx eax, word [ebp - 0x10]
push eax
call fcn.0040b7a0
mov edx, dword [0x4f2afc]
lea ecx, [esi + 0x238]
movzx eax, byte [edx]
mov byte [ebp - 0x10], al
movzx eax, byte [edx + 1]
mov byte [ebp - 0xf], al
lea eax, [edx + 2]
mov dword [0x4f2afc], eax
movzx eax, word [ebp - 0x10]
push eax
call fcn.0040b7a0
mov ecx, dword [0x4f2afc]
movzx eax, word [0x4f0f24]
mov bl, byte [ecx]
inc ecx
mov dword [0x4f2afc], ecx
sub ecx, 0x4f1af8
cmp ecx, eax
jne 0x4134b3
mov eax, dword [ebp - 0x18]
mov dword [ebp - 4], 1
test eax, eax
je 0x4134ac
cmp byte [ebp - 0x14], 0
je 0x4134ac
push eax
call fcn.0046c752
add esp, 4
call sub.KERNEL32.dll_SwitchToThread
mov al, bl
shr bl, 1
and al, 1
and bl, 1
mov byte [esi + 0x7b0], al
mov byte [esi + 0x7b1], bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 1
call fcn.00415320
mov ecx, 0x4f0f18
call fcn.00432bb0
push str.Communication_error_on_USB_link__packet_size_is_wrong_
push 7
mov ecx, 0x4ed078
call fcn.00431760
push 0x4e3924
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 0xffffffff
push eax
call fcn.0046fc9f
int3