Function at 0x42738c
Capabilities:
Get disk information
Log keystrokes via polling
Parse credit card information

Disassembly:
mov eax, 0x4e4e80
call fcn.004afe60
sub esp, 0x110
mov eax, dword [ebp + 0xc]
and dword [ebp - 0x74], 0
and eax, 0x10000
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp + 0xc]
and eax, 0x20000
mov dword [ebp - 0x54], ecx
xor ecx, ecx
mov dword [ebp - 0xcc], eax
movzx eax, byte [ebp + 0xc]
test eax, eax
sete cl
push ebx
xor ebx, ebx
cmp eax, 1
sete bl
push esi
push edi
mov dword [ebp - 0x84], ecx
xor ecx, ecx
cmp eax, 2
sete cl
cmp dword [ebp - 0x84], 0
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x78], ecx
jne 0x4273fa
test ebx, ebx
mov byte [ebp - 0x39], 0
je 0x4273fe
mov byte [ebp - 0x39], 1
mov esi, dword [ebp + 8]
and dword [ebp - 0x48], 0
push 1
lea eax, [ebp + 8]
push eax
add esi, 0xfffffffe
push 0x4f1c14
mov dword [ebp - 0xa8], esi
mov dword [ebp - 0x5c], esi
call fcn.00448570
add esp, 0xc
cmp dword [ebp - 0x84], 0
push 0x24
pop edx
movzx eax, al
push 0x7c
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0x70], 0x100001
mov dword [ebp - 0x64], 0x100002
mov dword [ebp - 0x58], 0x100003
pop edi
jne 0x427466
test ebx, ebx
je 0x42745d
mov dword [ebp - 0x70], edi
mov dword [ebp - 0x58], edx
jmp 0x42746c
cmp dword [ebp - 0x78], 0
je 0x427473
mov dword [ebp - 0x74], edi
mov dword [ebp - 0x70], edx
mov dword [ebp - 0x58], edi
mov dword [ebp - 0x64], 0x23
mov eax, dword [ebp + 8]
mov cx, word [eax]
cmp cx, dx
mov byte [ebp - 0x3a], 0
je 0x42748d
cmp cx, 0x23
je 0x42748d
cmp cx, di
jne 0x42749b
movzx ecx, cx
inc eax
inc eax
mov dword [ebp - 0x74], ecx
mov byte [ebp - 0x3a], cl
mov dword [ebp + 8], eax
mov dword [ebp - 0x1c], eax
mov ax, word [eax]
cmp ax, 0x5b
sete byte [ebp - 0x2d]
cmp byte [ebp - 0x2d], 0
je 0x4274f1
push 2
pop edx
add dword [ebp - 0x1c], edx
mov word [esi], ax
add esi, 2
xor ecx, ecx
jmp 0x4274e3
mov eax, ecx
call fcn.0041d35d
test al, al
je 0x4274cf
add dword [ebp - 0x1c], edx
jmp 0x4274e6
cmp cx, 0x5b
je 0x4274db
cmp cx, 0x28
jne 0x4274f1
mov word [esi], cx
add esi, edx
add dword [ebp - 0x1c], edx
mov dword [ebp - 0x5c], esi
mov eax, dword [ebp - 0x1c]
mov cx, word [eax]
test cx, cx
jne 0x4274bf
mov eax, dword [ebp - 0x1c]
mov dword [ebp + 8], eax
push 1
lea eax, [ebp + 8]
push eax
push 0x4f1c14
call fcn.00448570
mov edx, dword [ebp + 8]
xor ebx, ebx
movzx eax, al
mov edi, edx
add esp, 0xc
mov dword [ebp - 0xac], eax
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x40], edi
xor esi, esi
mov dword [ebp - 0x34], ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x50], ebx
cmp byte [ebp - 0x2d], 0
mov byte [ebp - 4], 2
mov byte [ebp + 0xf], 0
je 0x427714
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x4c], eax
xor eax, eax
mov ax, word [edx]
xor bl, bl
cmp ax, 0x22
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x38], edx
mov byte [ebp - 0xd], 0
je 0x427587
cmp ax, 0x27
je 0x427587
test ax, ax
je 0x4275c0
push eax
call fcn.00422795
add esp, 4
test al, al
jne 0x427582
and dword [ebp - 0x4c], 0
lea eax, [edx + 2]
jmp 0x4275bd
xor eax, eax
mov ax, word [edx + 2]
push eax
call fcn.00422795
add esp, 4
test al, al
jne 0x42759e
and dword [ebp - 0x4c], 0
push 0xc1
lea eax, [ebp - 0x38]
push 0
push eax
call fcn.0042723f
mov edx, dword [ebp + 8]
add esp, 0xc
mov byte [ebp - 0xd], 1
mov bl, 1
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x40], eax
lea ecx, [ebp - 0x40]
call fcn.0041d38d
mov edi, dword [ebp - 0x40]
xor ecx, ecx
jmp 0x427660
mov eax, ecx
call fcn.0041d35d
test al, al
je 0x4275f7
cmp bl, 1
jg 0x42766c
lea ecx, [ebp - 0x40]
inc bl
call fcn.0041d38d
mov edi, dword [ebp - 0x40]
dec edi
dec edi
jmp 0x42765b
cmp cx, 0x3e
je 0x4276c9
cmp cx, 0x3c
je 0x4276c9
cmp cx, 0x3d
je 0x4276c9
cmp cx, 0x21
je 0x4276c9
cmp dword [ebp - 0x4c], 0
je 0x427657
cmp dword [ebp - 0x68], 0
je 0x427657
cmp cx, 0x26
je 0x42763d
cmp cx, 0x7c
je 0x42763d
cmp cx, 0x40
jne 0x427657
mov ax, word [edi + 2]
call fcn.0041d35d
test al, al
je 0x427657
mov ax, word [edi - 2]
call fcn.0041d35d
test al, al
jne 0x4276ac
test bl, bl
jg 0x42766c
inc edi
inc edi
mov dword [ebp - 0x40], edi
mov cx, word [edi]
test cx, cx
jne 0x4275d2
cmp byte [ebp - 0xd], 0
jne 0x427701
push 0xc1
lea eax, [ebp - 0x38]
push 0
push eax
call fcn.0042723f
add esp, 0xc
cmp byte [ebp + 0xf], 0
mov dword [ebp - 0x1c], eax
je 0x4276fe
sub eax, edi
sar eax, 1
push eax
push edi
lea ecx, [ebp - 0x50]
call fcn.004463d0
mov esi, dword [ebp - 0x50]
and word [edi], 0
jmp 0x427752
lea eax, [edi + 2]
mov cx, word [eax]
cmp cx, word [edi]
jne 0x4276c3
and word [edi], 0
mov edi, eax
mov byte [ebp + 0xf], 5
jmp 0x4276cd
mov byte [ebp + 0xf], 3
jmp 0x4276cd
mov byte [ebp + 0xf], 1
cmp byte [ebp + 0xf], 1
lea ecx, [edi + 2]
mov dword [ebp - 0x38], ecx
jne 0x427676
mov ax, word [ecx]
cmp ax, 0x3e
je 0x4276f4
cmp ax, 0x3c
je 0x4276f4
cmp ax, 0x3d
je 0x4276f4
cmp ax, 0x21
jne 0x427676
inc ecx
inc ecx
mov dword [ebp - 0x38], ecx
jmp 0x427676
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x1c]
cmp word [eax], 0
je 0x427755
and word [eax], 0
add dword [ebp - 0x1c], 2
jmp 0x427752
xor eax, eax
mov ax, word [edx]
jmp 0x427738
cmp ax, 0x3e
je 0x42773f
cmp ax, 0x3c
je 0x42773f
cmp ax, 0x3d
je 0x42773f
cmp ax, 0x21
je 0x42773f
inc edi
inc edi
mov ax, word [edi]
cmp ax, bx
jne 0x42771b
jmp 0x427755
push edi
lea ecx, [ebp - 0x50]
mov byte [ebp + 0xf], 1
call fcn.004575a0
mov esi, dword [ebp - 0x50]
mov word [edi], bx
mov edx, dword [ebp + 8]
mov edi, dword [ebp - 0x54]
cmp byte [edi + 0x8a], 0
jne 0x42780b
cmp byte [edi + 0xb], 0
jne 0x42780b
push 1
xor ebx, ebx
push ebx
lea eax, [ebp - 0x34]
push eax
push edx
mov ecx, edi
call fcn.00453300
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0x34], ebx
push ebx
push ebx
lea ecx, [ebp - 0x34]
push ecx
push eax
mov ecx, edi
mov byte [ebp - 4], 3
call fcn.00451c30
cmp esi, ebx
je 0x4277fa
push 1
push ebx
lea eax, [ebp - 0x44]
push eax
push esi
mov ecx, edi
call fcn.00453300
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0x44], ebx
push ebx
push ebx
lea ecx, [ebp - 0x44]
push ecx
push eax
mov ecx, edi
mov byte [ebp - 4], 4
call fcn.00451c30
push dword [ebp - 0x34]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push dword [ebp - 0x44]
lea ecx, [ebp - 0x34]
mov edi, eax
call fcn.004462e0
mov eax, dword [ebp - 0x34]
lea ecx, [ebp - 0xb4]
lea esi, [eax + edi*2]
mov byte [ebp - 4], 3
call fcn.0043f290
lea ecx, [ebp - 0xb0]
mov byte [ebp - 4], 2
call fcn.0043f290
jmp 0x42784b
push 1
xor ebx, ebx
push ebx
lea eax, [ebp - 0x34]
push eax
push edx
mov ecx, edi
call fcn.00453300
cmp esi, ebx
je 0x42784b
push 1
push ebx
lea eax, [ebp - 0x44]
push eax
push esi
mov ecx, edi
call fcn.00453300
push dword [ebp - 0x34]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push dword [ebp - 0x44]
lea ecx, [ebp - 0x34]
mov edi, eax
call fcn.004462e0
mov eax, dword [ebp - 0x34]
lea esi, [eax + edi*2]
mov eax, dword [ebp - 0x34]
push eax
mov dword [ebp + 8], eax
call fcn.0041e7c0
pop ecx
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
cmp esi, ebx
mov edx, dword [ebp + 8]
lea eax, [edx + eax*2]
mov edi, esi
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x7c], edx
mov dword [ebp - 0x40], edi
jne 0x427889
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov edx, dword [ebp + 8]
lea edi, [edx + eax*2]
mov dword [ebp - 0x40], edi
cmp edi, ebx
mov eax, dword [ebp - 0x74]
mov ecx, edx
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x60], ebx
je 0x4278af
mov ax, word [edx]
jmp 0x4278a6
cmp ecx, edi
jae 0x4278af
inc ecx
inc ecx
mov ax, word [ecx]
call fcn.0041d35d
test al, al
je 0x42789d
sub ecx, edx
sar ecx, 1
cmp byte [ebp + 0xf], 0
mov dword [ebp - 0x38], ecx
jne 0x4278cf
cmp dword [ebp - 0x78], ebx
jne 0x4278cf
cmp dword [ebp - 0x68], ebx
je 0x427d62
jmp 0x42808d
cmp byte [ebp + 0xf], 1
mov dword [ebp - 0x2c], edi
jne 0x4278f3
lea eax, [edi + 2]
mov cx, word [eax]
cmp cx, 0x3d
je 0x4278f0
cmp word [edi], 0x3c
jne 0x4278f9
cmp cx, 0x3e
jne 0x4278f9
mov dword [ebp - 0x2c], eax
cmp byte [ebp + 0xf], 0
je 0x4278fd
add dword [ebp - 0x2c], 2
lea ecx, [ebp - 0x2c]
call fcn.0041d38d
cmp byte [ebp - 0x39], 0
je 0x4279b9
mov eax, dword [ebp - 0x2c]
cmp word [eax], 0x3f
jne 0x4279b9
add dword [ebp - 0x2c], 2
lea ecx, [ebp + 0x10]
mov byte [ebp - 0x1d], 1
call fcn.0041d38d
mov esi, dword [ebp - 0x70]
cmp dword [ebp - 0x74], esi
je 0x427950
movzx eax, word [edx]
cmp esi, eax
je 0x427945
cmp dword [ebp - 0x64], eax
je 0x427945
cmp dword [ebp - 0x58], eax
jne 0x427950
inc edx
inc edx
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x60], eax
mov dword [ebp + 8], edx
cmp dword [ebp - 0x78], ebx
je 0x427986
cmp byte [ebp - 0x3a], 0
jne 0x427986
mov eax, dword [ebp - 0x4c]
cmp eax, dword [ebp - 0x58]
je 0x427986
lea ecx, [ebp + 8]
call fcn.0041d38d
mov edx, dword [ebp + 8]
mov ax, word [edx]
cmp ax, 0x30
jb 0x42797d
cmp ax, 0x39
jbe 0x427986
cmp ax, 0x2e
je 0x427986
mov dword [ebp - 0x4c], ebx
cmp dword [ebp - 0x84], ebx
jne 0x42799b
cmp dword [ebp - 0x60], ebx
jne 0x42799b
cmp word [edx], 0x27
mov eax, esi
je 0x42799e
mov eax, dword [ebp - 0x4c]
cmp esi, eax
jne 0x427a56
lea ecx, [ebp + 0xc]
mov dword [ebp + 0xc], edx
call fcn.0041d38d
mov ebx, dword [ebp + 0xc]
lea ecx, [edi - 2]
jmp 0x4279d0
mov byte [ebp - 0x1d], 0
jmp 0x42792c
mov ax, word [ecx]
call fcn.0041d35d
test al, al
je 0x4279d4
dec ecx
dec ecx
cmp ecx, ebx
jae 0x4279c2
mov eax, dword [ebp - 0x2c]
sub ecx, ebx
inc ecx
inc ecx
sar ecx, 1
mov edi, ecx
lea ecx, [ebp + 0xc]
mov dword [ebp + 0xc], eax
call fcn.0041d38d
mov ecx, dword [ebp - 0x88]
mov edx, dword [ebp + 0xc]
add ecx, 0xfffffffe
jmp 0x427a06
mov ax, word [ecx]
call fcn.0041d35d
test al, al
je 0x427a0a
dec ecx
dec ecx
cmp ecx, edx
jae 0x4279f8
sub ecx, edx
inc ecx
inc ecx
sar ecx, 1
mov esi, ecx
cmp edi, esi
mov eax, edi
jle 0x427a1a
mov eax, esi
test eax, eax
jle 0x427a3c
cmp dword [ebp - 0xbc], 0
push eax
push edx
push ebx
je 0x427a32
call dword [sym.imp.SHLWAPI.dll_StrCmpNW]
jmp 0x427a38
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
jne 0x427a40
sub edi, esi
mov eax, edi
cdq
xor ecx, ecx
mov edi, eax
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], ecx
jmp 0x427e8f
cmp dword [ebp - 0x58], eax
jne 0x427b17
fldz
lea eax, [ebp - 0x80]
fstp qword [ebp - 0x80]
push eax
lea eax, [ebp + 8]
fldz
push eax
fstp qword [ebp - 0x8c]
call fcn.0044d4f0
lea eax, [ebp - 0x8c]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.0044d4f0
fld qword [ebp - 0x80]
add esp, 0x10
call fcn.004aedbc
fld qword [ebp - 0x8c]
mov edi, eax
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x24], edx
call fcn.004aedbc
cmp byte [ebp + 0xf], 1
mov ecx, eax
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], edx
jg 0x427e8f
fild qword [ebp - 0x28]
fld qword [ebp - 0x80]
fucompp
fnstsw ax
test ah, 0x44
jp 0x427ade
fild qword [ebp - 0x18]
fld qword [ebp - 0x8c]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x427e8f
fld qword [ebp - 0x80]
fcomp qword [ebp - 0x8c]
fnstsw ax
test ah, 0x41
jne 0x427af6
xor eax, eax
inc eax
jmp 0x427a40
fld qword [ebp - 0x8c]
fld qword [ebp - 0x80]
fucompp
fnstsw ax
test ah, 0x44
jp 0x427b0f
xor eax, eax
jmp 0x427a40
or eax, 0xffffffff
jmp 0x427a40
cmp dword [ebp - 0x64], eax
jne 0x427b3e
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp + 8]
push eax
call fcn.0044d230
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.0044d230
add esp, 0x10
jmp 0x427e89
cmp dword [ebp - 0x38], 3
jl 0x428084
lea ecx, [ebp - 0x2c]
mov byte [ebp - 0xd], 0
call fcn.0041d38d
mov eax, dword [ebp - 0x2c]
cmp word [eax], 0x23
jne 0x427b66
inc eax
inc eax
mov dword [ebp - 0x2c], eax
mov byte [ebp - 0xd], 1
mov bl, byte [ebp - 0x68]
fldz
mov dword [ebp - 0x6c], eax
fstp qword [ebp - 0x94]
lea eax, [ebp - 0x94]
push eax
lea eax, [ebp - 0x6c]
push eax
mov byte [ebp + 0xf], 0
call fcn.0044d4f0
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x6c], eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x6c]
push eax
call fcn.0044d230
mov eax, dword [ebp - 0x6c]
add esp, 0x10
cmp word [eax], 0x2e
jne 0x427bbb
fld qword [ebp - 0x94]
call fcn.004aedbc
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
push 3
pop edi
cmp dword [ebp - 0x38], edi
jl 0x427d19
cmp dword [ebp - 0x38], 5
jg 0x427d19
mov esi, dword [ebp - 0x7c]
push edi
push 0x4f1c0c
push esi
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
jne 0x427d1c
cmp dword [ebp - 0x38], edi
je 0x427c23
mov ax, word [esi + 6]
xor ecx, ecx
mov cx, word [esi + 8]
mov edx, 0xffdf
and eax, edx
and ecx, edx
cmp dword [ebp - 0x38], 4
jne 0x427c29
cmp ax, 0x41
jne 0x427c11
xor bl, bl
jmp 0x427c23
cmp ax, 0x42
je 0x427c53
cmp ax, 0x55
jne 0x427d32
mov bl, 1
mov byte [ebp + 0xf], 1
jmp 0x427c53
cmp dword [ebp - 0x38], 5
jne 0x427d1c
cmp ax, 0x42
jne 0x427d32
cmp cx, 0x55
jne 0x427c47
mov bl, 1
jmp 0x427c53
cmp cx, 0x41
jne 0x427d32
xor bl, bl
movsx eax, bl
push eax
call fcn.00422aab
cmp byte [ebp + 0xf], 0
mov edi, eax
mov eax, edx
pop ecx
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x24], eax
mov ecx, edi
je 0x427c7f
add ecx, 0xfffff
adc eax, 0
shrd ecx, eax, 0x14
shr eax, 0x14
cmp byte [ebp - 0x1d], 0
jne 0x428223
xor esi, esi
cmp dword [ebp - 0x60], esi
jle 0x428292
cmp byte [ebp + 0xf], 0
je 0x427e8c
mov dword [ebp - 0xa0], eax
and dword [ebp - 0xa0], 0x80000000
and eax, 0x7fffffff
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xd4], ecx
fild qword [ebp - 0xd4]
mov dword [ebp - 0xa4], esi
fild qword [ebp - 0xa4]
fchs
faddp st(1)
fcom qword [ebp - 0x94]
fnstsw ax
test ah, 0x41
jne 0x427ce9
xor eax, eax
fstp st(0)
inc eax
jmp 0x427d03
fld qword [ebp - 0x94]
fld st(1)
fucompp
fnstsw ax
fstp st(0)
test ah, 0x44
jp 0x427d00
xor eax, eax
jmp 0x427d03
or eax, 0xffffffff
cdq
mov edi, eax
xor ecx, ecx
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], esi
jmp 0x427e8f
mov esi, dword [ebp - 0x7c]
cmp dword [ebp - 0x38], edi
jne 0x427d32
push edi
push 0x4f1c04
push esi
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
je 0x427d8d
mov edx, dword [ebp + 8]
cmp word [edx], 0x3a
jne 0x427ea6
mov ax, word [edx + 2]
cmp ax, 0x65
jne 0x427d54
add edx, 4
mov dword [ebp + 8], edx
jmp 0x42808d
cmp ax, 0x70
jne 0x427d7d
add edx, 4
mov dword [ebp + 8], edx
xor ebx, ebx
push ebx
push ebx
push ebx
push ebx
push edx
call fcn.0042532c
xor ecx, ecx
add esp, 0x14
test eax, eax
setg cl
mov edi, ecx
jmp 0x428157
cmp ax, 0x6b
jne 0x427ea6
add edx, 4
mov dword [ebp + 8], edx
mov edx, dword [ebp - 0x2c]
xor eax, eax
mov ax, word [edx]
push eax
call fcn.00422795
add esp, 4
test al, al
je 0x427dc3
xor ecx, ecx
mov cx, word [edx + 2]
push ecx
call fcn.00422795
add esp, 4
test al, al
jne 0x427dbf
or cx, 0x20
cmp cx, 0x78
jne 0x427dc3
mov byte [ebp - 0xd], 2
xor edi, edi
cmp byte [ebp - 0xd], 0
jne 0x427ddb
push edi
push edx
call fcn.00425111
cdq
pop ecx
pop ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
cmp dword [ebp - 0x14], edi
jl 0x428292
jg 0x427def
cmp dword [ebp - 0x18], edi
jbe 0x428292
cmp dword [ebp - 0x14], edi
jl 0x427e11
jg 0x427dfc
cmp dword [ebp - 0x18], 0x61
jb 0x427e11
cmp dword [ebp - 0x14], edi
jg 0x427e11
jl 0x427e09
cmp dword [ebp - 0x18], 0x7a
ja 0x427e11
add dword [ebp - 0x18], 0xffffffe0
adc dword [ebp - 0x14], 0xffffffff
push dword [ebp - 0x18]
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov cx, ax
and cx, 0x8000
neg cx
mov word [ebp - 0x11a], di
sbb ecx, ecx
and ecx, dword [ebp - 0x18]
cmp ecx, 0x41
mov eax, ecx
cdq
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], edx
mov word [ebp - 0x11c], cx
jl 0x427e4b
cmp ecx, 0x5a
jle 0x427e6b
cmp ecx, 0x30
jl 0x427e55
cmp ecx, 0x39
jle 0x427e6b
push ecx
lea eax, [ebp - 0x11c]
push str.0x_lX
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
cmp byte [ebp - 0x1d], 0
mov ecx, dword [ebp - 0x54]
lea eax, [ebp - 0x11c]
push eax
jne 0x428237
push str.PressKey
call fcn.00444550
mov edi, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x40]
mov dx, word [esi]
test dx, dx
jne 0x427f7e
or edi, dword [ebp - 0x24]
jmp 0x427fdf
mov ax, word [esi]
mov word [ebp - 0xc8], ax
xor eax, eax
xor ebx, ebx
mov word [ebp - 0xc6], 0x3a
mov word [ebp - 0xc4], 0x5c
mov word [ebp - 0xc2], bx
lea edi, [ebp - 0xc0]
stosd dword es:[edi], eax
movsx eax, byte [ebp - 0x68]
push ebx
push eax
lea eax, [ebp - 0xc8]
push eax
call fcn.0041e81c
add esp, 0xc
cmp byte [ebp - 0x1d], bl
jne 0x428241
cmp dword [ebp - 0x60], ebx
jle 0x428248
shrd eax, edx, 0x14
shr edx, 0x14
mov dword [ebp - 0x98], edx
and dword [ebp - 0x98], 0x80000000
and edx, 0x7fffffff
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0xd8], edx
mov dword [ebp - 0x9c], ebx
fild qword [ebp - 0xdc]
fild qword [ebp - 0x9c]
fchs
faddp st(1)
fcom qword [ebp - 0x94]
fnstsw ax
test ah, 0x41
jne 0x427f4e
xor eax, eax
fstp st(0)
inc eax
jmp 0x427f68
fld qword [ebp - 0x94]
fld st(1)
fucompp
fnstsw ax
fstp st(0)
test ah, 0x44
jp 0x427f65
xor eax, eax
jmp 0x427f68
or eax, 0xffffffff
cdq
mov edi, eax
xor ecx, ecx
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], ebx
jmp 0x427e8f
cmp dx, 0x3d
jne 0x427f9d
cmp edi, ecx
jne 0x428049
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x24], eax
jne 0x428049
jmp 0x42805b
push 0x3e
pop ebx
cmp dx, bx
jne 0x427fac
cmp word [esi + 2], 0x3d
je 0x427ffe
cmp dx, 0x3c
jne 0x427fc1
mov ax, word [esi + 2]
cmp ax, 0x3d
je 0x427fe8
cmp ax, bx
je 0x427fd1
cmp dx, 0x21
jne 0x42800e
mov ax, word [esi + 2]
cmp ax, 0x3d
jne 0x427fe3
cmp edi, ecx
jne 0x42805b
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x24], eax
je 0x428049
jmp 0x42805b
cmp ax, bx
jne 0x427ff8
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x24], eax
jg 0x428049
jl 0x42805b
cmp edi, ecx
ja 0x428049
jmp 0x42805b
cmp ax, 0x3c
jne 0x42800e
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x24], eax
jl 0x428049
jg 0x42805b
cmp edi, ecx
jb 0x428049
jmp 0x42805b
cmp dx, bx
jne 0x428023
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x24], eax
jl 0x428049
jg 0x42805b
cmp edi, ecx
jbe 0x428049
jmp 0x42805b
cmp dx, 0x3c
jne 0x428039
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x24], eax
jg 0x428049
jl 0x42805b
cmp edi, ecx
jae 0x428049
jmp 0x42805b
cmp dx, 0x26
jne 0x428050
or edi, dword [ebp - 0x24]
je 0x428049
or ecx, dword [ebp - 0x14]
jne 0x42805b
xor edi, edi
jmp 0x428157
cmp dx, 0x7c
jne 0x428063
or edi, dword [ebp - 0x24]
je 0x428044
xor edi, edi
inc edi
jmp 0x428157
cmp dx, 0x40
jne 0x428292
xor eax, eax
or edi, dword [ebp - 0x24]
je 0x428075
inc eax
xor edi, edi
or ecx, dword [ebp - 0x14]
je 0x42807d
inc edi
xor edi, eax
jmp 0x428157
cmp dword [ebp - 0x78], ebx
je 0x428292
push edx
call fcn.0042063d
pop ecx
push eax
mov dword [ebp + 8], eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ecx, dword [ebp + 8]
xor ebx, ebx
mov bx, word [ecx]
mov edx, eax
and ebx, 0xffdf
cmp bx, 0x41
jb 0x4280da
cmp bx, 0x5a
ja 0x4280da
cmp word [ecx + 2], 0x3a
jne 0x4280da
cmp word [ecx + 4], 0
jne 0x4280da
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
sub bl, 0x41
mov cl, bl
shr eax, cl
and eax, 1
jmp 0x428155
test edx, edx
jle 0x4280f6
xor eax, eax
mov ax, word [ecx + edx*2 - 2]
push eax
call fcn.0041d40d
add esp, 4
test al, al
je 0x4280f6
mov bl, 1
jmp 0x428116
xor bl, bl
jmp 0x42811c
xor eax, eax
lea edi, [ecx + edx*2]
mov ax, word [edi]
push eax
call fcn.0041d40d
add esp, 4
test al, al
je 0x428119
and word [edi], 0
mov ecx, dword [ebp + 8]
dec edx
jns 0x4280fa
xor edx, edx
inc edx
xor edi, edi
cmp edx, edi
je 0x428157
cmp dword [ebp - 0xcc], edi
je 0x428149
xor eax, eax
mov ax, word [ecx]
cmp ax, di
je 0x428149
cmp word [ecx + 2], 0x3a
jne 0x428149
push eax
call fcn.004abc30
test eax, eax
pop ecx
je 0x428157
mov ecx, dword [ebp + 8]
movsx eax, bl
push eax
push ecx
call fcn.004abf40
pop ecx
pop ecx
mov edi, eax
xor ebx, ebx
xor eax, eax
cmp dword [ebp - 0xac], ebx
je 0x42816a
cmp edi, ebx
sete al
jmp 0x42816f
cmp edi, ebx
setne al
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x48], eax
add eax, 0x30
push 2
pop edi
mov word [edx], ax
add edx, edi
cmp byte [ebp - 0x2d], 0
mov dword [ebp - 0x5c], edx
je 0x42827a
mov esi, dword [ebp - 0x1c]
mov cx, word [esi]
cmp cx, bx
je 0x42824d
cmp cx, 0x5b
je 0x4281e0
cmp cx, 0x5d
je 0x4281e0
cmp cx, 0x28
je 0x4281e0
cmp cx, 0x29
je 0x4281e0
cmp cx, 0x26
je 0x4281e0
cmp cx, 0x7c
jne 0x4281cd
mov ax, word [esi + 2]
call fcn.0041d35d
test al, al
jne 0x4281e0
cmp cx, 0x40
je 0x4281e0
mov eax, ecx
call fcn.0041d35d
test al, al
je 0x4281f5
jmp 0x4281e8
mov word [edx], cx
add edx, edi
mov dword [ebp - 0x5c], edx
add esi, edi
mov cx, word [esi]
cmp cx, bx
mov dword [ebp - 0x1c], esi
jne 0x42819c
cmp word [esi], bx
je 0x42824d
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 1
call fcn.0043f290
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0
call fcn.0043f290
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x34]
call fcn.0043f290
jmp 0x4274f1
push dword [ebp - 0x54]
push eax
push ecx
push dword [ebp + 0x10]
call fcn.0042051b
add esp, 0x10
mov edi, eax
jmp 0x428297
push dword [ebp + 0x10]
call fcn.00444550
jmp 0x428297
push dword [ebp - 0x54]
push edx
push eax
jmp 0x428228
or edi, 0xffffffff
jmp 0x428297
mov eax, dword [ebp - 0xa8]
mov word [eax - 6], 0x23
mov word [eax - 4], 0x26
lea ecx, [ebp - 0x48]
add eax, 0xfffffffe
push ecx
mov ecx, dword [ebp - 0x54]
mov word [eax], 0x3d
push eax
mov word [edx], bx
call fcn.004a2b60
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0xb8], ebx
je 0x42828d
xor eax, eax
cmp dword [ebp - 0x48], ebx
sete al
mov dword [ebp - 0x48], eax
mov edi, dword [ebp - 0x48]
jmp 0x428297
mov edi, 0x80070057
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 1
call fcn.0043f290
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0
call fcn.0043f290
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x34]
call fcn.0043f290
mov ecx, dword [ebp - 0xc]
mov eax, edi
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 0xc