Function at 0x406930
Capabilities:
Open clipboard
Write clipboard data

Disassembly:
sub esp, 0x414
mov eax, dword [0x4642d0]
xor eax, esp
mov dword [esp + 0x410], eax
push ebx
push ebp
push esi
push edi
mov edi, ecx
mov ecx, dword [edi + 0x44]
mov esi, dword [edi + 0x48]
cmp ecx, esi
jne 0x406968
mov eax, dword [edi + 0xc]
cdq
idiv dword [edi + 0xaa0]
mov ebp, eax
mov dword [esp + 0x18], ebp
mov ebx, ebp
jmp 0x406988
cmp ecx, esi
mov eax, esi
cmovl eax, ecx
cmovg esi, ecx
mov ecx, dword [edi + 0xaa0]
cdq
idiv ecx
mov ebx, eax
mov eax, esi
cdq
idiv ecx
mov ebp, eax
mov dword [esp + 0x18], eax
mov ecx, ebp
mov dword [esp + 0x14], ebx
sub ecx, ebx
inc ecx
imul ecx, dword [edi + 0xaa0]
lea eax, [ecx + ecx*4]
lea eax, [eax*2 + 0x400]
push eax
push 0x42
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov ebx, eax
push ebx
mov dword [esp + 0x20], ebx
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov esi, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], esi
cmp eax, ebp
jg 0x406b6d
mov ebp, dword [sym.imp.KERNEL32.dll_lstrcatA]
mov ebx, dword [edi + 0xaa0]
imul ebx, eax
lea eax, [esp + 0x20]
push ebx
push str._.8X
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
cmp dword [edi + 0xaa4], 0
je 0x406a03
lea eax, [esp + 0x20]
push eax
call fcn.0044464a
add esp, 4
lea eax, [esp + 0x20]
push eax
push esi
call ebp
mov eax, dword [edi + 0xaa0]
mov esi, ebx
add eax, ebx
cmp ebx, eax
jge 0x406a74
nop dword [eax]
mov eax, dword [edi + 0x990]
cmp esi, dword [eax + 0x14]
jge 0x406a67
mov eax, dword [eax + 8]
movzx eax, byte [eax + esi]
push eax
lea eax, [esp + 0x24]
push str._.2X
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
cmp dword [edi + 0xaa4], 0
jne 0x406a5c
lea eax, [esp + 0x20]
push eax
call fcn.0044464a
add esp, 4
lea eax, [esp + 0x20]
push eax
push dword [esp + 0x14]
call ebp
mov eax, dword [edi + 0xaa0]
inc esi
add eax, ebx
cmp esi, eax
jl 0x406a20
push 0x452f04
push dword [esp + 0x14]
call ebp
mov eax, dword [edi + 0xaa0]
mov esi, ebx
add eax, ebx
cmp ebx, eax
jge 0x406b4a
mov ecx, dword [edi + 0x990]
cmp esi, dword [ecx + 0x14]
jge 0x406b39
xor eax, eax
mov word [esp + 0x20], ax
mov byte [esp + 0x22], al
cmp esi, ebx
jne 0x406ab9
push esi
call fcn.004040b0
test eax, eax
jne 0x406b29
mov ecx, dword [edi + 0x990]
push esi
call fcn.00404000
test eax, eax
je 0x406b11
mov ecx, dword [edi + 0x990]
push esi
call fcn.00404040
test eax, eax
jne 0x406b11
mov ecx, dword [edi + 0x990]
mov eax, dword [ecx + 8]
cmp byte [eax + esi + 1], 0
jne 0x406afb
push 0x452f08
lea eax, [esp + 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x406b2e
movzx eax, byte [eax + esi]
inc esi
mov byte [esp + 0x20], al
mov eax, dword [ecx + 8]
movzx eax, byte [esi + eax]
mov byte [esp + 0x21], al
jmp 0x406b2e
mov eax, dword [edi + 0x990]
mov eax, dword [eax + 8]
mov al, byte [esi + eax]
cmp al, 0x20
jl 0x406b29
mov byte [esp + 0x20], al
cmp al, 0x7e
jle 0x406b2e
mov byte [esp + 0x20], 0x2e
lea eax, [esp + 0x20]
push eax
push dword [esp + 0x14]
call ebp
mov eax, dword [edi + 0xaa0]
inc esi
add eax, ebx
cmp esi, eax
jl 0x406a91
mov esi, dword [esp + 0x10]
push 0x452f0c
push esi
call ebp
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x18]
jle 0x4069d0
mov ebx, dword [esp + 0x1c]
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push dword [edi + 4]
call dword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je 0x406b96
call dword [sym.imp.USER32.dll_EmptyClipboard]
push ebx
push 1
call dword [sym.imp.USER32.dll_SetClipboardData]
call dword [sym.imp.USER32.dll_CloseClipboard]
mov ecx, dword [esp + 0x420]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0043fe9e
add esp, 0x414
ret