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

Disassembly:
push ebp
lea ebp, [esp - 0x6c]
sub esp, 0x160
push ebx
push esi
push edi
push 0x4e3d84
mov dword [ebp + 0x3c], ecx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [ebp + 0x78]
and dword [ebp + 0x10], 0
mov eax, ecx
and eax, 0x10000
mov dword [ebp - 0x5c], eax
mov eax, ecx
and eax, 0x20000
mov esi, ecx
mov dword [ebp - 0x48], eax
movzx eax, cl
xor ecx, ecx
and esi, 0x40000
test eax, eax
sete cl
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x14], ecx
xor ecx, ecx
cmp eax, 1
sete cl
xor edx, edx
cmp eax, 2
sete dl
cmp dword [ebp - 0x14], 0
mov dword [ebp + 8], ecx
mov dword [ebp - 8], edx
jne 0x424785
test ecx, ecx
mov byte [ebp + 0x36], 0
je 0x424789
mov byte [ebp + 0x36], 1
mov eax, dword [ebp + 0x74]
add eax, 0xfffffffe
mov dword [ebp - 0x44], eax
mov dword [ebp], eax
push 1
lea eax, [ebp + 0x74]
push eax
push 0x4cb498
call fcn.004485c7
add esp, 0xc
cmp dword [ebp - 0x14], 0
push 0x24
pop edx
push 0x23
pop ebx
movzx eax, al
push 0x7c
mov dword [ebp - 0x3c], eax
mov dword [ebp + 0xc], 0x100001
mov dword [ebp + 0x14], 0x100002
mov dword [ebp + 0x2c], 0x100003
pop edi
jne 0x4247e9
cmp dword [ebp + 8], 0
je 0x4247e0
mov dword [ebp + 0xc], edi
mov dword [ebp + 0x2c], edx
jmp 0x4247ef
cmp dword [ebp - 8], 0
je 0x4247f2
mov dword [ebp + 0x10], edi
mov dword [ebp + 0xc], edx
mov dword [ebp + 0x2c], edi
mov dword [ebp + 0x14], ebx
mov eax, dword [ebp + 0x74]
mov cx, word [eax]
cmp cx, 0x2a
mov byte [ebp + 0x47], 0
jne 0x42480d
mov ecx, dword [ebp + 0xc]
push 0x2a
pop esi
mov dword [ebp - 0x10], esi
jmp 0x42481f
cmp cx, dx
je 0x42481c
cmp cx, bx
je 0x42481c
cmp cx, di
jne 0x42482a
movzx ecx, cx
inc eax
inc eax
mov dword [ebp + 0x10], ecx
mov byte [ebp + 0x47], cl
mov dword [ebp + 0x74], eax
cmp word [eax], 0x5b
mov edi, eax
sete byte [ebp + 0x57]
cmp byte [ebp + 0x57], 0
mov dword [ebp + 0x50], edi
je 0x42489c
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea ecx, [edi + eax*2 - 2]
jmp 0x424850
and word [ecx], 0
dec ecx
dec ecx
mov ax, word [ecx]
call fcn.004b1b03
test al, al
jne 0x42484a
cmp word [ecx], 0x5d
jne 0x424866
and word [ecx], 0
push 2
pop edx
add edi, edx
xor ecx, ecx
jmp 0x424891
mov eax, ecx
call fcn.004b1b03
test al, al
jne 0x42488f
cmp cx, 0x5b
je 0x424886
cmp cx, 0x28
jne 0x42489c
mov eax, dword [ebp]
add dword [ebp], edx
mov word [eax], cx
add edi, edx
mov cx, word [edi]
test cx, cx
mov dword [ebp + 0x50], edi
jne 0x42486f
mov eax, dword [ebp + 0x3c]
cmp byte [eax + 0x92], 0
jne 0x4248b4
cmp byte [eax + 9], 0
jne 0x4248b4
and dword [ebp - 0xc], 0
jmp 0x4248bb
mov dword [ebp - 0xc], 1
push 1
lea eax, [ebp + 0x74]
push eax
push 0x4cb498
xor ebx, ebx
mov dword [ebp + 0x20], esi
mov dword [ebp + 0x74], edi
call fcn.004485c7
mov edi, dword [ebp + 0x74]
movzx eax, al
mov dword [ebp - 0x38], eax
mov eax, dword [ebp + 0x10]
add esp, 0xc
cmp byte [ebp + 0x57], bl
mov dword [ebp + 0x48], ebx
mov dword [ebp + 0x4c], ebx
mov dword [ebp + 0x60], ebx
mov dword [ebp + 0x64], ebx
mov dword [ebp + 0x38], edi
mov dword [ebp + 0x5c], ebx
mov dword [ebp + 0x58], ebx
mov dword [ebp + 0x30], ebx
mov dword [ebp + 4], ebx
mov byte [ebp + 0x7b], bl
mov dword [ebp + 0x18], eax
je 0x424c0f
mov esi, dword [ebp + 8]
mov edx, edi
xor eax, eax
mov ax, word [edx]
mov byte [ebp + 0x6b], bl
xor bl, bl
cmp ax, 0x22
mov dword [ebp + 0x50], edx
mov dword [ebp + 0x28], edx
je 0x424946
cmp ax, 0x27
je 0x424946
test ax, ax
je 0x42497c
push eax
call fcn.00414d24
add esp, 4
test al, al
jne 0x424941
xor esi, esi
lea eax, [edx + 2]
jmp 0x424979
xor eax, eax
mov ax, word [edx + 2]
push eax
call fcn.00414d24
add esp, 4
test al, al
jne 0x42495b
xor esi, esi
push 0xc1
lea eax, [ebp + 0x28]
push 0
push eax
call fcn.0041a9b6
mov edx, eax
add esp, 0xc
mov byte [ebp + 0x6b], 1
mov bl, 1
mov dword [ebp + 0x50], edx
mov dword [ebp + 0x38], eax
lea ecx, [ebp + 0x38]
call fcn.0040fb41
mov edi, dword [ebp + 0x38]
xor ecx, ecx
jmp 0x424a1e
mov eax, ecx
call fcn.004b1b03
test al, al
je 0x4249b3
cmp bl, 1
jg 0x424a2a
lea ecx, [ebp + 0x38]
inc bl
call fcn.0040fb41
mov edi, dword [ebp + 0x38]
dec edi
dec edi
jmp 0x424a19
cmp cx, 0x3e
je 0x424ab3
cmp cx, 0x3c
je 0x424ab3
cmp cx, 0x3d
je 0x424ab3
cmp cx, 0x21
je 0x424ab3
test esi, esi
je 0x424a15
cmp dword [ebp + 8], 0
je 0x424a15
cmp cx, 0x26
je 0x4249f7
cmp cx, 0x7c
je 0x4249f7
cmp cx, 0x40
jne 0x424a15
mov ax, word [edi + 2]
call fcn.004b1b03
test al, al
je 0x424a15
mov ax, word [edi - 2]
call fcn.004b1b03
test al, al
jne 0x424a96
test bl, bl
jg 0x424a2a
inc edi
inc edi
mov dword [ebp + 0x38], edi
mov cx, word [edi]
test cx, cx
jne 0x42498e
cmp byte [ebp + 0x6b], 0
jne 0x424bfe
mov ecx, dword [ebp + 0x10]
test ecx, ecx
mov eax, dword [ebp + 0x74]
mov ax, word [eax]
jne 0x424af0
movzx eax, ax
cmp dword [ebp + 0x2c], eax
je 0x424b1f
cmp dword [ebp + 0x14], eax
je 0x424b1f
push 0xc1
lea eax, [ebp + 0x28]
push 0
push eax
call fcn.0041a9b6
mov edx, eax
add esp, 0xc
mov dword [ebp + 0x50], edx
cmp byte [ebp + 0x7b], 0
je 0x424bfe
sub edx, edi
sar edx, 1
push edx
push edi
lea ecx, [ebp + 4]
call fcn.004466b2
mov eax, dword [ebp + 4]
and word [edi], 0
jmp 0x424c6e
lea eax, [edi + 2]
mov cx, word [eax]
cmp cx, word [edi]
jne 0x424aad
and word [edi], 0
mov edi, eax
mov byte [ebp + 0x7b], 5
jmp 0x424ab7
mov byte [ebp + 0x7b], 3
jmp 0x424ab7
mov byte [ebp + 0x7b], 1
cmp byte [ebp + 0x7b], 1
lea ecx, [edi + 2]
mov dword [ebp + 0x28], ecx
jne 0x424a34
mov ax, word [ecx]
cmp ax, 0x3e
je 0x424ae6
cmp ax, 0x3c
je 0x424ae6
cmp ax, 0x3d
je 0x424ae6
cmp ax, 0x21
jne 0x424a34
inc ecx
inc ecx
mov dword [ebp + 0x28], ecx
jmp 0x424a34
cmp dword [ebp + 0x2c], ecx
je 0x424afe
cmp dword [ebp + 0x14], ecx
je 0x424afe
xor ecx, ecx
jmp 0x424b01
xor ecx, ecx
inc ecx
cmp ax, 0x27
je 0x424b12
cmp ax, 0x2a
je 0x424b12
xor eax, eax
inc eax
jmp 0x424b14
xor eax, eax
test ecx, eax
je 0x424a5a
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x424a5a
mov eax, dword [ebp + 0x28]
lea ecx, [ebp + 0x50]
mov dword [ebp + 0x50], eax
call fcn.0040fb41
mov edx, dword [ebp + 0x50]
xor ebx, ebx
cmp word [edx], 0x40
jne 0x424bed
xor eax, eax
lea ecx, [edx + 2]
mov ax, word [ecx]
push eax
call fcn.00414d24
add esp, 4
test al, al
je 0x424bed
mov edx, ecx
jmp 0x424bea
cmp cx, 0x25
jne 0x424ba7
inc ebx
cmp ebx, 2
jle 0x424b7a
cmp dword [ebp - 0xc], 0
je 0x424a5a
inc edx
inc edx
xor eax, eax
jmp 0x424b98
test ax, ax
je 0x424a72
call fcn.004b1b03
test al, al
jne 0x424a72
inc edx
inc edx
mov ax, word [edx]
cmp ax, 0x25
mov dword [ebp + 0x50], edx
jne 0x424b80
inc ebx
jmp 0x424be8
mov eax, ecx
call fcn.004b1b03
test al, al
jne 0x424a72
cmp cx, 0x29
je 0x424a72
cmp cx, 0x5d
je 0x424a72
cmp cx, 0x26
je 0x424a72
cmp cx, 0x7c
je 0x424a72
cmp cx, 0x40
je 0x424a72
inc edx
inc edx
mov dword [ebp + 0x50], edx
mov cx, word [edx]
test cx, cx
jne 0x424b64
jmp 0x424a72
cmp word [edx], 0
je 0x424c71
and word [edx], 0
inc edx
inc edx
mov dword [ebp + 0x50], edx
jmp 0x424c71
cmp dword [ebp + 8], ebx
je 0x424c51
cmp word [edi], 0x22
jne 0x424c51
add edi, 2
mov ax, word [edi]
cmp ax, bx
je 0x424c71
inc edi
inc edi
cmp ax, 0x22
je 0x424c51
mov ax, word [edi]
cmp ax, bx
jne 0x424c25
jmp 0x424c51
cmp ax, 0x3e
je 0x424c5b
cmp ax, 0x3c
je 0x424c5b
cmp ax, 0x3d
je 0x424c5b
cmp ax, 0x21
je 0x424c5b
inc edi
inc edi
mov ax, word [edi]
cmp ax, bx
jne 0x424c37
jmp 0x424c71
push edi
lea ecx, [ebp + 4]
mov byte [ebp + 0x7b], 1
call fcn.004506c8
mov eax, dword [ebp + 4]
mov word [edi], bx
mov dword [ebp + 0x5c], eax
mov eax, dword [ebp + 0x74]
push 0x2a
pop ecx
cmp word [eax], cx
jne 0x424ca1
cmp byte [ebp + 0x57], 0
je 0x424ca1
mov edx, dword [ebp + 0xc]
xor esi, esi
cmp edx, dword [ebp + 0x10]
jne 0x424c91
cmp dword [ebp - 0x10], esi
je 0x424ca3
mov edx, dword [ebp + 0xc]
inc eax
inc eax
mov dword [ebp + 0x18], edx
mov dword [ebp + 0x20], ecx
mov dword [ebp + 0x74], eax
jmp 0x424ca3
xor esi, esi
cmp dword [ebp - 0xc], esi
jne 0x424d44
cmp dword [ebp + 0x20], esi
jne 0x424d49
push 1
push esi
lea ecx, [ebp + 0x58]
push ecx
mov ecx, dword [ebp + 0x3c]
push eax
call fcn.0045937c
mov eax, dword [ebp + 0x58]
push esi
push esi
lea ecx, [ebp + 0x58]
push ecx
mov ecx, dword [ebp + 0x3c]
push eax
mov dword [ebp - 0x4c], eax
mov dword [ebp + 0x58], esi
call fcn.00457f62
cmp dword [ebp + 0x5c], esi
je 0x424d37
mov ecx, dword [ebp + 0x3c]
push 1
xor edi, edi
push edi
lea eax, [ebp + 0x30]
push eax
push dword [ebp + 0x5c]
call fcn.0045937c
mov eax, dword [ebp + 0x30]
push edi
push edi
lea ecx, [ebp + 0x30]
push ecx
mov ecx, dword [ebp + 0x3c]
push eax
mov dword [ebp - 0x40], eax
mov dword [ebp + 0x30], edi
call fcn.00457f62
push dword [ebp + 0x58]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push dword [ebp + 0x30]
lea ecx, [ebp + 0x58]
mov esi, eax
call fcn.004465fa
mov eax, dword [ebp + 0x58]
lea eax, [eax + esi*2]
lea ecx, [ebp - 0x40]
mov dword [ebp + 0x5c], eax
call fcn.0043fe25
xor esi, esi
lea ecx, [ebp - 0x4c]
call fcn.0043fe25
jmp 0x424e81
cmp dword [ebp + 0x20], esi
je 0x424d87
mov ecx, dword [ebp + 0x3c]
cmp byte [ecx + 9], 0
jne 0x424d66
cmp word [eax], 0x26
je 0x424d66
lea ecx, [ebp + 0x58]
push ecx
push eax
call fcn.0044fee0
pop ecx
pop ecx
jmp 0x424d97
push 0xffffffffffffffff
push esi
push eax
call fcn.00415610
cmp eax, esi
je 0x424d77
mov eax, dword [eax]
jmp 0x424d7c
mov eax, 0x4c6a64
push eax
lea ecx, [ebp + 0x58]
call fcn.004506c8
jmp 0x424d97
push 1
push esi
lea ecx, [ebp + 0x58]
push ecx
mov ecx, dword [ebp + 0x3c]
push eax
call fcn.0045937c
cmp dword [ebp + 0x5c], esi
je 0x424e81
push dword [ebp + 0x58]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
xor esi, esi
cmp dword [ebp + 0x20], esi
mov ebx, eax
je 0x424e59
mov eax, dword [ebp + 0x5c]
mov dword [ebp + 0x20], 0x4c6a64
mov dword [ebp + 0x28], esi
mov cx, word [eax]
cmp cx, 0x3e
je 0x424dde
cmp cx, 0x3c
je 0x424dde
cmp cx, 0x3d
je 0x424dde
cmp cx, 0x21
jne 0x424de2
inc eax
inc eax
jmp 0x424dc3
mov ecx, dword [ebp + 0x3c]
mov edi, eax
sub edi, dword [ebp + 0x5c]
sar edi, 1
cmp byte [ecx + 9], 0
jne 0x424df8
cmp word [eax], 0x26
jne 0x424e09
lea edx, [ebp + 0x28]
push edx
push eax
call fcn.0041d203
cmp eax, esi
je 0x424e09
mov dword [ebp + 0x20], eax
push dword [ebp + 0x20]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
lea eax, [esi + edi]
add eax, ebx
push eax
lea ecx, [ebp + 0x58]
call fcn.004465d3
test edi, edi
je 0x424e39
mov eax, dword [ebp + 0x58]
push edi
push dword [ebp + 0x5c]
lea eax, [eax + ebx*2]
push eax
call fcn.00405c0c
add esp, 0xc
mov eax, dword [ebp + 0x58]
inc esi
push esi
push dword [ebp + 0x20]
add edi, ebx
lea eax, [eax + edi*2]
push eax
call fcn.00405c0c
add esp, 0xc
lea ecx, [ebp + 0x28]
call fcn.0043fe25
jmp 0x424e76
mov ecx, dword [ebp + 0x3c]
push 1
push esi
lea eax, [ebp + 0x30]
push eax
push dword [ebp + 0x5c]
call fcn.0045937c
push dword [ebp + 0x30]
lea ecx, [ebp + 0x58]
call fcn.004465fa
mov eax, dword [ebp + 0x58]
lea eax, [eax + ebx*2]
mov dword [ebp + 0x5c], eax
xor esi, esi
mov eax, dword [ebp + 0x58]
push eax
mov dword [ebp + 0x74], eax
call fcn.004111a0
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenW]
pop ecx
push dword [ebp + 0x74]
call ebx
mov edx, dword [ebp + 0x74]
mov edi, dword [ebp + 0x5c]
cmp edi, esi
lea eax, [edx + eax*2]
mov dword [ebp + 0x28], eax
mov dword [ebp + 0x20], edx
mov dword [ebp + 0x38], edi
jne 0x424ebb
push edx
call ebx
mov edx, dword [ebp + 0x74]
lea edi, [edx + eax*2]
mov dword [ebp + 0x38], edi
cmp edi, esi
mov ecx, edx
je 0x424ed8
mov ax, word [edx]
jmp 0x424ecf
cmp ecx, edi
jae 0x424ed8
inc ecx
inc ecx
mov ax, word [ecx]
call fcn.004b1b03
test al, al
je 0x424ec6
mov bl, byte [ebp + 0x7b]
sub ecx, edx
sar ecx, 1
test bl, bl
mov dword [ebp + 0x5c], ecx
jne 0x424f24
cmp dword [ebp - 8], 0
jne 0x424f24
xor ecx, ecx
mov cx, word [edx]
cmp cx, 0x3a
je 0x424f24
mov eax, dword [ebp + 0x18]
cmp dword [ebp + 0x14], eax
je 0x424f04
cmp dword [ebp + 0x2c], eax
jne 0x424f15
mov eax, ecx
call fcn.00414dee
test al, al
jne 0x424f24
cmp cx, 0x2d
je 0x424f24
cmp dword [ebp + 8], 0
je 0x425395
jmp 0x425770
mov dword [ebp + 0x40], edi
cmp word [edx], 0x3a
jne 0x424f35
test bl, bl
jne 0x424f35
or dword [ebp + 0x18], 0xffffffff
cmp bl, 1
jne 0x424f55
lea eax, [edi + 2]
mov cx, word [eax]
cmp cx, 0x3d
je 0x424f52
cmp word [edi], 0x3c
jne 0x424f59
cmp cx, 0x3e
jne 0x424f59
mov dword [ebp + 0x40], eax
test bl, bl
je 0x424f5d
add dword [ebp + 0x40], 2
lea ecx, [ebp + 0x40]
call fcn.0040fb41
cmp byte [ebp + 0x36], 0
mov ebx, dword [ebp + 0x40]
je 0x42501b
cmp word [ebx], 0x3f
jne 0x42501b
inc ebx
inc ebx
lea ecx, [ebp + 0x7c]
mov byte [ebp + 0x56], 1
mov dword [ebp + 0x40], ebx
call fcn.0040fb41
mov edi, dword [ebp + 0xc]
cmp dword [ebp + 0x18], edi
je 0x424fb0
movzx eax, word [edx]
cmp edi, eax
je 0x424fa6
cmp dword [ebp + 0x14], eax
je 0x424fa6
cmp dword [ebp + 0x2c], eax
jne 0x424fb0
inc edx
mov esi, eax
inc edx
mov dword [ebp + 0x18], esi
mov dword [ebp + 0x74], edx
cmp dword [ebp - 8], 0
je 0x424fe8
cmp byte [ebp + 0x47], 0
jne 0x424fe8
mov eax, dword [ebp + 0x2c]
cmp dword [ebp + 0x18], eax
je 0x424fe8
lea ecx, [ebp + 0x74]
call fcn.0040fb41
mov edx, dword [ebp + 0x74]
mov ax, word [edx]
cmp ax, 0x30
jb 0x424fde
cmp ax, 0x39
jbe 0x424fe8
cmp ax, 0x2e
je 0x424fe8
and dword [ebp + 0x18], 0
cmp dword [ebp - 0x14], 0
jne 0x424ffa
test esi, esi
jne 0x424ffa
cmp word [edx], 0x27
mov eax, edi
je 0x424ffd
mov eax, dword [ebp + 0x18]
cmp edi, eax
jne 0x4250af
lea ecx, [ebp + 0x78]
mov dword [ebp + 0x78], edx
call fcn.0040fb41
mov ecx, dword [ebp + 0x38]
mov edi, dword [ebp + 0x78]
add ecx, 0xfffffffe
jmp 0x425032
mov byte [ebp + 0x56], 0
jmp 0x424f8d
mov ax, word [ecx]
call fcn.004b1b03
test al, al
je 0x425036
dec ecx
dec ecx
cmp ecx, edi
jae 0x425024
sub ecx, edi
inc ecx
inc ecx
sar ecx, 1
mov esi, ecx
lea ecx, [ebp + 0x78]
mov dword [ebp + 0x78], ebx
call fcn.0040fb41
mov ecx, dword [ebp + 0x28]
mov edx, dword [ebp + 0x78]
add ecx, 0xfffffffe
jmp 0x425062
mov ax, word [ecx]
call fcn.004b1b03
test al, al
je 0x425066
dec ecx
dec ecx
cmp ecx, edx
jae 0x425054
sub ecx, edx
inc ecx
inc ecx
sar ecx, 1
mov ebx, ecx
cmp esi, ebx
mov eax, esi
jle 0x425076
mov eax, ebx
test eax, eax
jle 0x425095
cmp dword [ebp - 0x5c], 0
push eax
push edx
push edi
je 0x42508b
call dword [sym.imp.SHLWAPI.dll_StrCmpNW]
jmp 0x425091
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
jne 0x425099
sub esi, ebx
mov eax, esi
cdq
xor ecx, ecx
mov edi, eax
mov dword [ebp + 0x48], edi
mov dword [ebp + 0x4c], edx
mov dword [ebp + 0x60], ecx
mov dword [ebp + 0x64], ecx
jmp 0x4254e5
cmp dword [ebp + 0x2c], eax
jne 0x42515e
fldz
lea eax, [ebp + 0x24]
fstp qword [ebp + 0x24]
push eax
lea eax, [ebp + 0x74]
fldz
push eax
fstp qword [ebp + 0x1c]
call fcn.00453d37
lea eax, [ebp + 0x1c]
push eax
lea eax, [ebp + 0x40]
push eax
call fcn.00453d37
fld qword [ebp + 0x24]
add esp, 0x10
call fcn.004b4b58
fld qword [ebp + 0x1c]
mov edi, eax
mov dword [ebp + 0x48], edi
mov dword [ebp + 0x4c], edx
call fcn.004b4b58
cmp byte [ebp + 0x7b], 1
mov ecx, eax
mov dword [ebp + 0x60], ecx
mov dword [ebp + 0x64], edx
jg 0x4254e5
fild qword [ebp + 0x48]
fld qword [ebp + 0x24]
fucompp
fnstsw ax
test ah, 0x44
jp 0x42512b
fild qword [ebp + 0x60]
fld qword [ebp + 0x1c]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x4254e5
fld qword [ebp + 0x24]
fcomp qword [ebp + 0x1c]
fnstsw ax
test ah, 0x41
jne 0x425140
xor eax, eax
inc eax
jmp 0x425099
fld qword [ebp + 0x1c]
fld qword [ebp + 0x24]
fucompp
fnstsw ax
test ah, 0x44
jp 0x425156
xor eax, eax
jmp 0x425099
or eax, 0xffffffff
jmp 0x425099
cmp dword [ebp + 0x14], eax
jne 0x425185
lea eax, [ebp + 0x48]
push eax
lea eax, [ebp + 0x74]
push eax
call fcn.00453c1f
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp + 0x40]
push eax
call fcn.00453c1f
add esp, 0x10
jmp 0x4254df
push 3
pop edi
cmp dword [ebp + 0x5c], edi
jl 0x425766
lea ecx, [ebp + 0x40]
mov byte [ebp + 0x6b], 0
mov byte [ebp + 0x37], 1
call fcn.0040fb41
mov eax, dword [ebp + 0x40]
cmp word [eax], 0x23
jne 0x4251b3
inc eax
inc eax
mov dword [ebp + 0x40], eax
mov byte [ebp + 0x6b], 1
mov bl, byte [ebp + 8]
fldz
fstp qword [ebp - 0x1c]
mov byte [ebp + 0x7b], 0
cmp word [eax], 0x2a
jne 0x4251ce
inc eax
inc eax
mov dword [ebp + 0x40], eax
mov byte [ebp + 0x37], 0
mov dword [ebp - 4], eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 4]
push eax
call fcn.0044c3b8
mov dword [ebp + 0x28], eax
mov eax, dword [ebp + 0x40]
mov dword [ebp - 4], eax
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp - 4]
push eax
call fcn.0044c029
mov eax, dword [ebp - 4]
add esp, 0x10
cmp word [eax], 0x2e
jne 0x42520e
fld qword [ebp - 0x1c]
call fcn.004b4b58
mov dword [ebp + 0x60], eax
mov dword [ebp + 0x64], edx
cmp dword [ebp + 0x5c], edi
jl 0x42534e
cmp dword [ebp + 0x5c], 5
jg 0x42534e
mov esi, dword [ebp + 0x20]
push edi
push 0x4cb490
push esi
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
jne 0x425351
cmp dword [ebp + 0x5c], edi
je 0x425273
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 + 0x5c], 4
jne 0x425279
cmp ax, 0x41
jne 0x425261
xor bl, bl
jmp 0x425273
cmp ax, 0x42
je 0x4252a3
cmp ax, 0x55
jne 0x425367
mov bl, 1
mov byte [ebp + 0x7b], 1
jmp 0x4252a3
cmp dword [ebp + 0x5c], 5
jne 0x425351
cmp ax, 0x42
jne 0x425367
cmp cx, 0x55
jne 0x425297
mov bl, 1
jmp 0x4252a3
cmp cx, 0x41
jne 0x425367
xor bl, bl
movsx eax, bl
push eax
call fcn.0041578f
cmp byte [ebp + 0x7b], 0
mov edi, eax
mov eax, edx
pop ecx
mov dword [ebp + 0x48], edi
mov dword [ebp + 0x4c], eax
mov ecx, edi
je 0x4252cf
add ecx, 0xfffff
adc eax, 0
shrd ecx, eax, 0x14
shr eax, 0x14
cmp byte [ebp + 0x56], 0
jne 0x425937
xor esi, esi
cmp dword [ebp + 0x28], esi
jle 0x42599f
cmp byte [ebp + 0x7b], 0
je 0x4254e2
mov dword [ebp - 0x20], eax
and dword [ebp - 0x20], 0x80000000
and eax, 0x7fffffff
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x64], ecx
fild qword [ebp - 0x64]
mov dword [ebp - 0x24], esi
fild qword [ebp - 0x24]
fchs
faddp st(1)
fcom qword [ebp - 0x1c]
fnstsw ax
test ah, 0x41
jne 0x425321
xor eax, eax
fstp st(0)
inc eax
jmp 0x425338
fld qword [ebp - 0x1c]
fld st(1)
fucompp
fnstsw ax
fstp st(0)
test ah, 0x44
jp 0x425335
xor eax, eax
jmp 0x425338
or eax, 0xffffffff
cdq
mov edi, eax
xor ecx, ecx
mov dword [ebp + 0x48], edi
mov dword [ebp + 0x4c], edx
mov dword [ebp + 0x60], ecx
mov dword [ebp + 0x64], esi
jmp 0x4254e5
mov esi, dword [ebp + 0x20]
cmp dword [ebp + 0x5c], edi
jne 0x425367
push edi
push 0x4cb488
push esi
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
je 0x4253e3
mov edx, dword [ebp + 0x74]
cmp word [edx], 0x3a
jne 0x425504
mov ax, word [edx + 2]
cmp ax, 0x65
jne 0x425389
add edx, 4
mov dword [ebp + 0x74], edx
jmp 0x425770
cmp ax, 0x70
jne 0x4253d3
add edx, 4
mov dword [ebp + 0x74], edx
push 0x3f
lea eax, [ebp + 0x78]
push 0x2a
push eax
mov dword [ebp + 0x78], edx
call fcn.004403c2
mov eax, dword [ebp + 0x78]
mov ax, word [eax]
neg ax
sbb eax, eax
xor ecx, ecx
push ecx
push ecx
push ecx
and eax, 0x101
push eax
push dword [ebp + 0x74]
call fcn.004188d0
add esp, 0x20
mov esi, eax
neg esi
sbb esi, esi
neg esi
jmp 0x425878
cmp ax, 0x6b
jne 0x425504
add edx, 4
mov dword [ebp + 0x74], edx
mov edx, dword [ebp + 0x40]
xor eax, eax
mov ax, word [edx]
push eax
call fcn.00414d24
add esp, 4
test al, al
je 0x425419
xor ecx, ecx
mov cx, word [edx + 2]
push ecx
call fcn.00414d24
add esp, 4
test al, al
jne 0x425415
or cx, 0x20
cmp cx, 0x78
jne 0x425419
mov byte [ebp + 0x6b], 2
xor esi, esi
cmp byte [ebp + 0x6b], 0
jne 0x425431
push esi
push edx
call fcn.00418796
cdq
pop ecx
pop ecx
mov dword [ebp + 0x60], eax
mov dword [ebp + 0x64], edx
cmp dword [ebp + 0x64], esi
jl 0x42599f
jg 0x425445
cmp dword [ebp + 0x60], esi
jbe 0x42599f
cmp dword [ebp + 0x64], esi
jl 0x425467
jg 0x425452
cmp dword [ebp + 0x60], 0x61
jb 0x425467
cmp dword [ebp + 0x64], esi
jg 0x425467
jl 0x42545f
cmp dword [ebp + 0x60], 0x7a
ja 0x425467
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 - 0xb2], si
sbb ecx, ecx
and ecx, dword [ebp + 0x60]
cmp ecx, 0x41
mov eax, ecx
cdq
mov dword [ebp + 0x48], eax
mov dword [ebp + 0x4c], edx
mov word [ebp - 0xb4], cx
jl 0x4254a1
cmp ecx, 0x5a
jle 0x4254c1
cmp ecx, 0x30
jl 0x4254ab
cmp ecx, 0x39
jle 0x4254c1
push ecx
lea eax, [ebp - 0xb4]
push str.0x_lX
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
cmp byte [ebp + 0x56], 0
mov ecx, dword [ebp + 0x3c]
lea eax, [ebp - 0xb4]
push eax
jne 0x42593e
push str.PressKey
call fcn.00445c44
mov edi, dword [ebp + 0x48]
mov ecx, dword [ebp + 0x60]
mov esi, dword [ebp + 0x38]
mov dx, word [esi]
test dx, dx
jne 0x425643
xor esi, esi
or edi, dword [ebp + 0x4c]
je 0x425878
jmp 0x425661
mov edx, dword [ebp + 0x20]
mov cx, word [edx]
xor ebx, ebx
xor eax, eax
lea edi, [ebp - 0x50]
mov word [ebp - 0x58], cx
mov word [ebp - 0x56], 0x3a
mov word [ebp - 0x54], 0x5c
mov word [ebp - 0x52], bx
xor esi, esi
cmp cx, 0x5c
stosd dword es:[edi], eax
lea eax, [ebp - 0x58]
jne 0x425549
mov eax, edx
mov edx, dword [ebp + 0x38]
cmp edx, ebx
je 0x425549
xor ecx, ecx
mov cx, word [edx]
cmp cx, bx
je 0x425549
mov esi, ecx
mov word [edx], bx
movsx ecx, byte [ebp + 8]
push ebx
push ecx
push eax
call fcn.004111fc
add esp, 0xc
cmp si, bx
je 0x425563
mov ecx, dword [ebp + 0x38]
mov word [ecx], si
cmp byte [ebp + 0x56], 0
jne 0x42594a
cmp dword [ebp + 0x28], ebx
jle 0x42595e
cmp byte [ebp + 0x37], 0
je 0x425606
mov ecx, eax
shrd ecx, edx, 0x14
shr edx, 0x14
mov dword [ebp - 0x30], edx
mov esi, 0x7fffffff
and edx, esi
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x68], edx
mov edx, dword [ebp - 4]
mov ecx, 0x80000000
and dword [ebp - 0x30], ecx
fild qword [ebp - 0x6c]
cmp word [edx], 0x2e
mov dword [ebp - 0x34], ebx
fild qword [ebp - 0x34]
fchs
faddp st(1)
jne 0x4255e1
and eax, 0xfffff
mov dword [ebp - 0x74], eax
xor eax, eax
mov dword [ebp - 0x28], eax
and eax, esi
and dword [ebp - 0x28], ecx
mov dword [ebp - 0x70], eax
fild qword [ebp - 0x74]
mov dword [ebp - 0x2c], ebx
fild qword [ebp - 0x2c]
fchs
faddp st(1)
fmul qword [0x4cb460]
faddp st(1)
fcom qword [ebp - 0x1c]
fnstsw ax
test ah, 0x41
jne 0x4255f2
fstp st(0)
xor eax, eax
inc eax
jmp 0x42562d
fld qword [ebp - 0x1c]
fld st(1)
fucompp
fnstsw ax
fstp st(0)
test ah, 0x44
jp 0x42562a
xor eax, eax
jmp 0x42562d
cmp dword [ebp + 0x64], ebx
jg 0x425612
jl 0x4255ed
cmp dword [ebp + 0x60], ebx
jb 0x4255ed
cmp edx, dword [ebp + 0x64]
jb 0x425620
ja 0x4255ed
cmp eax, dword [ebp + 0x60]
jbe 0x425623
jmp 0x4255ed
cmp eax, dword [ebp + 0x60]
jne 0x42562a
cmp edx, dword [ebp + 0x64]
je 0x425602
or eax, 0xffffffff
cdq
mov edi, eax
xor ecx, ecx
mov dword [ebp + 0x48], edi
mov dword [ebp + 0x4c], edx
mov dword [ebp + 0x60], ecx
mov dword [ebp + 0x64], ebx
jmp 0x4254e5
push 0x3d
pop ebx
cmp dx, bx
jne 0x425667
cmp edi, ecx
jne 0x42573e
mov eax, dword [ebp + 0x64]
cmp dword [ebp + 0x4c], eax
jne 0x42573e
xor esi, esi
inc esi
jmp 0x425878
cmp dx, 0x3e
jne 0x42568b
cmp word [esi + 2], bx
jne 0x42568b
mov eax, dword [ebp + 0x64]
cmp dword [ebp + 0x4c], eax
jl 0x42573e
jg 0x42565f
cmp edi, ecx
jb 0x42573e
jmp 0x42565f
cmp dx, 0x3c
jne 0x4256c4
mov ax, word [esi + 2]
cmp ax, bx
jne 0x4256b2
mov eax, dword [ebp + 0x64]
cmp dword [ebp + 0x4c], eax
jg 0x42573e
jl 0x42565f
cmp edi, ecx
ja 0x42573e
jmp 0x42565f
cmp ax, 0x3e
jne 0x4256c4
cmp edi, ecx
jne 0x42565f
mov eax, dword [ebp + 0x64]
cmp dword [ebp + 0x4c], eax
jmp 0x425738
cmp dx, 0x21
jne 0x4256df
mov ax, word [esi + 2]
cmp ax, bx
je 0x4256b8
cmp ax, 0x3e
je 0x42569a
cmp ax, 0x3c
je 0x425673
cmp dx, 0x3e
jne 0x4256fc
mov eax, dword [ebp + 0x64]
cmp dword [ebp + 0x4c], eax
jl 0x42573e
jg 0x42565f
cmp edi, ecx
jbe 0x42573e
jmp 0x42565f
cmp dx, 0x3c
jne 0x425719
mov eax, dword [ebp + 0x64]
cmp dword [ebp + 0x4c], eax
jg 0x42573e
jl 0x42565f
cmp edi, ecx
jae 0x42573e
jmp 0x42565f
cmp dx, 0x26
jne 0x425726
or edi, dword [ebp + 0x4c]
je 0x42573e
jmp 0x425735
cmp dx, 0x7c
jne 0x425745
or edi, dword [ebp + 0x4c]
jne 0x42565f
or ecx, dword [ebp + 0x64]
jne 0x42565f
xor esi, esi
jmp 0x425878
cmp dx, 0x40
jne 0x42599f
xor eax, eax
or edi, dword [ebp + 0x4c]
je 0x425757
inc eax
xor esi, esi
or ecx, dword [ebp + 0x64]
je 0x42575f
inc esi
xor esi, eax
jmp 0x425878
cmp dword [ebp - 8], 0
je 0x42599f
push edx
call fcn.004135f9
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
mov dword [ebp + 0x78], 0xfffffff8
and ebx, 0xffdf
cmp bx, 0x41
jb 0x4257f6
cmp bx, 0x5a
ja 0x4257f6
cmp word [ecx + 2], 0x3a
jne 0x4257f6
cmp word [ecx + 4], 0
je 0x4257c9
cmp bx, 0x42
ja 0x4257f6
push ebx
call fcn.004b3ac8
neg eax
sbb eax, eax
inc eax
pop ecx
mov dword [ebp + 0x78], eax
je 0x4257f3
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
je 0x425878
mov ecx, dword [ebp + 0x74]
cmp word [ecx + 4], 0
je 0x425878
jmp 0x4257f6
mov ecx, dword [ebp + 0x74]
test edi, edi
jle 0x425812
xor eax, eax
mov ax, word [ecx + edi*2 - 2]
push eax
call fcn.0040fbce
add esp, 4
test al, al
je 0x425812
mov bl, 1
jmp 0x425832
xor bl, bl
jmp 0x425838
xor eax, eax
lea edx, [ecx + edi*2]
mov ax, word [edx]
push eax
call fcn.0040fbce
add esp, 4
test al, al
je 0x425835
and word [edx], 0
mov ecx, dword [ebp + 0x74]
dec edi
jns 0x425816
xor edi, edi
inc edi
xor esi, esi
cmp edi, esi
je 0x425878
cmp dword [ebp - 0x48], esi
je 0x425867
mov ax, word [ecx]
cmp ax, si
je 0x425867
cmp word [ecx + 2], 0x3a
jne 0x425867
cmp dword [ebp + 0x78], esi
jg 0x425878
jge 0x425867
push eax
call fcn.004b3ac8
test eax, eax
pop ecx
je 0x425878
mov ecx, dword [ebp + 0x74]
movsx eax, bl
or eax, 0x10
push eax
push ecx
call fcn.004b3d02
pop ecx
pop ecx
mov esi, eax
xor eax, eax
cmp dword [ebp - 0x38], eax
je 0x425886
test esi, esi
sete al
jmp 0x42588b
test esi, esi
setne al
mov edx, dword [ebp]
push 2
lea ecx, [eax + 0x30]
pop edi
mov word [edx], cx
add edx, edi
cmp byte [ebp + 0x57], 0
mov dword [ebp], edx
je 0x42598e
mov esi, dword [ebp + 0x50]
mov cx, word [esi]
test cx, cx
je 0x425963
cmp cx, 0x5b
je 0x4258f9
cmp cx, 0x5d
je 0x4258f9
cmp cx, 0x28
je 0x4258f9
cmp cx, 0x29
je 0x4258f9
cmp cx, 0x26
je 0x4258f9
cmp cx, 0x7c
jne 0x4258e6
mov ax, word [esi + 2]
call fcn.004b1b03
test al, al
jne 0x4258f9
cmp cx, 0x40
je 0x4258f9
mov eax, ecx
call fcn.004b1b03
test al, al
je 0x42590e
jmp 0x425901
mov word [edx], cx
add edx, edi
mov dword [ebp], edx
add esi, edi
mov cx, word [esi]
test cx, cx
mov dword [ebp + 0x50], esi
jne 0x4258b5
cmp word [esi], 0
je 0x425963
lea ecx, [ebp + 4]
call fcn.0043fe25
lea ecx, [ebp + 0x30]
call fcn.0043fe25
lea ecx, [ebp + 0x58]
call fcn.0043fe25
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp + 0x50]
jmp 0x4248bb
push dword [ebp + 0x3c]
push eax
push ecx
jmp 0x42594f
push dword [ebp + 0x7c]
call fcn.00445c44
xor esi, esi
jmp 0x4259a4
push dword [ebp + 0x3c]
push edx
push eax
push dword [ebp + 0x7c]
call fcn.00413322
add esp, 0x10
mov esi, eax
jmp 0x4259a4
or esi, 0xffffffff
jmp 0x4259a4
mov eax, dword [ebp - 0x44]
mov word [eax - 6], 0x23
mov word [eax - 4], 0x26
lea ecx, [ebp - 0xf4]
add eax, 0xfffffffe
push ecx
mov ecx, dword [ebp + 0x3c]
mov word [eax], 0x3d
and word [edx], 0
push eax
call fcn.0049253e
cmp dword [ebp - 0x3c], 0
je 0x42595a
xor ecx, ecx
test eax, eax
sete cl
mov eax, ecx
jmp 0x42595a
mov esi, 0x80070057
lea ecx, [ebp + 4]
call fcn.0043fe25
lea ecx, [ebp + 0x30]
call fcn.0043fe25
lea ecx, [ebp + 0x58]
call fcn.0043fe25
push 0x4e3d84
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop edi
mov eax, esi
pop esi
pop ebx
add ebp, 0x6c
leave
ret 0xc