Function at 0x419645
Capabilities:
Packed with generic packer

Disassembly:
mov dl, dl
push ebp
mov ebp, esp
mov ecx, ecx
mov eax, dword [ebp + 0x10]
mov ecx, eax
dec eax
cmp ax, ax
test ecx, ecx
jb 0x429888
je 0x41969b
jne 0x419667
test byte [edi], dl
mov ecx, dword [ebp + 0xc]
push esi
lea esi, [eax + 1]
mov eax, dword [ebp + 8]
mov bl, bl
mov dl, byte [ecx]
mov byte [eax], dl
inc eax
inc ecx
mov bp, bp
dec esi
jne 0x419672
je 0x41968a
nop
cpuid
ret 0xc6
mov byte [eax], 0
shr dl, 0x40
pop esi
pop ebp
ret
mov eax, dword [ebp + 8]
mov byte [eax], 0
pop ebp
ret
call edi
test eax, eax
jb 0x452ca9
mov dword [ebp - 0x18], eax
je 0x430918
shr ebp, 0x40
jne 0x419750
and ecx, dword [edi + 0x3fd5687c]
push ebx
add byte [ebx + 0x66], dl
shl ebx, 0x20
push str.SetupDiEnumDeviceInterfaces
push ebx
shl bx, 0x20
call edi
test eax, eax
jb 0x4510d1
mov dword [ebp - 0x1c], eax
je 0x430918
jne 0x419772
pop esp
and al, 0x76
push str.SetupDiGetDeviceInterfaceDetailA
mov cx, cx
jmp 0x41977b
push ebx
call edi
test eax, eax
jb 0x4510da
mov dword [ebp - 0x14], eax
je 0x430918
jne 0x419796
add byte [eax + 0x1568145f], dh
inc eax
push ebx
add byte [esi - 0x1d792c], al
shl dh, 0x20
push str.SetupDiDestroyDeviceInfoList
xchg ah, dl
xchg dl, ah
push ebx
shl dh, 0x20
call edi
test eax, eax
jb 0x44a51d
shl edi, 0x20
mov dword [ebp - 0x10], eax
je 0x430918
mov bh, bh
jne 0x4197c1
movsb byte es:[edi], byte [esi]
pop ebx
add byte [eax], ch
adc al, 0
add byte [edx], ch
push 0x1400
push 0
push 0x58af20
call fcn.0041e3ef
add esp, 0xc
shr cx, 0x40
push 0x12
push 0
push 0
shr dh, 0x40
push 0x51c010
call dword [ebp - 0x18]
mov dx, dx
mov edi, eax
add edi, 0
jno 0x4197f9
sbb eax, 0x38810fb3
pop es
add al, byte [eax]
jno 0x439f37
invalid
inc ecx
add bl, al
call 0x4462ac
clc
test eax, eax
jb 0x44f968
push ebx
pop ebx
jne 0x4520ed
je 0x420e2f
fist dword [eax]
xchg ecx, eax
jbe 0x420db8
mov ch, ch
in eax, dx
mov eax, dword [ebp + 8]
push 0x10
push eax
xchg cx, di
xchg di, cx
jno 0x42d270
jo 0x420e4a
nop
cpuid
ret 0x800f
jo 0x42d270
xor al, 0x32
test eax, eax
jb 0x42dcfb
jne 0x4520f7
shl di, 0x20
je 0x4256e4
jbe 0x4256e0
cmp byte [esi - 0x17], bl
sub dh, byte [edi + 0x5834ffff]
push eax
jmp 0x4256ed
jmp 0x420e13
push esi
shr bh, 0x40
call fcn.004172fe
mov cx, word [edi + 0x18]
add esp, 0x40
push ecx
jmp 0x425704
push esi
call fcn.0042a5f1
add esp, 8
jmp fcn.0041da69
jmp fcn.00417c72
add eax, 0xf7ffeb85
jmp 0x4256cc
call fcn.004343d5
add esp, 8
and eax, 0xffff
jb 0x44f975
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
invalid
jmp 0x430919
push ebx
shr di, 0x40
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
push esi
pop esi
ret
idiv bl
mov dword [ebp + 0x30], eax
shl bh, 0x20
jmp dword [esi]
jne 0x428a83
je 0x43215e
mov edx, ss
je 0x428a83
invalid
cmp edi, 0xffffffff
jmp 0x43d22a
xchg ebp, eax
retf 0xff88
je 0x430918
jne 0x43d235
push ebx
mov dl, 0x44
mov dword [ebp - 0x3c], 0x1c
mov dword [ebp - 8], 0
xchg cl, ch
xchg ch, cl
mov dword [ebp - 0x18], 0x58af20
shr ebp, 0x40
clc
mov eax, dword [ebp + 0x30]
div bl
mov dword [ebp + 0x30], eax
jmp dword [esi]
outsd dx, dword [esi]
jge 0x4422db
inc ebp
xor byte [ebx - 0x899c7ab], cl
mov dword [ebp + 0x30], eax
shr si, 0x40
mov dword [ebp + 0x38], edx
jmp dword [esi]
invalid
test dword [ebp + 0xf], 0x1c2f89
add cl, bl
push ebp
fst dword [ebp - 0x15]
mov ebp, 0x8bd289bf
inc ebp
xor byte [edi], cl
mov byte [ecx - 0x26], ch
invalid
push ds
inc edx
jns 0x431a2d
adc byte [eax + edx*8 + 0xe00440f], 0
add byte [eax], al
xor al, 0
xchg esp, eax
ror byte [edi], 1
inc esp
add byte [esi], cl
add byte [eax], al
add byte [eax + eax], dh
add byte [eax], al
adc al, 0x87
inc edx
add byte [edx], al
add byte [eax], al
add byte [eax], dh
add byte [eax], al
add byte [edi + 0x44], bh
inc ecx
add byte [ebp + 0x3000435d], ch
add byte [eax], al
add byte [eax + eax], dh
add byte [eax], al
mov ah, 0x59
inc edx
add dh, al
push ecx
inc esp
add byte [ebp - 0x47], al
inc ebx
add byte [eax + eax], cl
add byte [eax], al
xor byte [eax], al
add byte [eax], al
jg 0x444054
inc ecx
add byte [ecx + edi*4 + 0x6f0041], al
add byte [eax], al
xor al, 0
add byte [eax], al
mov ebp, dword [esi + 0x41000043]
add byte [eax + 0x30], al
add byte [ecx], al
add byte [eax], al
jne 0x443fd1
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], cl
add byte [eax], al
pop edi
imul eax, dword [edx], 0x34
fadd qword [ecx]
aas
push ebx
add byte [eax], al
xor byte [eax], al
add byte [eax], al
clc
insd dword es:[edi], dx
inc ebx
add byte [edi], bh
push ebx
add byte [eax], al
xor byte [eax], al
add byte [eax], al
pop ebx
inc esp
add byte [eax], cl
add byte [eax], al
xor al, 0
add byte [eax], al
mov ah, 0x59
inc edx
add bh, bl
push ecx
inc esp
add ch, cl
push es
inc edx
add byte [eax], cl
add byte [eax], al
ja 0x444001
inc esp
add byte [eax], ah
add byte [eax], al
add byte [eax + eax], bh
add byte [eax], al
mov ebp, dword [esi + 0x41000043]
add byte [eax], al
xor al, 0
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], ah
cmp byte [eax], 0
add byte [eax], al
add byte [ecx], ah
add byte [eax], al
insb byte es:[edi], dx
add byte [eax], al
add byte [edi + 0x6b], bl
inc edx
add ch, cl
push es
inc edx
add byte [eax + eax], al
add byte [edx + ecx*2], ah
inc edx
add dl, bl
dec edi
sub esp, dword [edx + 0x41]
add byte [eax], dh
add byte [eax], al
add byte [eax], dh
add byte [eax], al
add byte [ecx + ebx*2 + 0x51fa0042], dh
inc esp
add byte [esi + 0x4b], dh
inc edx
add byte [eax + 0x41], dl
inc esp
add byte [edx + 0x7f], bh
inc ebx
add dl, bl
inc eax
inc esp
add bh, bh
xlatb
or al, 0x42
add byte [eax], ah
add byte [eax], al
add byte [eax + eax], bh
add byte [eax], al
inc ebp
mov ecx, 0xc0043
add byte [eax], al
xor byte [eax], al
add byte [eax], al
mov ah, 0x88
inc esp
add byte [eax], cl
add byte [eax], al
dec eax
add byte [eax], al
add ch, cl
push es
inc edx
add byte [eax], cl
add byte [eax], al
mov ebp, dword [esi + 0x41000043]
add byte [eax], al
xor byte [eax], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], ah
cmp byte [eax], 0
add byte [eax], al
add byte [ecx], ah
add byte [eax], al
insb byte es:[edi], dx
add byte [eax], al
add byte [edi + 0x6b], bl
inc edx
add byte [esi - 0x2e], ch
inc ebx
add byte [eax + eax], cl
add byte [eax + eax], dh
add byte [eax], al
outsb dx, byte [esi]
rol byte [ebx], cl
xor al, 0
add byte [eax], al
dec esp
add byte [eax], al
add ch, cl
push es
inc edx
add byte [eax + eax], al
add byte [edx + ecx*2], ah
inc edx
add byte [esi + 0x4a], dh
cmp dl, dh
inc ecx
add byte [eax + eax], bh
add byte [eax], al
cmp al, 0
add byte [eax], al
loope 0x4441d0
inc edx
add ch, cl
in al, 0xbd
or dh, byte [eax]
add byte [eax], al
add byte [ebx + 0x380041ad], ah
add byte [eax], al
add byte [0xa3000000], bh
lodsd eax, dword [esi]
inc ecx
add byte [0x38000000], bh
add byte [eax], al
add ch, cl
push es
inc edx
add byte [eax], cl
add byte [eax], al
mov ebp, dword [esi + 0x41000043]
add byte [eax], al
xor byte [eax], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], ah
cmp byte [eax], 0
add byte [eax], al
add byte [ecx], ah
add byte [eax], al
insb byte es:[edi], dx
add byte [eax], al
add byte [edi + 0x6b], bl
inc edx
add byte [ebp - 0x47], al
inc ebx
add byte [eax + eax], cl
add byte [eax], al
xor byte [eax], al
add byte [eax], al
int 6
inc edx
add byte [eax + eax], al
add byte [edx + ecx*2], ah
inc edx
add byte [esi], cl
or byte [ebp - 0x63db9c], cl
lea esp, [esp - 0x64]
push ebp
lea ebp, [esp + 8]
mov dword [ebp + 0x3c], ebx
mov dword [ebp + 0x48], esi
mov dword [ebp + 0x4c], edi
pop dword [ebp + 0x44]
lea esi, [esp + 0x68]
lea edi, [esp + 4]
mov ecx, 4
or ecx, ecx
je 0x4441fa
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
dec ecx
jne 0x4441f1
mov dword [ebp + 0x40], esp
mov dword [esp], 0x44420f
mov esi, 0x44422d
jmp dword [esi]
push ebx
fcmovnb st(0), st(0)
loopne 0x44a542
xchg si, bp
xchg bp, si
mov ebp, ebp
mov eax, dword [esi + 4]
mov ebx, dword [esi + 8]
shl dh, 0x20
lea esi, [esi + 0xc]
and word [ebx], ax
jb 0x43ae82
jmp dword [esi]
inc ecx
push 0x43239a
ret
jne 0x432154
je 0x44c0f2
and bl, byte [0x5c840f37]
pushal
invalid
je 0x432154
xor al, 0x2c
push str.SetupDiGetClassDevsA
push ebx
jno 0x419735
mov di, di
jo 0x44c10e
add al, 0xb6
sub byte [edi], cl
and byte [ecx], 0xd6
cld
push dword [esi + ecx*8]
jo 0x419735
xor al, 0xce
xchg edx, eax
xchg edx, eax
mov eax, dword [0x40e8c12f]
js 0x442343
jns 0x44f978
adc edi, dword [eax - 0x3a76f0b4]
sub edi, edi
dec dword [ebx + 0x5d8b3855]
inc esp
jns 0x442343
mov edx, dword [ebp + 0x38]
mov ebx, dword [ebp + 0x44]
mov edi, dword [esi + 4]
mov edi, edi
lea ebx, [ebx]
lea esi, [esi + 8]
div word [ebx + edi]
mov dword [ebp + 0x30], eax
mov dword [ebp + 0x38], edx
jmp dword [esi]
call edi
mov ebx, eax
mov ecx, ebx
or ch, 0x80
jb 0x442373
push ecx
xchg cl, al
xchg al, cl
call edi
push esi
call fcn.00431364
add esp, 4
test eax, eax
jb 0x44237b
shr bp, 0x40
push 0
push 0
push 0x534738
je 0x44fcc3
mov esi, esi
jne 0x44fcab
dec esi
invalid
mov cl, cl
shr cl, 0x40
push 0x534742
push 0
push 0x53474e
jmp 0x44fcda
push str.HLW32Proc
mov di, di
push 0
push str.API_1LNM.DLL
push 0
call dword [0x534734]
jmp 0x44fcdb
push eax
call dword [0x534730]
push ebx
mov dword [ebp + 8], eax
call edi
mov ah, ah
mov eax, dword [ebp + 8]
test eax, eax
jb 0x443fb7
jne 0x44fd35
je 0x44fd02
cpuid
nop
ret
shr bl, 0x40
push 0x10
shr ebx, 0x40
push esi
call fcn.004343d5
add esp, 8
and eax, 0xffff
jb 0x443fc8
pop edi
pop esi
pop ebx
mov bp, bp
mov esp, ebp
mov dh, dh
pop ebp
mov cl, cl
ret
mov dword [0x53408d], 1
js 0x44ffa2
jns 0x44fd4a
push esp
fisttp word [edi]
mov dword [edx + 2], edx
add byte [eax], al
jns 0x44ffa2
fiadd dword [edx]
mov bl, 0xe
ljmp 0xfffd
xor eax, 0x89665fd2
call [esi + 0x5b]
mov dword [0x534089], 1
mov eax, dword [0x53408d]
mov esi, dword [ebp + 8]
test eax, eax
jb 0x44234d
jne 0x44ffa4
je 0x452112
in al, 0x9e
pushfd
push 0x53473e
push 0
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jb 0x442364
mov dword [0x534738], eax
shr dx, 0x40
jne 0x44fd35
je 0x45213b
mov dl, byte [ebp - 0x2bc2746b]
rcl byte [ecx]
mov edi, dword [sym.imp.KERNEL32.dll_SetErrorMode]
push 0x8000
jne 0x44fc67
je 0x452151
pop edx
dec edi
je 0x44fc67
je 0x44fc67
fdiv dword [ecx + 0xcc481]
add byte [eax], al
jne 0x44c0e7
mov di, di
xchg bh, al
xchg al, bh
je 0x452171
rcl dword [edx + 0x7f], cl
je 0x44c0e7
add eax, 0x5d5e5f7c
mov dh, dh
ret
invalid