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

Disassembly:
push ebp
lea ebp, [esp - 0x6c]
sub esp, 0x110
mov eax, dword [ebp + 0x78]
and eax, 0x10000
mov dword [ebp - 0x44], eax
mov eax, dword [ebp + 0x78]
and eax, 0x20000
push ebx
push esi
mov dword [ebp + 0x18], ecx
xor ecx, ecx
mov dword [ebp - 0x54], eax
movzx eax, byte [ebp + 0x78]
push edi
xor edi, edi
cmp eax, edi
sete cl
xor ebx, ebx
cmp eax, 1
sete bl
mov dword [ebp + 8], edi
mov dword [ebp - 0x14], ecx
xor ecx, ecx
cmp eax, 2
sete cl
cmp dword [ebp - 0x14], edi
mov dword [ebp + 0x14], ebx
mov dword [ebp], ecx
jne 0x415175
cmp ebx, edi
mov byte [ebp + 0x43], 0
je 0x415179
mov byte [ebp + 0x43], 1
mov eax, dword [ebp + 0x74]
add eax, 0xfffffffe
mov dword [ebp - 0x30], eax
mov dword [ebp + 0x20], eax
push 1
lea eax, [ebp + 0x74]
push eax
push 0x492270
mov dword [ebp + 0x2c], edi
call fcn.00435950
add esp, 0xc
cmp dword [ebp - 0x14], edi
push 0x24
pop edx
movzx eax, al
push 0x7c
mov dword [ebp - 0x40], eax
mov dword [ebp + 4], 0x100001
mov dword [ebp + 0x10], 0x100002
mov dword [ebp + 0x24], 0x100003
pop esi
jne 0x4151d5
cmp ebx, edi
je 0x4151cd
mov dword [ebp + 4], esi
mov dword [ebp + 0x24], edx
jmp 0x4151db
cmp dword [ebp], edi
je 0x4151e2
mov dword [ebp + 8], esi
mov dword [ebp + 4], edx
mov dword [ebp + 0x24], esi
mov dword [ebp + 0x10], 0x23
mov eax, dword [ebp + 0x74]
mov cx, word [eax]
cmp cx, dx
mov byte [ebp + 0x42], 0
je 0x4151fc
cmp cx, 0x23
je 0x4151fc
cmp cx, si
jne 0x41520a
movzx ecx, cx
inc eax
inc eax
mov dword [ebp + 8], ecx
mov byte [ebp + 0x42], cl
mov dword [ebp + 0x74], eax
cmp word [eax], 0x5b
mov esi, eax
sete byte [ebp + 0x53]
cmp byte [ebp + 0x53], 0
mov dword [ebp + 0x48], esi
je 0x41527a
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea ecx, [esi + eax*2 - 2]
jmp 0x41522f
mov word [ecx], di
dec ecx
dec ecx
mov ax, word [ecx]
call fcn.00402b47
test al, al
jne 0x41522a
cmp word [ecx], 0x5d
jne 0x415244
mov word [ecx], di
push 2
pop edx
add esi, edx
xor ecx, ecx
jmp 0x41526f
mov eax, ecx
call fcn.00402b47
test al, al
jne 0x41526d
cmp cx, 0x5b
je 0x415264
cmp cx, 0x28
jne 0x41527a
mov eax, dword [ebp + 0x20]
add dword [ebp + 0x20], edx
mov word [eax], cx
add esi, edx
mov cx, word [esi]
cmp cx, di
mov dword [ebp + 0x48], esi
jne 0x41524d
push 1
lea eax, [ebp + 0x74]
push eax
push 0x492270
mov dword [ebp + 0x74], esi
call fcn.00435950
mov edx, dword [ebp + 0x74]
movzx eax, al
add esp, 0xc
cmp byte [ebp + 0x53], 0
mov esi, edx
mov dword [ebp - 0x34], eax
mov dword [ebp + 0x54], edi
mov dword [ebp + 0x58], edi
mov dword [ebp + 0x60], edi
mov dword [ebp + 0x64], edi
mov dword [ebp + 0x3c], esi
mov dword [ebp + 0x38], edi
mov dword [ebp + 0x44], edi
mov dword [ebp + 0x34], edi
mov dword [ebp + 0x1c], edi
mov byte [ebp + 0x7b], 0
je 0x415481
mov eax, dword [ebp + 0x14]
mov dword [ebp + 0x30], eax
xor eax, eax
mov ax, word [edx]
xor bl, bl
cmp ax, 0x22
mov dword [ebp + 0x48], edx
mov dword [ebp + 0x28], edx
mov byte [ebp + 0x6b], 0
je 0x415301
cmp ax, 0x27
je 0x415301
cmp ax, di
je 0x415338
push eax
call fcn.00433834
add esp, 4
test al, al
jne 0x4152fc
mov dword [ebp + 0x30], edi
lea eax, [edx + 2]
jmp 0x415335
xor eax, eax
mov ax, word [edx + 2]
push eax
call fcn.00433834
add esp, 4
test al, al
jne 0x415317
mov dword [ebp + 0x30], edi
push 0xc1
lea eax, [ebp + 0x28]
push edi
push eax
call fcn.00414faa
mov edx, dword [ebp + 0x74]
add esp, 0xc
mov byte [ebp + 0x6b], 1
mov bl, 1
mov dword [ebp + 0x48], eax
mov dword [ebp + 0x3c], eax
lea ecx, [ebp + 0x3c]
call fcn.0040b43e
mov esi, dword [ebp + 0x3c]
xor ecx, ecx
jmp 0x4153d9
mov eax, ecx
call fcn.00402b47
test al, al
je 0x41536f
cmp bl, 1
jg 0x4153e5
lea ecx, [ebp + 0x3c]
inc bl
call fcn.0040b43e
mov esi, dword [ebp + 0x3c]
dec esi
dec esi
jmp 0x4153d4
cmp cx, 0x3e
je 0x41543b
cmp cx, 0x3c
je 0x41543b
cmp cx, 0x3d
je 0x41543b
cmp cx, 0x21
je 0x41543b
cmp dword [ebp + 0x30], edi
je 0x4153d0
cmp dword [ebp + 0x14], 0
je 0x4153ce
cmp cx, 0x26
je 0x4153b4
cmp cx, 0x7c
je 0x4153b4
cmp cx, 0x40
jne 0x4153ce
mov ax, word [esi + 2]
call fcn.00402b47
test al, al
je 0x4153ce
mov ax, word [esi - 2]
call fcn.00402b47
test al, al
jne 0x41541d
xor edi, edi
test bl, bl
jg 0x4153e5
inc esi
inc esi
mov dword [ebp + 0x3c], esi
mov cx, word [esi]
cmp cx, di
jne 0x41534a
cmp byte [ebp + 0x6b], 0
jne 0x415470
push 0xc1
lea eax, [ebp + 0x28]
push edi
push eax
call fcn.00414faa
add esp, 0xc
cmp byte [ebp + 0x7b], 0
mov dword [ebp + 0x48], eax
je 0x41546d
sub eax, esi
sar eax, 1
push eax
push esi
lea ecx, [ebp + 0x1c]
call fcn.00433d4a
jmp 0x4154b9
lea eax, [esi + 2]
mov cx, word [eax]
xor edi, edi
cmp cx, word [esi]
jne 0x415435
mov word [esi], di
mov esi, eax
mov byte [ebp + 0x7b], 5
jmp 0x41543f
mov byte [ebp + 0x7b], 3
jmp 0x41543f
mov byte [ebp + 0x7b], 1
cmp byte [ebp + 0x7b], 1
lea ecx, [esi + 2]
mov dword [ebp + 0x28], ecx
jne 0x4153ef
mov ax, word [ecx]
cmp ax, 0x3e
je 0x415466
cmp ax, 0x3c
je 0x415466
cmp ax, 0x3d
je 0x415466
cmp ax, 0x21
jne 0x4153ef
inc ecx
inc ecx
mov dword [ebp + 0x28], ecx
jmp 0x4153ef
mov edx, dword [ebp + 0x74]
mov eax, dword [ebp + 0x48]
cmp word [eax], di
je 0x4154c5
add dword [ebp + 0x48], 2
mov word [eax], di
jmp 0x4154c2
xor eax, eax
mov ax, word [edx]
jmp 0x4154a5
cmp ax, 0x3e
je 0x4154ac
cmp ax, 0x3c
je 0x4154ac
cmp ax, 0x3d
je 0x4154ac
cmp ax, 0x21
je 0x4154ac
inc esi
inc esi
mov ax, word [esi]
cmp ax, di
jne 0x415488
jmp 0x4154c5
push esi
lea ecx, [ebp + 0x1c]
mov byte [ebp + 0x7b], 1
call fcn.0043de8d
mov eax, dword [ebp + 0x1c]
mov word [esi], di
mov dword [ebp + 0x38], eax
mov edx, dword [ebp + 0x74]
mov ebx, dword [ebp + 0x18]
cmp byte [ebx + 0x96], 0
jne 0x415560
cmp byte [ebx + 0xb], 0
jne 0x415560
push 1
push edi
lea eax, [ebp + 0x44]
push eax
push edx
mov ecx, ebx
call fcn.0043c245
mov eax, dword [ebp + 0x44]
push edi
push edi
lea ecx, [ebp + 0x44]
push ecx
push eax
mov ecx, ebx
mov dword [ebp - 0x38], eax
mov dword [ebp + 0x44], edi
call fcn.0043b011
mov esi, dword [ebp + 0x38]
cmp esi, edi
je 0x415556
push 1
push edi
lea eax, [ebp + 0x34]
push eax
push esi
mov ecx, ebx
call fcn.0043c245
mov eax, dword [ebp + 0x34]
push edi
push edi
lea ecx, [ebp + 0x34]
push ecx
push eax
mov ecx, ebx
mov dword [ebp - 0x3c], eax
mov dword [ebp + 0x34], edi
call fcn.0043b011
push dword [ebp + 0x44]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push dword [ebp + 0x34]
lea ecx, [ebp + 0x44]
mov esi, eax
call fcn.00433c92
mov eax, dword [ebp + 0x44]
lea ecx, [ebp - 0x3c]
lea esi, [eax + esi*2]
call fcn.0042eb98
lea ecx, [ebp - 0x38]
call fcn.0042eb98
jmp 0x4155a1
push 1
push edi
lea eax, [ebp + 0x44]
push eax
push edx
mov ecx, ebx
call fcn.0043c245
mov esi, dword [ebp + 0x38]
cmp esi, edi
je 0x4155a1
push 1
push edi
lea eax, [ebp + 0x34]
push eax
push esi
mov ecx, ebx
call fcn.0043c245
push dword [ebp + 0x44]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push dword [ebp + 0x34]
lea ecx, [ebp + 0x44]
mov esi, eax
call fcn.00433c92
mov eax, dword [ebp + 0x44]
lea esi, [eax + esi*2]
mov eax, dword [ebp + 0x44]
push eax
mov dword [ebp + 0x74], eax
call fcn.0040c744
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenW]
pop ecx
push dword [ebp + 0x74]
call ebx
cmp esi, edi
mov edx, dword [ebp + 0x74]
lea eax, [edx + eax*2]
mov dword [ebp - 0xc], eax
mov dword [ebp - 4], edx
mov dword [ebp + 0x3c], esi
jne 0x4155d8
push edx
call ebx
mov edx, dword [ebp + 0x74]
lea esi, [edx + eax*2]
mov dword [ebp + 0x3c], esi
cmp esi, edi
mov eax, dword [ebp + 8]
mov ecx, edx
mov dword [ebp + 0x38], eax
mov dword [ebp + 0x30], edi
je 0x4155fe
mov ax, word [edx]
jmp 0x4155f5
cmp ecx, esi
jae 0x4155fe
inc ecx
inc ecx
mov ax, word [ecx]
call fcn.00402b47
test al, al
je 0x4155ec
sub ecx, edx
sar ecx, 1
cmp byte [ebp + 0x7b], 0
mov dword [ebp + 0x28], ecx
jne 0x41561e
cmp dword [ebp], edi
jne 0x41561e
cmp dword [ebp + 0x14], edi
je 0x415a70
jmp 0x415d6e
cmp byte [ebp + 0x7b], 1
mov dword [ebp + 0x4c], esi
jne 0x415642
lea eax, [esi + 2]
mov cx, word [eax]
cmp cx, 0x3d
je 0x41563f
cmp word [esi], 0x3c
jne 0x415648
cmp cx, 0x3e
jne 0x415648
mov dword [ebp + 0x4c], eax
cmp byte [ebp + 0x7b], 0
je 0x41564c
add dword [ebp + 0x4c], 2
lea ecx, [ebp + 0x4c]
call fcn.0040b43e
cmp byte [ebp + 0x43], 0
je 0x415705
mov eax, dword [ebp + 0x4c]
cmp word [eax], 0x3f
jne 0x415705
add dword [ebp + 0x4c], 2
lea ecx, [ebp + 0x7c]
mov byte [ebp + 0x5f], 1
call fcn.0040b43e
mov ebx, dword [ebp + 4]
cmp dword [ebp + 8], ebx
je 0x41569f
movzx eax, word [edx]
cmp ebx, eax
je 0x415694
cmp dword [ebp + 0x10], eax
je 0x415694
cmp dword [ebp + 0x24], eax
jne 0x41569f
inc edx
inc edx
mov dword [ebp + 0x38], eax
mov dword [ebp + 0x30], eax
mov dword [ebp + 0x74], edx
cmp dword [ebp], edi
je 0x4156d5
cmp byte [ebp + 0x42], 0
jne 0x4156d5
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp + 0x24]
je 0x4156d5
lea ecx, [ebp + 0x74]
call fcn.0040b43e
mov edx, dword [ebp + 0x74]
mov ax, word [edx]
cmp ax, 0x30
jb 0x4156cc
cmp ax, 0x39
jbe 0x4156d5
cmp ax, 0x2e
je 0x4156d5
mov dword [ebp + 0x38], edi
cmp dword [ebp - 0x14], edi
jne 0x4156e7
cmp dword [ebp + 0x30], edi
jne 0x4156e7
cmp word [edx], 0x27
mov eax, ebx
je 0x4156ea
mov eax, dword [ebp + 0x38]
cmp ebx, eax
jne 0x41579c
lea ecx, [ebp + 0x78]
mov dword [ebp + 0x78], edx
call fcn.0040b43e
mov edi, dword [ebp + 0x78]
lea ecx, [esi - 2]
jmp 0x41571c
mov byte [ebp + 0x5f], 0
jmp 0x41567b
mov ax, word [ecx]
call fcn.00402b47
test al, al
je 0x415720
dec ecx
dec ecx
cmp ecx, edi
jae 0x41570e
mov eax, dword [ebp + 0x4c]
sub ecx, edi
inc ecx
inc ecx
sar ecx, 1
mov esi, ecx
lea ecx, [ebp + 0x78]
mov dword [ebp + 0x78], eax
call fcn.0040b43e
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp + 0x78]
add ecx, 0xfffffffe
jmp 0x41574f
mov ax, word [ecx]
call fcn.00402b47
test al, al
je 0x415753
dec ecx
dec ecx
cmp ecx, edx
jae 0x415741
sub ecx, edx
inc ecx
inc ecx
sar ecx, 1
mov ebx, ecx
cmp esi, ebx
mov eax, esi
jle 0x415763
mov eax, ebx
test eax, eax
jle 0x415782
cmp dword [ebp - 0x44], 0
push eax
push edx
push edi
je 0x415778
call dword [sym.imp.SHLWAPI.dll_StrCmpNW]
jmp 0x41577e
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
jne 0x415786
sub esi, ebx
mov eax, esi
cdq
xor ecx, ecx
mov esi, eax
mov dword [ebp + 0x54], esi
mov dword [ebp + 0x58], edx
mov dword [ebp + 0x60], ecx
mov dword [ebp + 0x64], ecx
jmp 0x415b9d
cmp dword [ebp + 0x24], eax
jne 0x41584b
fldz
lea eax, [ebp - 8]
fstp qword [ebp - 8]
push eax
lea eax, [ebp + 0x74]
fldz
push eax
fstp qword [ebp - 0x10]
call fcn.00438848
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp + 0x4c]
push eax
call fcn.00438848
fld qword [ebp - 8]
add esp, 0x10
call fcn.0047c064
fld qword [ebp - 0x10]
mov esi, eax
mov dword [ebp + 0x54], esi
mov dword [ebp + 0x58], edx
call fcn.0047c064
cmp byte [ebp + 0x7b], 1
mov ecx, eax
mov dword [ebp + 0x60], ecx
mov dword [ebp + 0x64], edx
jg 0x415b9d
fild qword [ebp + 0x54]
fld qword [ebp - 8]
fucompp
fnstsw ax
test ah, 0x44
jp 0x415818
fild qword [ebp + 0x60]
fld qword [ebp - 0x10]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x415b9d
fld qword [ebp - 8]
fcomp qword [ebp - 0x10]
fnstsw ax
test ah, 0x41
jne 0x41582d
xor eax, eax
inc eax
jmp 0x415786
fld qword [ebp - 0x10]
fld qword [ebp - 8]
fucompp
fnstsw ax
test ah, 0x44
jp 0x415843
xor eax, eax
jmp 0x415786
or eax, 0xffffffff
jmp 0x415786
cmp dword [ebp + 0x10], eax
jne 0x415872
lea eax, [ebp + 0x54]
push eax
lea eax, [ebp + 0x74]
push eax
call fcn.004385d3
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp + 0x4c]
push eax
call fcn.004385d3
add esp, 0x10
jmp 0x415b97
cmp dword [ebp + 0x28], 3
jl 0x415d65
lea ecx, [ebp + 0x4c]
mov byte [ebp + 0x6b], 0
call fcn.0040b43e
mov eax, dword [ebp + 0x4c]
cmp word [eax], 0x23
jne 0x41589a
inc eax
inc eax
mov dword [ebp + 0x4c], eax
mov byte [ebp + 0x6b], 1
mov bl, byte [ebp + 0x14]
fldz
mov dword [ebp + 0xc], eax
fstp qword [ebp - 0x1c]
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp + 0xc]
push eax
mov byte [ebp + 0x7b], 0
call fcn.00438848
mov dword [ebp + 0x30], eax
mov eax, dword [ebp + 0x4c]
mov dword [ebp + 0xc], eax
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp + 0xc]
push eax
call fcn.004385d3
mov eax, dword [ebp + 0xc]
add esp, 0x10
cmp word [eax], 0x2e
jne 0x4158e6
fld qword [ebp - 0x1c]
call fcn.0047c064
mov dword [ebp + 0x60], eax
mov dword [ebp + 0x64], edx
mov edi, dword [ebp + 0x28]
cmp edi, 3
jl 0x415a27
cmp edi, 5
jg 0x415a27
mov esi, dword [ebp - 4]
push 3
push 0x492268
push esi
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
jne 0x415a2a
cmp edi, 3
je 0x41594d
mov ax, word [esi + 6]
xor ecx, ecx
mov cx, word [esi + 8]
mov edx, 0xffdf
and eax, edx
and ecx, edx
cmp edi, 4
jne 0x415953
cmp ax, 0x41
jne 0x41593b
xor bl, bl
jmp 0x41594d
cmp ax, 0x42
je 0x41597c
cmp ax, 0x55
jne 0x415a40
mov bl, 1
mov byte [ebp + 0x7b], 1
jmp 0x41597c
cmp edi, 5
jne 0x415a2a
cmp ax, 0x42
jne 0x415a40
cmp cx, 0x55
jne 0x415970
mov bl, 1
jmp 0x41597c
cmp cx, 0x41
jne 0x415a40
xor bl, bl
movsx eax, bl
push eax
call fcn.0041082c
cmp byte [ebp + 0x7b], 0
mov esi, eax
mov eax, edx
pop ecx
mov dword [ebp + 0x54], esi
mov dword [ebp + 0x58], eax
mov ecx, esi
je 0x4159a8
add ecx, 0xfffff
adc eax, 0
shrd ecx, eax, 0x14
shr eax, 0x14
cmp byte [ebp + 0x5f], 0
jne 0x415efa
xor edi, edi
cmp dword [ebp + 0x30], edi
jle 0x415f65
cmp byte [ebp + 0x7b], 0
je 0x415b9a
mov dword [ebp - 0x28], eax
and dword [ebp - 0x28], 0x80000000
and eax, 0x7fffffff
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x5c], ecx
fild qword [ebp - 0x5c]
mov dword [ebp - 0x2c], edi
fild qword [ebp - 0x2c]
fchs
faddp st(1)
fcom qword [ebp - 0x1c]
fnstsw ax
test ah, 0x41
jne 0x4159fa
xor eax, eax
fstp st(0)
inc eax
jmp 0x415a11
fld qword [ebp - 0x1c]
fld st(1)
fucompp
fnstsw ax
fstp st(0)
test ah, 0x44
jp 0x415a0e
xor eax, eax
jmp 0x415a11
or eax, 0xffffffff
cdq
mov esi, eax
xor ecx, ecx
mov dword [ebp + 0x54], esi
mov dword [ebp + 0x58], edx
mov dword [ebp + 0x60], ecx
mov dword [ebp + 0x64], edi
jmp 0x415b9d
mov esi, dword [ebp - 4]
cmp edi, 3
jne 0x415a40
push edi
push 0x492260
push esi
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
je 0x415a9b
mov edx, dword [ebp + 0x74]
cmp word [edx], 0x3a
jne 0x415bb4
mov ax, word [edx + 2]
cmp ax, 0x65
jne 0x415a62
add edx, 4
mov dword [ebp + 0x74], edx
jmp 0x415d6e
cmp ax, 0x70
jne 0x415a8b
add edx, 4
mov dword [ebp + 0x74], edx
xor edi, edi
push edi
push edi
push edi
push edi
push edx
call fcn.004133c5
xor ecx, ecx
add esp, 0x14
test eax, eax
setg cl
mov esi, ecx
jmp 0x415e39
cmp ax, 0x6b
jne 0x415bb4
add edx, 4
mov dword [ebp + 0x74], edx
mov edx, dword [ebp + 0x4c]
xor eax, eax
mov ax, word [edx]
push eax
call fcn.00433834
add esp, 4
test al, al
je 0x415ad1
xor ecx, ecx
mov cx, word [edx + 2]
push ecx
call fcn.00433834
add esp, 4
test al, al
jne 0x415acd
or cx, 0x20
cmp cx, 0x78
jne 0x415ad1
mov byte [ebp + 0x6b], 2
xor esi, esi
cmp byte [ebp + 0x6b], 0
jne 0x415ae9
push esi
push edx
call fcn.0041328b
cdq
pop ecx
pop ecx
mov dword [ebp + 0x60], eax
mov dword [ebp + 0x64], edx
cmp dword [ebp + 0x64], esi
jl 0x415f65
jg 0x415afd
cmp dword [ebp + 0x60], esi
jbe 0x415f65
cmp dword [ebp + 0x64], esi
jl 0x415b1f
jg 0x415b0a
cmp dword [ebp + 0x60], 0x61
jb 0x415b1f
cmp dword [ebp + 0x64], esi
jg 0x415b1f
jl 0x415b17
cmp dword [ebp + 0x60], 0x7a
ja 0x415b1f
add dword [ebp + 0x60], 0xffffffe0
adc dword [ebp + 0x64], 0xffffffff
push dword [ebp + 0x60]
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov cx, ax
and cx, 0x8000
neg cx
mov word [ebp - 0xa2], si
sbb ecx, ecx
and ecx, dword [ebp + 0x60]
cmp ecx, 0x41
mov eax, ecx
cdq
mov dword [ebp + 0x54], eax
mov dword [ebp + 0x58], edx
mov word [ebp - 0xa4], cx
jl 0x415b59
cmp ecx, 0x5a
jle 0x415b79
cmp ecx, 0x30
jl 0x415b63
cmp ecx, 0x39
jle 0x415b79
push ecx
lea eax, [ebp - 0xa4]
push str.0x_lX
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
cmp byte [ebp + 0x5f], 0
mov ecx, dword [ebp + 0x18]
lea eax, [ebp - 0xa4]
push eax
jne 0x415f0e
push str.PressKey
call fcn.004335ed
mov esi, dword [ebp + 0x54]
mov ecx, dword [ebp + 0x60]
mov edi, dword [ebp + 0x3c]
mov dx, word [edi]
test dx, dx
jne 0x415c5f
or esi, dword [ebp + 0x58]
jmp 0x415cbe
mov ax, word [esi]
mov word [ebp - 0x50], ax
xor eax, eax
xor ebx, ebx
mov word [ebp - 0x4e], 0x3a
mov word [ebp - 0x4c], 0x5c
mov word [ebp - 0x4a], bx
lea edi, [ebp - 0x48]
stosd dword es:[edi], eax
movsx eax, byte [ebp + 0x14]
push ebx
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.0040c7a0
add esp, 0xc
cmp byte [ebp + 0x5f], bl
jne 0x415f18
cmp dword [ebp + 0x30], ebx
jle 0x415f1f
shrd eax, edx, 0x14
shr edx, 0x14
mov dword [ebp - 0x20], edx
and dword [ebp - 0x20], 0x80000000
and edx, 0x7fffffff
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], edx
mov dword [ebp - 0x24], ebx
fild qword [ebp - 0x64]
fild qword [ebp - 0x24]
fchs
faddp st(1)
fcom qword [ebp - 0x1c]
fnstsw ax
test ah, 0x41
jne 0x415c32
xor eax, eax
fstp st(0)
inc eax
jmp 0x415c49
fld qword [ebp - 0x1c]
fld st(1)
fucompp
fnstsw ax
fstp st(0)
test ah, 0x44
jp 0x415c46
xor eax, eax
jmp 0x415c49
or eax, 0xffffffff
cdq
mov esi, eax
xor ecx, ecx
mov dword [ebp + 0x54], esi
mov dword [ebp + 0x58], edx
mov dword [ebp + 0x60], ecx
mov dword [ebp + 0x64], ebx
jmp 0x415b9d
push 0x3d
pop ebx
cmp dx, bx
jne 0x415c80
cmp esi, ecx
jne 0x415d2a
mov eax, dword [ebp + 0x64]
cmp dword [ebp + 0x58], eax
jne 0x415d2a
jmp 0x415d3c
cmp dx, 0x3e
jne 0x415c8c
cmp word [edi + 2], bx
je 0x415cde
cmp dx, 0x3c
jne 0x415ca1
mov ax, word [edi + 2]
cmp ax, bx
je 0x415cc8
cmp ax, 0x3e
je 0x415cb0
cmp dx, 0x21
jne 0x415cee
mov ax, word [edi + 2]
cmp ax, bx
jne 0x415cc2
cmp esi, ecx
jne 0x415d3c
mov eax, dword [ebp + 0x64]
cmp dword [ebp + 0x58], eax
je 0x415d2a
jmp 0x415d3c
cmp ax, 0x3e
jne 0x415cd8
mov eax, dword [ebp + 0x64]
cmp dword [ebp + 0x58], eax
jg 0x415d2a
jl 0x415d3c
cmp esi, ecx
ja 0x415d2a
jmp 0x415d3c
cmp ax, 0x3c
jne 0x415cee
mov eax, dword [ebp + 0x64]
cmp dword [ebp + 0x58], eax
jl 0x415d2a
jg 0x415d3c
cmp esi, ecx
jb 0x415d2a
jmp 0x415d3c
cmp dx, 0x3e
jne 0x415d04
mov eax, dword [ebp + 0x64]
cmp dword [ebp + 0x58], eax
jl 0x415d2a
jg 0x415d3c
cmp esi, ecx
jbe 0x415d2a
jmp 0x415d3c
cmp dx, 0x3c
jne 0x415d1a
mov eax, dword [ebp + 0x64]
cmp dword [ebp + 0x58], eax
jg 0x415d2a
jl 0x415d3c
cmp esi, ecx
jae 0x415d2a
jmp 0x415d3c
cmp dx, 0x26
jne 0x415d31
or esi, dword [ebp + 0x58]
je 0x415d2a
or ecx, dword [ebp + 0x64]
jne 0x415d3c
xor esi, esi
jmp 0x415e39
cmp dx, 0x7c
jne 0x415d44
or esi, dword [ebp + 0x58]
je 0x415d25
xor esi, esi
inc esi
jmp 0x415e39
cmp dx, 0x40
jne 0x415f65
xor eax, eax
or esi, dword [ebp + 0x58]
je 0x415d56
inc eax
xor esi, esi
or ecx, dword [ebp + 0x64]
je 0x415d5e
inc esi
xor esi, eax
jmp 0x415e39
cmp dword [ebp], edi
je 0x415f65
push edx
call fcn.0040ec9c
pop ecx
push eax
mov dword [ebp + 0x74], eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ecx, dword [ebp + 0x74]
xor ebx, ebx
mov bx, word [ecx]
mov edi, eax
and ebx, 0xffdf
cmp bx, 0x41
jb 0x415dbf
cmp bx, 0x5a
ja 0x415dbf
cmp word [ecx + 2], 0x3a
jne 0x415dbf
cmp word [ecx + 4], 0
jne 0x415dbf
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
xor ecx, ecx
mov cl, bl
sub cl, 0x41
mov esi, eax
shr esi, cl
and esi, 1
jmp 0x415e39
test edi, edi
jle 0x415ddb
xor eax, eax
mov ax, word [ecx + edi*2 - 2]
push eax
call fcn.0040b4b4
add esp, 4
test al, al
je 0x415ddb
mov bl, 1
jmp 0x415dfb
xor bl, bl
jmp 0x415e01
xor eax, eax
lea edx, [ecx + edi*2]
mov ax, word [edx]
push eax
call fcn.0040b4b4
add esp, 4
test al, al
je 0x415dfe
and word [edx], 0
mov ecx, dword [ebp + 0x74]
dec edi
jns 0x415ddf
xor edi, edi
inc edi
xor esi, esi
cmp edi, esi
je 0x415e39
cmp dword [ebp - 0x54], esi
je 0x415e2b
xor eax, eax
mov ax, word [ecx]
cmp ax, si
je 0x415e2b
cmp word [ecx + 2], 0x3a
jne 0x415e2b
push eax
call fcn.0047aaea
test eax, eax
pop ecx
je 0x415e39
mov ecx, dword [ebp + 0x74]
movsx eax, bl
push eax
push ecx
call fcn.0047ad15
pop ecx
pop ecx
mov esi, eax
xor eax, eax
cmp dword [ebp - 0x34], eax
je 0x415e47
test esi, esi
sete al
jmp 0x415e4c
test esi, esi
setne al
mov edx, dword [ebp + 0x20]
mov dword [ebp + 0x2c], eax
add eax, 0x30
push 2
pop edi
mov word [edx], ax
add edx, edi
cmp byte [ebp + 0x53], 0
mov dword [ebp + 0x20], edx
je 0x415f4f
mov esi, dword [ebp + 0x48]
mov cx, word [esi]
test cx, cx
je 0x415f24
cmp cx, 0x5b
je 0x415ebd
cmp cx, 0x5d
je 0x415ebd
cmp cx, 0x28
je 0x415ebd
cmp cx, 0x29
je 0x415ebd
cmp cx, 0x26
je 0x415ebd
cmp cx, 0x7c
jne 0x415eaa
mov ax, word [esi + 2]
call fcn.00402b47
test al, al
jne 0x415ebd
cmp cx, 0x40
je 0x415ebd
mov eax, ecx
call fcn.00402b47
test al, al
je 0x415ed2
jmp 0x415ec5
mov word [edx], cx
add edx, edi
mov dword [ebp + 0x20], edx
add esi, edi
mov cx, word [esi]
test cx, cx
mov dword [ebp + 0x48], esi
jne 0x415e79
cmp word [esi], 0
je 0x415f24
lea ecx, [ebp + 0x1c]
call fcn.0042eb98
lea ecx, [ebp + 0x34]
call fcn.0042eb98
lea ecx, [ebp + 0x44]
call fcn.0042eb98
mov esi, dword [ebp + 0x48]
xor edi, edi
jmp 0x41527a
push dword [ebp + 0x18]
push eax
push ecx
push dword [ebp + 0x7c]
call fcn.0040eaf2
add esp, 0x10
mov esi, eax
jmp 0x415f6a
push dword [ebp + 0x7c]
call fcn.004335ed
jmp 0x415f6a
push dword [ebp + 0x18]
push edx
push eax
jmp 0x415eff
or esi, 0xffffffff
jmp 0x415f6a
mov eax, dword [ebp - 0x30]
mov word [eax - 6], 0x23
mov word [eax - 4], 0x26
lea ecx, [ebp + 0x2c]
add eax, 0xfffffffe
push ecx
mov ecx, dword [ebp + 0x18]
mov word [eax], 0x3d
and word [edx], 0
push eax
call fcn.0046c378
mov dword [ebp + 0x2c], eax
cmp dword [ebp - 0x40], 0
je 0x415f60
xor eax, eax
cmp dword [ebp + 0x2c], eax
sete al
mov dword [ebp + 0x2c], eax
mov esi, dword [ebp + 0x2c]
jmp 0x415f6a
mov esi, 0x80070057
lea ecx, [ebp + 0x1c]
call fcn.0042eb98
lea ecx, [ebp + 0x34]
call fcn.0042eb98
lea ecx, [ebp + 0x44]
call fcn.0042eb98
pop edi
mov eax, esi
pop esi
pop ebx
add ebp, 0x6c
leave
ret 0xc