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

Disassembly:
mov eax, 0x4e9113
call fcn.004b48a0
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 0x428875
test ebx, ebx
mov byte [ebp - 0x39], 0
je 0x428879
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 0x4f5da4
mov dword [ebp - 0xa8], esi
mov dword [ebp - 0x5c], esi
call fcn.0044b960
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 0x4288e1
test ebx, ebx
je 0x4288d8
mov dword [ebp - 0x70], edi
mov dword [ebp - 0x58], edx
jmp 0x4288e7
cmp dword [ebp - 0x78], 0
je 0x4288ee
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 0x428908
cmp cx, 0x23
je 0x428908
cmp cx, di
jne 0x428916
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 0x42896c
push 2
pop edx
add dword [ebp - 0x1c], edx
mov word [esi], ax
add esi, 2
xor ecx, ecx
jmp 0x42895e
mov eax, ecx
call fcn.0041ed7f
test al, al
je 0x42894a
add dword [ebp - 0x1c], edx
jmp 0x428961
cmp cx, 0x5b
je 0x428956
cmp cx, 0x28
jne 0x42896c
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 0x42893a
mov eax, dword [ebp - 0x1c]
mov dword [ebp + 8], eax
push 1
lea eax, [ebp + 8]
push eax
push 0x4f5da4
call fcn.0044b960
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 0x428b8f
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 0x428a02
cmp ax, 0x27
je 0x428a02
test ax, ax
je 0x428a3b
push eax
call fcn.00423b98
add esp, 4
test al, al
jne 0x4289fd
and dword [ebp - 0x4c], 0
lea eax, [edx + 2]
jmp 0x428a38
xor eax, eax
mov ax, word [edx + 2]
push eax
call fcn.00423b98
add esp, 4
test al, al
jne 0x428a19
and dword [ebp - 0x4c], 0
push 0xc1
lea eax, [ebp - 0x38]
push 0
push eax
call fcn.00428699
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.0041edaf
mov edi, dword [ebp - 0x40]
xor ecx, ecx
jmp 0x428adb
mov eax, ecx
call fcn.0041ed7f
test al, al
je 0x428a72
cmp bl, 1
jg 0x428ae7
lea ecx, [ebp - 0x40]
inc bl
call fcn.0041edaf
mov edi, dword [ebp - 0x40]
dec edi
dec edi
jmp 0x428ad6
cmp cx, 0x3e
je 0x428b44
cmp cx, 0x3c
je 0x428b44
cmp cx, 0x3d
je 0x428b44
cmp cx, 0x21
je 0x428b44
cmp dword [ebp - 0x4c], 0
je 0x428ad2
cmp dword [ebp - 0x68], 0
je 0x428ad2
cmp cx, 0x26
je 0x428ab8
cmp cx, 0x7c
je 0x428ab8
cmp cx, 0x40
jne 0x428ad2
mov ax, word [edi + 2]
call fcn.0041ed7f
test al, al
je 0x428ad2
mov ax, word [edi - 2]
call fcn.0041ed7f
test al, al
jne 0x428b27
test bl, bl
jg 0x428ae7
inc edi
inc edi
mov dword [ebp - 0x40], edi
mov cx, word [edi]
test cx, cx
jne 0x428a4d
cmp byte [ebp - 0xd], 0
jne 0x428b7c
push 0xc1
lea eax, [ebp - 0x38]
push 0
push eax
call fcn.00428699
add esp, 0xc
cmp byte [ebp + 0xf], 0
mov dword [ebp - 0x1c], eax
je 0x428b79
sub eax, edi
sar eax, 1
push eax
push edi
lea ecx, [ebp - 0x50]
call fcn.00449600
mov esi, dword [ebp - 0x50]
and word [edi], 0
jmp 0x428bcd
lea eax, [edi + 2]
mov cx, word [eax]
cmp cx, word [edi]
jne 0x428b3e
and word [edi], 0
mov edi, eax
mov byte [ebp + 0xf], 5
jmp 0x428b48
mov byte [ebp + 0xf], 3
jmp 0x428b48
mov byte [ebp + 0xf], 1
cmp byte [ebp + 0xf], 1
lea ecx, [edi + 2]
mov dword [ebp - 0x38], ecx
jne 0x428af1
mov ax, word [ecx]
cmp ax, 0x3e
je 0x428b6f
cmp ax, 0x3c
je 0x428b6f
cmp ax, 0x3d
je 0x428b6f
cmp ax, 0x21
jne 0x428af1
inc ecx
inc ecx
mov dword [ebp - 0x38], ecx
jmp 0x428af1
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x1c]
cmp word [eax], 0
je 0x428bd0
and word [eax], 0
add dword [ebp - 0x1c], 2
jmp 0x428bcd
xor eax, eax
mov ax, word [edx]
jmp 0x428bb3
cmp ax, 0x3e
je 0x428bba
cmp ax, 0x3c
je 0x428bba
cmp ax, 0x3d
je 0x428bba
cmp ax, 0x21
je 0x428bba
inc edi
inc edi
mov ax, word [edi]
cmp ax, bx
jne 0x428b96
jmp 0x428bd0
push edi
lea ecx, [ebp - 0x50]
mov byte [ebp + 0xf], 1
call fcn.004566f0
mov esi, dword [ebp - 0x50]
mov word [edi], bx
mov edx, dword [ebp + 8]
mov edi, dword [ebp - 0x54]
cmp byte [edi + 0x8e], 0
jne 0x428c86
cmp byte [edi + 0xb], 0
jne 0x428c86
push 1
xor ebx, ebx
push ebx
lea eax, [ebp - 0x34]
push eax
push edx
mov ecx, edi
call fcn.00454330
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.00452ca0
cmp esi, ebx
je 0x428c75
push 1
push ebx
lea eax, [ebp - 0x44]
push eax
push esi
mov ecx, edi
call fcn.00454330
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.00452ca0
push dword [ebp - 0x34]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push dword [ebp - 0x44]
lea ecx, [ebp - 0x34]
mov edi, eax
call fcn.00449510
mov eax, dword [ebp - 0x34]
lea ecx, [ebp - 0xb4]
lea esi, [eax + edi*2]
mov byte [ebp - 4], 3
call fcn.00443880
lea ecx, [ebp - 0xb0]
mov byte [ebp - 4], 2
call fcn.00443880
jmp 0x428cc6
push 1
xor ebx, ebx
push ebx
lea eax, [ebp - 0x34]
push eax
push edx
mov ecx, edi
call fcn.00454330
cmp esi, ebx
je 0x428cc6
push 1
push ebx
lea eax, [ebp - 0x44]
push eax
push esi
mov ecx, edi
call fcn.00454330
push dword [ebp - 0x34]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push dword [ebp - 0x44]
lea ecx, [ebp - 0x34]
mov edi, eax
call fcn.00449510
mov eax, dword [ebp - 0x34]
lea esi, [eax + edi*2]
mov eax, dword [ebp - 0x34]
push eax
mov dword [ebp + 8], eax
call fcn.004201fa
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 0x428d04
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 0x428d2a
mov ax, word [edx]
jmp 0x428d21
cmp ecx, edi
jae 0x428d2a
inc ecx
inc ecx
mov ax, word [ecx]
call fcn.0041ed7f
test al, al
je 0x428d18
sub ecx, edx
sar ecx, 1
cmp byte [ebp + 0xf], 0
mov dword [ebp - 0x38], ecx
jne 0x428d4a
cmp dword [ebp - 0x78], ebx
jne 0x428d4a
cmp dword [ebp - 0x68], ebx
je 0x4291dd
jmp 0x429508
cmp byte [ebp + 0xf], 1
mov dword [ebp - 0x2c], edi
jne 0x428d6e
lea eax, [edi + 2]
mov cx, word [eax]
cmp cx, 0x3d
je 0x428d6b
cmp word [edi], 0x3c
jne 0x428d74
cmp cx, 0x3e
jne 0x428d74
mov dword [ebp - 0x2c], eax
cmp byte [ebp + 0xf], 0
je 0x428d78
add dword [ebp - 0x2c], 2
lea ecx, [ebp - 0x2c]
call fcn.0041edaf
cmp byte [ebp - 0x39], 0
je 0x428e34
mov eax, dword [ebp - 0x2c]
cmp word [eax], 0x3f
jne 0x428e34
add dword [ebp - 0x2c], 2
lea ecx, [ebp + 0x10]
mov byte [ebp - 0x1d], 1
call fcn.0041edaf
mov esi, dword [ebp - 0x70]
cmp dword [ebp - 0x74], esi
je 0x428dcb
movzx eax, word [edx]
cmp esi, eax
je 0x428dc0
cmp dword [ebp - 0x64], eax
je 0x428dc0
cmp dword [ebp - 0x58], eax
jne 0x428dcb
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 0x428e01
cmp byte [ebp - 0x3a], 0
jne 0x428e01
mov eax, dword [ebp - 0x4c]
cmp eax, dword [ebp - 0x58]
je 0x428e01
lea ecx, [ebp + 8]
call fcn.0041edaf
mov edx, dword [ebp + 8]
mov ax, word [edx]
cmp ax, 0x30
jb 0x428df8
cmp ax, 0x39
jbe 0x428e01
cmp ax, 0x2e
je 0x428e01
mov dword [ebp - 0x4c], ebx
cmp dword [ebp - 0x84], ebx
jne 0x428e16
cmp dword [ebp - 0x60], ebx
jne 0x428e16
cmp word [edx], 0x27
mov eax, esi
je 0x428e19
mov eax, dword [ebp - 0x4c]
cmp esi, eax
jne 0x428ed1
lea ecx, [ebp + 0xc]
mov dword [ebp + 0xc], edx
call fcn.0041edaf
mov ebx, dword [ebp + 0xc]
lea ecx, [edi - 2]
jmp 0x428e4b
mov byte [ebp - 0x1d], 0
jmp 0x428da7
mov ax, word [ecx]
call fcn.0041ed7f
test al, al
je 0x428e4f
dec ecx
dec ecx
cmp ecx, ebx
jae 0x428e3d
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.0041edaf
mov ecx, dword [ebp - 0x88]
mov edx, dword [ebp + 0xc]
add ecx, 0xfffffffe
jmp 0x428e81
mov ax, word [ecx]
call fcn.0041ed7f
test al, al
je 0x428e85
dec ecx
dec ecx
cmp ecx, edx
jae 0x428e73
sub ecx, edx
inc ecx
inc ecx
sar ecx, 1
mov esi, ecx
cmp edi, esi
mov eax, edi
jle 0x428e95
mov eax, esi
test eax, eax
jle 0x428eb7
cmp dword [ebp - 0xbc], 0
push eax
push edx
push ebx
je 0x428ead
call dword [sym.imp.SHLWAPI.dll_StrCmpNW]
jmp 0x428eb3
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
jne 0x428ebb
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 0x42930a
cmp dword [ebp - 0x58], eax
jne 0x428f92
fldz
lea eax, [ebp - 0x80]
fstp qword [ebp - 0x80]
push eax
lea eax, [ebp + 8]
fldz
push eax
fstp qword [ebp - 0x8c]
call fcn.0044f860
lea eax, [ebp - 0x8c]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.0044f860
fld qword [ebp - 0x80]
add esp, 0x10
call fcn.004b3a7c
fld qword [ebp - 0x8c]
mov edi, eax
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x24], edx
call fcn.004b3a7c
cmp byte [ebp + 0xf], 1
mov ecx, eax
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], edx
jg 0x42930a
fild qword [ebp - 0x28]
fld qword [ebp - 0x80]
fucompp
fnstsw ax
test ah, 0x44
jp 0x428f59
fild qword [ebp - 0x18]
fld qword [ebp - 0x8c]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x42930a
fld qword [ebp - 0x80]
fcomp qword [ebp - 0x8c]
fnstsw ax
test ah, 0x41
jne 0x428f71
xor eax, eax
inc eax
jmp 0x428ebb
fld qword [ebp - 0x8c]
fld qword [ebp - 0x80]
fucompp
fnstsw ax
test ah, 0x44
jp 0x428f8a
xor eax, eax
jmp 0x428ebb
or eax, 0xffffffff
jmp 0x428ebb
cmp dword [ebp - 0x64], eax
jne 0x428fb9
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp + 8]
push eax
call fcn.0044f5a0
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.0044f5a0
add esp, 0x10
jmp 0x429304
cmp dword [ebp - 0x38], 3
jl 0x4294ff
lea ecx, [ebp - 0x2c]
mov byte [ebp - 0xd], 0
call fcn.0041edaf
mov eax, dword [ebp - 0x2c]
cmp word [eax], 0x23
jne 0x428fe1
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.0044f860
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.0044f5a0
mov eax, dword [ebp - 0x6c]
add esp, 0x10
cmp word [eax], 0x2e
jne 0x429036
fld qword [ebp - 0x94]
call fcn.004b3a7c
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
push 3
pop edi
cmp dword [ebp - 0x38], edi
jl 0x429194
cmp dword [ebp - 0x38], 5
jg 0x429194
mov esi, dword [ebp - 0x7c]
push edi
push 0x4f5d9c
push esi
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
jne 0x429197
cmp dword [ebp - 0x38], edi
je 0x42909e
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 0x4290a4
cmp ax, 0x41
jne 0x42908c
xor bl, bl
jmp 0x42909e
cmp ax, 0x42
je 0x4290ce
cmp ax, 0x55
jne 0x4291ad
mov bl, 1
mov byte [ebp + 0xf], 1
jmp 0x4290ce
cmp dword [ebp - 0x38], 5
jne 0x429197
cmp ax, 0x42
jne 0x4291ad
cmp cx, 0x55
jne 0x4290c2
mov bl, 1
jmp 0x4290ce
cmp cx, 0x41
jne 0x4291ad
xor bl, bl
movsx eax, bl
push eax
call fcn.00423f05
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 0x4290fa
add ecx, 0xfffff
adc eax, 0
shrd ecx, eax, 0x14
shr eax, 0x14
cmp byte [ebp - 0x1d], 0
jne 0x42969e
xor esi, esi
cmp dword [ebp - 0x60], esi
jle 0x42970d
cmp byte [ebp + 0xf], 0
je 0x429307
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 0x429164
xor eax, eax
fstp st(0)
inc eax
jmp 0x42917e
fld qword [ebp - 0x94]
fld st(1)
fucompp
fnstsw ax
fstp st(0)
test ah, 0x44
jp 0x42917b
xor eax, eax
jmp 0x42917e
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 0x42930a
mov esi, dword [ebp - 0x7c]
cmp dword [ebp - 0x38], edi
jne 0x4291ad
push edi
push 0x4f5d94
push esi
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
je 0x429208
mov edx, dword [ebp + 8]
cmp word [edx], 0x3a
jne 0x429321
mov ax, word [edx + 2]
cmp ax, 0x65
jne 0x4291cf
add edx, 4
mov dword [ebp + 8], edx
jmp 0x429508
cmp ax, 0x70
jne 0x4291f8
add edx, 4
mov dword [ebp + 8], edx
xor ebx, ebx
push ebx
push ebx
push ebx
push ebx
push edx
call fcn.00426786
xor ecx, ecx
add esp, 0x14
test eax, eax
setg cl
mov edi, ecx
jmp 0x4295d2
cmp ax, 0x6b
jne 0x429321
add edx, 4
mov dword [ebp + 8], edx
mov edx, dword [ebp - 0x2c]
xor eax, eax
mov ax, word [edx]
push eax
call fcn.00423b98
add esp, 4
test al, al
je 0x42923e
xor ecx, ecx
mov cx, word [edx + 2]
push ecx
call fcn.00423b98
add esp, 4
test al, al
jne 0x42923a
or cx, 0x20
cmp cx, 0x78
jne 0x42923e
mov byte [ebp - 0xd], 2
xor edi, edi
cmp byte [ebp - 0xd], 0
jne 0x429256
push edi
push edx
call fcn.0042656b
cdq
pop ecx
pop ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
cmp dword [ebp - 0x14], edi
jl 0x42970d
jg 0x42926a
cmp dword [ebp - 0x18], edi
jbe 0x42970d
cmp dword [ebp - 0x14], edi
jl 0x42928c
jg 0x429277
cmp dword [ebp - 0x18], 0x61
jb 0x42928c
cmp dword [ebp - 0x14], edi
jg 0x42928c
jl 0x429284
cmp dword [ebp - 0x18], 0x7a
ja 0x42928c
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 0x4292c6
cmp ecx, 0x5a
jle 0x4292e6
cmp ecx, 0x30
jl 0x4292d0
cmp ecx, 0x39
jle 0x4292e6
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 0x4296b2
push str.PressKey
call fcn.00448be0
mov edi, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x40]
mov dx, word [esi]
test dx, dx
jne 0x4293f9
or edi, dword [ebp - 0x24]
jmp 0x42945a
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.00420256
add esp, 0xc
cmp byte [ebp - 0x1d], bl
jne 0x4296bc
cmp dword [ebp - 0x60], ebx
jle 0x4296c3
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 0x4293c9
xor eax, eax
fstp st(0)
inc eax
jmp 0x4293e3
fld qword [ebp - 0x94]
fld st(1)
fucompp
fnstsw ax
fstp st(0)
test ah, 0x44
jp 0x4293e0
xor eax, eax
jmp 0x4293e3
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 0x42930a
cmp dx, 0x3d
jne 0x429418
cmp edi, ecx
jne 0x4294c4
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x24], eax
jne 0x4294c4
jmp 0x4294d6
push 0x3e
pop ebx
cmp dx, bx
jne 0x429427
cmp word [esi + 2], 0x3d
je 0x429479
cmp dx, 0x3c
jne 0x42943c
mov ax, word [esi + 2]
cmp ax, 0x3d
je 0x429463
cmp ax, bx
je 0x42944c
cmp dx, 0x21
jne 0x429489
mov ax, word [esi + 2]
cmp ax, 0x3d
jne 0x42945e
cmp edi, ecx
jne 0x4294d6
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x24], eax
je 0x4294c4
jmp 0x4294d6
cmp ax, bx
jne 0x429473
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x24], eax
jg 0x4294c4
jl 0x4294d6
cmp edi, ecx
ja 0x4294c4
jmp 0x4294d6
cmp ax, 0x3c
jne 0x429489
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x24], eax
jl 0x4294c4
jg 0x4294d6
cmp edi, ecx
jb 0x4294c4
jmp 0x4294d6
cmp dx, bx
jne 0x42949e
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x24], eax
jl 0x4294c4
jg 0x4294d6
cmp edi, ecx
jbe 0x4294c4
jmp 0x4294d6
cmp dx, 0x3c
jne 0x4294b4
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x24], eax
jg 0x4294c4
jl 0x4294d6
cmp edi, ecx
jae 0x4294c4
jmp 0x4294d6
cmp dx, 0x26
jne 0x4294cb
or edi, dword [ebp - 0x24]
je 0x4294c4
or ecx, dword [ebp - 0x14]
jne 0x4294d6
xor edi, edi
jmp 0x4295d2
cmp dx, 0x7c
jne 0x4294de
or edi, dword [ebp - 0x24]
je 0x4294bf
xor edi, edi
inc edi
jmp 0x4295d2
cmp dx, 0x40
jne 0x42970d
xor eax, eax
or edi, dword [ebp - 0x24]
je 0x4294f0
inc eax
xor edi, edi
or ecx, dword [ebp - 0x14]
je 0x4294f8
inc edi
xor edi, eax
jmp 0x4295d2
cmp dword [ebp - 0x78], ebx
je 0x42970d
push edx
call fcn.00422077
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 0x429555
cmp bx, 0x5a
ja 0x429555
cmp word [ecx + 2], 0x3a
jne 0x429555
cmp word [ecx + 4], 0
jne 0x429555
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
sub bl, 0x41
mov cl, bl
shr eax, cl
and eax, 1
jmp 0x4295d0
test edx, edx
jle 0x429571
xor eax, eax
mov ax, word [ecx + edx*2 - 2]
push eax
call fcn.0041ee2f
add esp, 4
test al, al
je 0x429571
mov bl, 1
jmp 0x429591
xor bl, bl
jmp 0x429597
xor eax, eax
lea edi, [ecx + edx*2]
mov ax, word [edi]
push eax
call fcn.0041ee2f
add esp, 4
test al, al
je 0x429594
and word [edi], 0
mov ecx, dword [ebp + 8]
dec edx
jns 0x429575
xor edx, edx
inc edx
xor edi, edi
cmp edx, edi
je 0x4295d2
cmp dword [ebp - 0xcc], edi
je 0x4295c4
xor eax, eax
mov ax, word [ecx]
cmp ax, di
je 0x4295c4
cmp word [ecx + 2], 0x3a
jne 0x4295c4
push eax
call fcn.004b0a20
test eax, eax
pop ecx
je 0x4295d2
mov ecx, dword [ebp + 8]
movsx eax, bl
push eax
push ecx
call fcn.004b0d30
pop ecx
pop ecx
mov edi, eax
xor ebx, ebx
xor eax, eax
cmp dword [ebp - 0xac], ebx
je 0x4295e5
cmp edi, ebx
sete al
jmp 0x4295ea
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 0x4296f5
mov esi, dword [ebp - 0x1c]
mov cx, word [esi]
cmp cx, bx
je 0x4296c8
cmp cx, 0x5b
je 0x42965b
cmp cx, 0x5d
je 0x42965b
cmp cx, 0x28
je 0x42965b
cmp cx, 0x29
je 0x42965b
cmp cx, 0x26
je 0x42965b
cmp cx, 0x7c
jne 0x429648
mov ax, word [esi + 2]
call fcn.0041ed7f
test al, al
jne 0x42965b
cmp cx, 0x40
je 0x42965b
mov eax, ecx
call fcn.0041ed7f
test al, al
je 0x429670
jmp 0x429663
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 0x429617
cmp word [esi], bx
je 0x4296c8
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 1
call fcn.00443880
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0
call fcn.00443880
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x34]
call fcn.00443880
jmp 0x42896c
push dword [ebp - 0x54]
push eax
push ecx
push dword [ebp + 0x10]
call fcn.00421f55
add esp, 0x10
mov edi, eax
jmp 0x429712
push dword [ebp + 0x10]
call fcn.00448be0
jmp 0x429712
push dword [ebp - 0x54]
push edx
push eax
jmp 0x4296a3
or edi, 0xffffffff
jmp 0x429712
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.0049e3f0
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0xb8], ebx
je 0x429708
xor eax, eax
cmp dword [ebp - 0x48], ebx
sete al
mov dword [ebp - 0x48], eax
mov edi, dword [ebp - 0x48]
jmp 0x429712
mov edi, 0x80070057
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 1
call fcn.00443880
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0
call fcn.00443880
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x34]
call fcn.00443880
mov ecx, dword [ebp - 0xc]
mov eax, edi
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 0xc