Function at 0x505b85
Capabilities:
Read clipboard data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x55d205
mov eax, dword fs:[0]
push eax
sub esp, 0xf8
mov eax, dword [0x5b93d4]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0xcc], ecx
push 0x583d0c
call dword [sym.imp.USER32.dll_RegisterClipboardFormatA]
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0
je 0x505c2c
push dword [ebp - 0x3c]
call dword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
test eax, eax
je 0x505c2c
push dword [ebp - 0x3c]
call dword [sym.imp.USER32.dll_GetClipboardData]
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0
je 0x505c2c
push dword [ebp - 0x28]
call dword [sym.imp.KERNEL32.dll_GlobalSize]
mov dword [ebp - 0x78], eax
push dword [ebp - 0x28]
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov dword [ebp - 0x7c], eax
push 0
push dword [ebp + 8]
push dword [ebp - 0x78]
push dword [ebp - 0x7c]
call fcn.0050670e
add esp, 0x10
mov byte [ebp - 0x11], al
push dword [ebp - 0x28]
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
movzx eax, byte [ebp - 0x11]
test eax, eax
je 0x505c2c
mov al, 1
jmp 0x505f7a
lea ecx, [ebp - 0x74]
call fcn.00506c8a
lea ecx, [ebp - 0x74]
call fcn.00506f77
movzx eax, al
test eax, eax
jne 0x505c4a
xor al, al
jmp 0x505f7a
lea ecx, [ebp - 0xc8]
call fcn.004ee212
lea eax, [ebp - 0xc8]
push eax
lea ecx, [ebp - 0x74]
call fcn.00506fa2
lea eax, [ebp - 0xc8]
push eax
lea ecx, [ebp - 0x104]
call fcn.004edf69
and dword [ebp - 4], 0
movzx eax, word [ebp - 0x64]
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 8
je 0x505d97
cmp dword [ebp - 0x2c], 0x10
je 0x505ca2
cmp dword [ebp - 0x2c], 0x18
je 0x505ca2
cmp dword [ebp - 0x2c], 0x20
je 0x505ca2
jmp 0x505f53
and dword [ebp - 0x10], 0
cmp dword [ebp - 0x60], 0
je 0x505cb2
cmp dword [ebp - 0x60], 3
jne 0x505cdf
cmp dword [ebp - 0x74], 0
je 0x505cc5
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x74]
add ecx, dword [eax]
mov dword [ebp - 0x10], ecx
jmp 0x505cd0
mov eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x70]
add ecx, dword [eax]
mov dword [ebp - 0x10], ecx
cmp dword [ebp - 0x60], 3
jne 0x505cdf
mov eax, dword [ebp - 0x10]
add eax, 0xc
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x505d70
movzx eax, word [ebp - 0x64]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
imul eax, dword [ebp - 0xc8]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
and eax, 3
push 4
pop ecx
sub ecx, eax
and ecx, 3
mov dword [ebp - 0x80], ecx
mov eax, dword [ebp - 0xc4]
dec eax
mov dword [ebp - 0x30], eax
jmp 0x505d33
mov eax, dword [ebp - 0x30]
dec eax
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x40]
add eax, dword [ebp - 0x80]
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x30], 0
jl 0x505d70
lea ecx, [ebp - 0x104]
call fcn.00417deb
mov ecx, dword [ebp - 0x30]
imul ecx, dword [ebp - 0xbc]
add eax, ecx
mov dword [ebp - 0x84], eax
push dword [ebp - 0x84]
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x40]
push eax
push dword [ebp - 0x10]
call fcn.0046209d
add esp, 0xc
jmp 0x505d20
movzx eax, word [ebp - 0x64]
cmp eax, 0x20
jne 0x505d92
cmp dword [ebp - 0xac], 0
je 0x505d92
push 0
lea eax, [ebp - 0x104]
push eax
call fcn.005079da
pop ecx
pop ecx
jmp 0x505f53
cmp dword [ebp - 0x70], 0
jne 0x505db4
push 0x242
push 0x583d10
push str.bi.bi
call fcn.00523662
add esp, 0xc
mov eax, dword [ebp - 0x70]
cmp dword [eax + 0x20], 0
jbe 0x505dc8
mov eax, dword [ebp - 0x70]
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x4c], eax
jmp 0x505dcf
mov dword [ebp - 0x4c], 0x100
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x20], eax
lea ecx, [ebp - 0x35]
call fcn.0040d562
push eax
push dword [ebp - 0x20]
lea ecx, [ebp - 0x98]
call fcn.00507729
mov byte [ebp - 4], 1
and dword [ebp - 0x18], 0
jmp 0x505dfd
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x20]
jge 0x505e60
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x70]
movzx eax, byte [ecx + eax*4 + 0x2a]
mov ecx, dword [ebp - 0xa8]
shl eax, cl
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x70]
movzx edx, byte [edx + ecx*4 + 0x29]
mov ecx, dword [ebp - 0xa4]
shl edx, cl
or eax, edx
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x70]
movzx edx, byte [edx + ecx*4 + 0x28]
mov ecx, dword [ebp - 0xa0]
shl edx, cl
or eax, edx
mov dword [ebp - 0x88], eax
push dword [ebp - 0x18]
lea ecx, [ebp - 0x98]
call fcn.004119ca
mov ecx, dword [ebp - 0x88]
mov dword [eax], ecx
jmp 0x505df6
mov eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x70]
add ecx, dword [eax]
mov eax, dword [ebp - 0x20]
lea eax, [ecx + eax*4]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0xc8]
and eax, 3
push 4
pop ecx
sub ecx, eax
and ecx, 3
mov dword [ebp - 0x8c], ecx
mov eax, dword [ebp - 0xc4]
dec eax
mov dword [ebp - 0x34], eax
jmp 0x505ea7
mov eax, dword [ebp - 0x34]
dec eax
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x1c]
add eax, dword [ebp - 0x8c]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x34], 0
jl 0x505f33
lea ecx, [ebp - 0x104]
call fcn.00417deb
mov ecx, dword [ebp - 0x34]
imul ecx, dword [ebp - 0xbc]
add eax, ecx
mov dword [ebp - 0x48], eax
and dword [ebp - 0x44], 0
jmp 0x505ee8
mov eax, dword [ebp - 0x44]
inc eax
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x48]
add eax, 3
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x44]
cmp eax, dword [ebp - 0xc8]
jae 0x505f2e
mov eax, dword [ebp - 0x1c]
movzx eax, byte [eax]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
jge 0x505f08
and dword [ebp - 0x24], 0
jmp 0x505f17
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x20]
jl 0x505f17
mov eax, dword [ebp - 0x20]
dec eax
mov dword [ebp - 0x24], eax
push dword [ebp - 0x24]
lea ecx, [ebp - 0x98]
call fcn.004119ca
mov ecx, dword [ebp - 0x48]
mov eax, dword [eax]
mov dword [ecx], eax
jmp 0x505ed1
jmp 0x505e94
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x98]
call fcn.00410c27
jmp 0x505f53
lea eax, [ebp - 0x104]
push eax
push dword [ebp + 8]
call fcn.005076b0
pop ecx
pop ecx
mov byte [ebp - 0x12], 1
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x104]
call fcn.004ee052
mov al, byte [ebp - 0x12]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
leave
ret 4