Function at 0x405088
Capabilities:
Open clipboard
Query environment variable
Read clipboard data

Disassembly:
push ebp
lea ebp, [esp - 0x70]
sub esp, 0x950
push ebx
push esi
mov esi, dword [ebp + 0x7c]
cmp byte [esi], 0
mov ebx, eax
mov dword [ebp + 0x6c], ebx
je 0x4056e4
push edi
cmp byte [esi], 0x7e
jne 0x4056bd
mov al, byte [esi + 1]
mov cl, al
mov dl, cl
sub dl, 0x41
cmp dl, 0x19
ja 0x4050c2
add cl, 0x20
cmp cl, 0x6e
jne 0x4050da
inc esi
inc esi
mov byte [ebx], 0xd
mov byte [ebx + 1], 0xa
inc ebx
mov dword [ebp + 0x7c], esi
inc ebx
jmp 0x4056c8
mov cl, al
mov dl, cl
sub dl, 0x41
cmp dl, 0x19
ja 0x4050e9
add cl, 0x20
cmp cl, 0x78
jne 0x405119
mov al, byte [esi + 2]
mov byte [ebp + 0x64], al
mov al, byte [esi + 3]
push 0x10
mov byte [ebp + 0x65], al
lea eax, [ebp + 0x64]
push 0
push eax
mov byte [ebp + 0x66], 0
call sub.msvcrt.dll_strtoul
add esp, 0xc
add esi, 4
mov dword [ebp + 0x7c], esi
jmp 0x4056c5
mov cl, al
mov dl, cl
sub dl, 0x41
cmp dl, 0x19
ja 0x405128
add cl, 0x20
cmp cl, 0x71
jne 0x40513a
mov byte [ebx], 0x22
inc esi
inc esi
mov dword [ebp + 0x7c], esi
jmp 0x4056c7
mov cl, al
mov dl, cl
sub dl, 0x41
cmp dl, 0x19
ja 0x405149
add cl, 0x20
cmp cl, 0x74
jne 0x405153
mov byte [ebx], 9
jmp 0x405130
cmp al, 0x25
je 0x405173
cmp al, 0x24
je 0x405173
mov cl, al
sub cl, 0x41
cmp cl, 0x19
ja 0x405167
add al, 0x20
cmp al, 0x7e
jne 0x4056bd
mov byte [ebx], al
jmp 0x405130
movsx eax, al
add esi, 2
push eax
mov edx, esi
call fcn.0040237b
mov edi, eax
lea eax, [edi - 1]
cmp eax, 0x7d
pop ecx
ja 0x4056bd
push edi
lea eax, [ebp - 0x54]
push esi
push eax
call sub.msvcrt.dll_memcpy
mov eax, dword [ebp + 0x7c]
lea eax, [eax + edi + 3]
push 7
mov dword [ebp + 0x7c], eax
lea eax, [ebp - 0x54]
push str.folder.
push eax
mov byte [ebp + edi - 0x54], 0
call sub.msvcrt.dll__strnicmp
add esp, 0x18
test eax, eax
jne 0x405226
push 0x104
push eax
mov byte [ebp - 0x3e0], al
lea eax, [ebp - 0x3df]
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [ebp - 0x3e0]
lea ecx, [ebp - 0x4d]
call fcn.00405c8d
test eax, eax
je 0x4056c8
lea eax, [ebp - 0x3e0]
push eax
call sub.msvcrt.dll_strlen
mov esi, eax
test esi, esi
pop ecx
jle 0x4056c8
sub eax, dword [ebp + 0x6c]
lea eax, [eax + ebx + 5]
cmp eax, 0x1000
jae 0x4056c8
lea eax, [ebp - 0x3e0]
jmp 0x405498
push 9
lea eax, [ebp - 0x54]
push str.loopcount
push eax
call sub.msvcrt.dll__strnicmp
add esp, 0xc
test eax, eax
jne 0x4052a4
push 0xff
push eax
mov byte [ebp - 0x2d8], al
lea eax, [ebp - 0x2d7]
push eax
call sub.msvcrt.dll_memset
push 0xa
lea eax, [ebp - 0x2d8]
push eax
mov eax, dword [ebp + 0x78]
mov eax, dword [eax + 0x40118]
inc eax
push eax
call sub.msvcrt.dll__itoa
lea eax, [ebp - 0x2d8]
push eax
call sub.msvcrt.dll_strlen
mov esi, eax
add esp, 0x1c
test esi, esi
jle 0x4056c8
sub eax, dword [ebp + 0x6c]
lea eax, [eax + ebx + 5]
cmp eax, 0x1000
jae 0x4056c8
lea eax, [ebp - 0x2d8]
jmp 0x405498
push 8
lea eax, [ebp - 0x54]
push str.currdate.
push eax
call sub.msvcrt.dll__strnicmp
add esp, 0xc
test eax, eax
jne 0x405326
mov esi, 0xff
push esi
mov byte [ebp - 0x4e0], al
xor edi, edi
lea eax, [ebp - 0x4df]
push edi
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
push esi
lea eax, [ebp - 0x4e0]
push eax
lea eax, [ebp - 0x4b]
push eax
push edi
push edi
push 0x400
call dword [sym.imp.KERNEL32.DLL_GetDateFormatA]
lea eax, [ebp - 0x4e0]
push eax
call sub.msvcrt.dll_strlen
mov esi, eax
cmp esi, edi
pop ecx
jle 0x4056c8
sub eax, dword [ebp + 0x6c]
lea eax, [eax + ebx + 5]
cmp eax, 0x1000
jae 0x4056c8
lea eax, [ebp - 0x4e0]
jmp 0x405498
push 8
lea eax, [ebp - 0x54]
push str.currtime.
push eax
call sub.msvcrt.dll__strnicmp
add esp, 0xc
test eax, eax
jne 0x4053a8
mov esi, 0xff
push esi
mov byte [ebp - 0x1d8], al
xor edi, edi
lea eax, [ebp - 0x1d7]
push edi
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
push esi
lea eax, [ebp - 0x1d8]
push eax
lea eax, [ebp - 0x4b]
push eax
push edi
push edi
push 0x400
call dword [sym.imp.KERNEL32.DLL_GetTimeFormatA]
lea eax, [ebp - 0x1d8]
push eax
call sub.msvcrt.dll_strlen
mov esi, eax
cmp esi, edi
pop ecx
jle 0x4056c8
sub eax, dword [ebp + 0x6c]
lea eax, [eax + ebx + 5]
cmp eax, 0x1000
jae 0x4056c8
lea eax, [ebp - 0x1d8]
jmp 0x405498
push 4
lea eax, [ebp - 0x54]
push str.sys.
push eax
call sub.msvcrt.dll__strnicmp
add esp, 0xc
test eax, eax
jne 0x405414
mov esi, 0x80
push esi
push eax
mov byte [ebp - 0xd8], al
lea eax, [ebp - 0xd7]
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
push esi
lea eax, [ebp - 0xd8]
push eax
lea eax, [ebp - 0x50]
push eax
call dword [sym.imp.KERNEL32.DLL_GetEnvironmentVariableA]
mov esi, eax
test esi, esi
jbe 0x4056c8
sub eax, dword [ebp + 0x6c]
lea eax, [eax + ebx + 5]
cmp eax, 0x1000
jae 0x4056c8
lea eax, [ebp - 0xd8]
jmp 0x405498
push 4
lea eax, [ebp - 0x54]
push str.nir.
push eax
call sub.msvcrt.dll__strnicmp
add esp, 0xc
test eax, eax
jne 0x40549f
push 0x3ff
push eax
mov byte [ebp - 0x8e0], al
lea eax, [ebp - 0x8df]
push eax
call sub.msvcrt.dll_memset
lea eax, [ebp - 0x50]
push str.exefile
push eax
call sub.msvcrt.dll__strcmpi
add esp, 0x14
test eax, eax
jne 0x4056c8
lea eax, [ebp - 0x8e0]
push eax
call fcn.00402632
lea eax, [ebp - 0x8e0]
push eax
call sub.msvcrt.dll_strlen
mov esi, eax
test esi, esi
pop ecx
pop ecx
jbe 0x4056c8
sub eax, dword [ebp + 0x6c]
lea eax, [eax + ebx + 5]
cmp eax, 0x1000
jae 0x4056c8
lea eax, [ebp - 0x8e0]
push esi
push eax
jmp 0x405636
push 6
lea eax, [ebp - 0x54]
push str.param.
push eax
call sub.msvcrt.dll__strnicmp
add esp, 0xc
test eax, eax
jne 0x4055cf
mov esi, dword [ebp + 0x78]
lea eax, [ebp - 0x4e]
lea edi, [esi + 0x40164]
push eax
call fcn.00402c77
xor edi, edi
cmp eax, edi
jl 0x4054e2
lea ecx, [esi + 0x40184]
call fcn.00402ca4
mov dword [ebp + 0x68], eax
jmp 0x4054e5
mov dword [ebp + 0x68], edi
cmp dword [ebp + 0x68], edi
je 0x405518
push dword [ebp + 0x68]
call sub.msvcrt.dll_strlen
mov esi, eax
cmp esi, edi
pop ecx
jbe 0x4056c8
sub eax, dword [ebp + 0x6c]
lea eax, [eax + ebx + 5]
cmp eax, 0x1000
jae 0x4056c8
push esi
push dword [ebp + 0x68]
jmp 0x405636
mov eax, 0x100
mov dword [ebp + 0x4c], eax
mov dword [ebp + 0x60], eax
lea eax, [ebp - 0x4e]
mov dword [ebp + 0x48], edi
mov dword [ebp + 0x3c], edi
mov dword [ebp + 0x40], edi
mov dword [ebp + 0x44], edi
mov dword [ebp + 0x5c], edi
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], edi
mov dword [ebp + 0x58], edi
push eax
lea edi, [ebp + 0x3c]
mov dword [ebp + 0x30], 0x411f28
mov dword [ebp + 0x38], 0x66
call fcn.00402d05
push 0
lea ecx, [ebp + 0x30]
call fcn.00401221
test eax, eax
je 0x4055b2
mov edi, dword [ebp + 0x50]
test edi, edi
jne 0x40556f
mov edi, 0x411e4c
lea eax, [ebp - 0x4e]
push eax
lea eax, [esi + 0x40164]
call fcn.00402bdc
push edi
lea eax, [esi + 0x40184]
call fcn.00402bdc
push edi
call sub.msvcrt.dll_strlen
mov esi, eax
test esi, esi
pop ecx
jbe 0x4055b2
sub eax, dword [ebp + 0x6c]
lea eax, [eax + ebx + 5]
cmp eax, 0x1000
jae 0x4055b2
push esi
push edi
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
add ebx, esi
lea esi, [ebp + 0x50]
call fcn.00402ce0
lea esi, [ebp + 0x3c]
call fcn.00402ce0
lea edx, [ebp + 0x30]
call fcn.0040110a
jmp 0x4056c8
push 7
lea eax, [ebp - 0x54]
push str.fparam.
push eax
call sub.msvcrt.dll__strnicmp
add esp, 0xc
test eax, eax
jne 0x405646
lea eax, [ebp - 0x4d]
push eax
call sub.msvcrt.dll_atoi
test eax, eax
pop ecx
jle 0x4056c8
mov ecx, dword [ebp + 0x78]
dec eax
add ecx, 0x40144
call fcn.00402ca4
mov edi, eax
test edi, edi
je 0x4056c8
push edi
call sub.msvcrt.dll_strlen
mov esi, eax
test esi, esi
pop ecx
jbe 0x4056c8
sub eax, dword [ebp + 0x6c]
lea eax, [eax + ebx + 5]
cmp eax, 0x1000
jae 0x4056c8
push esi
push edi
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
add ebx, esi
jmp 0x4056c8
push 9
lea eax, [ebp - 0x54]
push 0x412ac4
push eax
call sub.msvcrt.dll__strnicmp
add esp, 0xc
test eax, eax
jne 0x4056c8
push eax
call dword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je 0x4056c8
push 1
call dword [sym.imp.USER32.dll_GetClipboardData]
test eax, eax
mov dword [ebp + 0x68], eax
je 0x4056b5
push eax
call dword [sym.imp.KERNEL32.DLL_GlobalLock]
mov edi, eax
test edi, edi
je 0x4056b5
push edi
call sub.msvcrt.dll_strlen
mov esi, eax
test esi, esi
pop ecx
jbe 0x4056ac
sub eax, dword [ebp + 0x6c]
lea eax, [eax + ebx + 5]
cmp eax, 0x1000
jae 0x4056ac
push esi
push edi
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
add ebx, esi
push dword [ebp + 0x68]
call dword [sym.imp.KERNEL32.DLL_GlobalUnlock]
call dword [sym.imp.USER32.dll_CloseClipboard]
jmp 0x4056c8
mov eax, dword [ebp + 0x7c]
mov al, byte [eax]
inc dword [ebp + 0x7c]
mov byte [ebx], al
inc ebx
mov eax, ebx
sub eax, dword [ebp + 0x6c]
add eax, 0x14
cmp eax, 0x1000
jg 0x4056e3
mov esi, dword [ebp + 0x7c]
cmp byte [esi], 0
jne 0x4050a7
pop edi
pop esi
mov byte [ebx], 0
mov eax, ebx
pop ebx
add ebp, 0x70
leave
ret 8