Function at 0x4307d5
Capabilities:
Packed with generic packer

Disassembly:
push esi
ja 0x4470d0
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 0x440a18
je 0x43082b
jne 0x4307f7
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 0x430802
je 0x43081a
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 0x45d43c
test eax, eax
jb 0x444e8b
jne 0x469287
shl di, 0x20
je 0x43c874
jbe 0x43c870
cmp byte [esi - 0x17], bl
sub dh, byte [edi + 0x5834ffff]
jmp 0x437fa3
push eax
jmp 0x43c87d
push esi
shr bh, 0x40
call fcn.0042e48e
mov cx, word [edi + 0x18]
add esp, 0x40
push ecx
jmp 0x43c894
push esi
call fcn.00441781
add esp, 8
jmp fcn.00434bf9
mov dword [0x5d20e9], eax
shl dh, 0x20
jmp fcn.0042ee02
add eax, 0xf7ffeb85
jmp 0x43c85c
invalid
shl edi, 0x20
lea esi, [esi + 8]
div dword [ebx + edi]
mov dword [ebp + 0x30], eax
mov dword [ebp + 0x38], edx
xchg cl, bh
xchg bh, cl
shr bh, 0x40
jmp dword [esi]
mov al, cl
shr al, 4
cmc
cmp al, 9
jbe 0x445cf8
shl al, 0x20
ja 0x445cef
inc ebx
pop ds
add al, 0x37
jmp 0x445cfc
cmp ah, ah
add al, 0x30
and cl, 0xf
jb 0x43a5f8
mov byte [edx - 1], al
cmp cl, 9
jbe 0x445d21
ja 0x445d17
invalid
add cl, 0x37
jmp 0x445d24
add cl, 0x30
mov byte [edx], cl
inc esi
add edx, 2
cmp esi, 8
jb 0x459468
jae 0x445d3f
nop
cpuid
ret 0xf631
xor esi, esi
jb 0x434d3b
lea edx, [edi + 0x21]
shl bx, 0x20
mov cl, byte [ebp + esi - 0x10]
mov al, cl
shr al, 4
cmp al, 9
jbe 0x463826
ja 0x445d65
cpuid
ret
add al, 0x37
js 0x46381f
jns 0x445d71
push esi
jle 0x445d81
jns 0x46381f
mov dword [eax - 0x26fffe26], ebp
loop 0x445dd7
invalid
js 0x445dbf
add byte [eax + eax], al
add byte [edi + 0x7e], ah
inc ebx
jle 0x445dc7
add byte [eax], ah
add byte [eax], al
add byte [eax], bh
add byte [eax], al
add byte [edi*4 - 0x1aedffbd], al
inc edx
add byte [edx], cl
int1
inc esp
add byte [edi - 0x3affbba3], bl
imul ecx, dword [edx], 0x120044f1
in eax, 0x42
add byte [0x44b16988], dh
add byte [edx], al
add byte [eax], al
add byte [eax], dh
add byte [eax], al
add byte [edi + 0x48004410], bl
add byte [eax], al
add byte [ebp + 0x78], bl
inc ebx
add byte [eax], cl
add byte [eax], al
jle 0x445e0b
inc ebx
add byte [eax], ah
add byte [eax], al
add byte [eax + eax], cl
add byte [esi], al
mov ebp, 0x3e160043
inc ebp
add dl, cl
inc edi
inc ebx
add byte [eax], dh
add byte [eax], al
add byte [eax], dh
add byte [eax], al
add byte [edx], cl
int1
inc esp
add cl, dh
pop ebp
inc esp
add bh, bh
cpuid
ret
add byte [eax], al
mov esp, 0
adc byte [eax], al
add byte [eax], al
inc eax
add byte [eax], al
xor al, 0
add byte [eax], al
cwde
mov al, byte [0xdf880045]
inc esp
add byte [ecx], dl
add byte [eax], al
add byte [eax + eax], dh
add byte [eax], al
lahf
adc byte [eax + eax + 0x38], al
add byte [eax], al
xor cx, cx
idiv bl
mov dword [ebp + 0x30], eax
shl bh, 0x20
jmp dword [esi]
jne 0x43fc13
je 0x4492ee
mov edx, ss
je 0x43fc13
invalid
mov cl, byte [ebp + esi - 8]
clc
jno 0x445cda
jo 0x459478
nop
cpuid
ret
jo 0x445cda
fcmovbe st(0), st(7)
mov ebx, dword [esi + 8]
lea esi, [esi + 0xc]
sbb dword [ebp + ebx], eax
jmp dword [esi]
mov eax, dword [ebp + 0x30]
div bl
mov dword [ebp + 0x30], eax
jmp dword [esi]
outsd dx, dword [esi]
jge 0x45946b
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
jmp 0x45950e
fst dword [ebp - 0x15]
push edi
xchg di, dx
xchg dx, di
call esi
test dl, 0x2d
test eax, eax
jb 0x45c3f1
ja 0x469f49
jbe 0x45952e
retf 0x3a06
jbe 0x469f49
xor eax, 0x43cda015
add byte [ecx], dh
push ecx
add byte [eax], al
xor byte [eax], al
add byte [eax], al
inc esp
retf
mov ebp, 0x8bd289bf
inc ebp
xor byte [edi], cl
mov byte [ecx - 0x26], ch
invalid
push ds
inc edx
jns 0x448bbd
adc byte [eax + 0xe004581], 0
add byte [eax], al
xor al, 0
add byte [eax], al
movsb byte es:[edi], byte [esi]
clc
inc ebx
add byte [edx], al
add byte [eax], al
add byte [eax], dh
add byte [eax], al
add byte [edi], cl
mov dh, 0x42
add byte [0x300044cf], bh
add byte [eax], al
add byte [eax + eax], dh
add byte [eax], al
inc esp
retf
in al, 0xe8
jl 0x45fa24
jge 0x45c3ff
cpuid
ret
xchg dl, cl
xchg cl, dl
ja 0x469b9e
jbe 0x45c40d
adc al, 0x25
jbe 0x469b9e
or byte [eax], 0x13
inc ebp
add bh, bh
add byte [eax], al
add byte [eax], bh
add byte [eax], al
add byte [ebx + ecx*8 + 0x43], al
add byte [ecx], dh
movsb byte es:[edi], byte [esi]
inc esp
add bl, cl
js 0x45c46f
add byte [eax], al
add byte [eax], al
xor byte [eax], al
add byte [eax], al
sbb esp, dword [eax]
inc ebp
add byte [eax], al
inc eax
add byte [eax], al
xor al, 0
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ecx], ah
or byte [eax], 0
add byte [ecx], al
popal
add byte [eax + 0x38], al
add byte [ecx], ah
add byte [eax], al
push cs
add byte [eax], al
add byte [eax + 0x240045a0], bl
sub eax, dword [ebp]
jo 0x45c469
inc ebx
add byte [ebx], dh
xor al, 0xa3
jne 0x4492e4
je 0x463282
and bl, byte [0x5c840f37]
pushal
invalid
je 0x4492e4
xor al, 0x2c
push str.SetupDiGetClassDevsA
push ebx
jno 0x4308c5
mov di, di
jo 0x46329e
add al, 0xb6
sub byte [edi], cl
and byte [ecx], 0xd6
cld
push dword [esi + ecx*8]
jo 0x4308c5
xor al, 0xce
xchg edx, eax
xchg edx, eax
mov eax, dword [ebp + 0x10]
test eax, eax
jb 0x434d94
je 0x465001
jne 0x4632bf
hlt
jno 0x42f16a
jo 0x4632ca
retf
jo 0x42f16a
invalid
jmp 0x42c765
or ecx, ecx
jae 0x46382e
nop
cpuid
ret
jae 0x42c763
add eax, 0xb7810fb1
sbb bh, dh
push dword [eax + 4]
xor byte [eax + 0x36], bl
stosd dword es:[edi], eax
jo 0x4452f3
and eax, 0xf6ffeb17
call fcn.0046413a
add esp, 0x30
jmp fcn.00434bf9
mov eax, dword [0x40e8c12f]
js 0x4594d3
jns 0x466b08
adc edi, dword [eax - 0x3a76f0b4]
sub edi, edi
dec dword [ebx + 0x5d8b3855]
inc esp
jns 0x4594d3
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 0x459503
push ecx
xchg cl, al
xchg al, cl
call edi
push esi
call fcn.004484f4
add esp, 4
test eax, eax
jb 0x45950b
shr bp, 0x40
push 0
push 0
push 0x5d27b8
je 0x466e53
mov esi, esi
jne 0x466e3b
dec esi
invalid
mov cl, cl
shr cl, 0x40
push 0x5d27c2
push 0
push 0x5d27ce
jmp 0x466e6a
push str.HLW32Proc
mov di, di
push 0
push str.API_1LNM.DLL
push 0
call dword [0x5d27b4]
jmp 0x466e6b
push eax
call dword [0x5d27b0]
push ebx
mov dword [ebp + 8], eax
call edi
mov ah, ah
mov eax, dword [ebp + 8]
test eax, eax
jb 0x45b147
jne 0x466ec5
je 0x466e92
cpuid
nop
ret
shr bl, 0x40
push 0x10
shr ebx, 0x40
push esi
call fcn.0044b565
add esp, 8
and eax, 0xffff
jb 0x45b158
pop edi
pop esi
pop ebx
mov bp, bp
mov esp, ebp
mov dh, dh
pop ebp
mov cl, cl
ret
mov dword [0x5d210d], 1
js 0x467132
jns 0x466eda
push esp
fisttp word [edi]
mov dword [edx + 2], edx
add byte [eax], al
jns 0x467132
fiadd dword [edx]
mov esi, esi
mov bl, bl
push esi
call fcn.00454819
add bl, 0xab
sub bl, 0xab
add esp, 4
ja 0x44a508
jbe 0x467152
jbe 0x44a508
jbe 0x44a508
mov eax, dword [0x5d210d]
mov esi, dword [ebp + 8]
test eax, eax
jb 0x4594dd
jne 0x467134
je 0x4692a2
in al, 0x9e
pushfd
push 0x5d27be
push 0
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jb 0x4594f4
mov dword [0x5d27b8], eax
shr dx, 0x40
jne 0x466ec5
je 0x4692cb
mov dl, byte [ebp + 0x503d8b95]
push es
arpl word [eax], ax
mov edi, dword [sym.imp.KERNEL32.dll_SetErrorMode]
push 0x8000
jne 0x466df7
je 0x4692e1
pop edx
dec edi
je 0x466df7
je 0x466df7
fdiv dword [ecx + 0xcc481]
add byte [eax], al
jne 0x463277
mov di, di
xchg bh, al
xchg al, bh
je 0x469301
rcl dword [edx + 0x7f], cl
je 0x463277
add eax, 0x5d5e5f7c
mov dh, dh
ret
jmp dword [esi]
mov dword [0x5d20e5], eax
je 0x454abd
jne 0x469f59
inc esp
rcr byte [eax + ebp*2], 0x4b
pop ds
pop ebp
add bl, ch
push str.RegQueryValueExA
jmp 0x469f5f
push edi
call esi
test eax, eax
jb 0x45c40b
jne 0x43e522
je 0x469f75
mov dh, 0x20
je 0x43e522
fldcw word [eax]
je 0x447d75
jne 0x469f89
cpuid
ret
cmp bl, 0x3e
je 0x447d75
jne 0x469f98
nop
cpuid
ret 0xfb80
cmp bl, 0x3f
je 0x447d75
jne 0x469fa7
add dl, byte [ebp - 0x7f066c67]
sti
enter 0xffffffffffff820f, 0xffffffffffffff8d
stosd dword es:[edi], eax
std
push dword [ebx + 4]
stc
cmp bl, 0xc8
jb 0x444b3e
jae 0x469fb7
nop
cpuid
ret
cmp esi, esi
cmp bl, 0xff
mov ebx, ebx
ja 0x444b3e
jbe 0x469fca
ljmp 0x4d4e:0x804ba0c6
or byte [esi + 0x4d], 1
jb 0x42bb16
mov eax, ebx
and eax, 0xff
jb 0x42bb1e
pop esi
sub eax, 0xc8
pop ebx
shr bp, 0x40
pop ebp
ret