Function at 0x10038f6c
Capabilities:
Open clipboard
Read clipboard data

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x48
push ebx
mov ebx, ecx
mov ecx, dword [ebx]
mov eax, dword [ecx + 0x6c]
shr eax, 0x13
and eax, 1
push esi
xor esi, esi
push edi
mov dword [ebp - 0x14], eax
xor eax, eax
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x30], esi
lea edi, [ebp - 0x2c]
stosd dword es:[edi], eax
mov ecx, dword [ecx + 0x54]
cmp ecx, esi
mov eax, dword [ebp + 8]
mov dword [ebp - 0xc], ebx
mov dword [ebp - 8], esi
mov dword [ebp - 4], 0x80040064
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x20], 0x100760d0
mov dword [ebp - 0x10], esi
je 0x10038fc1
mov edi, dword [ecx + 0x14]
jmp 0x10038fc3
xor edi, edi
cmp eax, esi
mov dword [ebp - 0x18], esi
jne 0x10039010
lea eax, [ebp + 8]
push eax
call fcn.10071d09
cmp eax, esi
mov dword [ebp - 4], eax
jge 0x10039010
call dword [sym.imp.USER32.dll_GetClipboardOwner]
mov esi, eax
test esi, esi
je 0x1003904b
mov ecx, dword [ebx]
lea eax, [ebp - 0x1c]
push eax
call fcn.1001fd57
test eax, eax
jne 0x1003904b
cmp esi, dword [ebp - 0x1c]
jne 0x1003904b
mov eax, dword [ebx + 8]
test eax, eax
mov dword [ebp + 8], eax
je 0x10039178
mov ecx, dword [eax]
push eax
call dword [ecx + 4]
xor esi, esi
mov eax, dword [ebp + 0x1c]
test al, 1
mov edx, dword [ebp + 0x14]
mov byte [ebx + 0xc], 1
jne 0x100391e0
cmp edi, esi
je 0x100391e0
mov esi, dword [ebp + 0x10]
xor ecx, ecx
test edx, edx
mov dword [ebp + 0x1c], esi
je 0x10039186
cmp dword [edx], 4
jne 0x10039184
mov ecx, dword [edx + 4]
jmp 0x10039186
mov ecx, dword [ebx]
lea eax, [ebp - 0x1c]
push eax
call fcn.1001fd57
test eax, eax
jne 0x1003916e
push dword [ebp - 0x1c]
call dword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je 0x1003916e
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
mov ecx, dword [eax + 0x30]
xor ebx, ebx
mov dword [ebp + 0x10], ebx
call fcn.10017541
cmp dword [ebp - 0x14], ebx
mov esi, dword [sym.imp.USER32.dll_GetClipboardData]
jne 0x100390af
movzx eax, word [0x100760d0]
push eax
call esi
mov edi, eax
test edi, edi
jne 0x100390fa
movzx eax, word [0x100760f8]
push eax
call esi
mov edi, eax
test edi, edi
push 2
pop ebx
jne 0x100390fa
movzx eax, word [0x100760e4]
push eax
call esi
xor ebx, ebx
mov edi, eax
inc ebx
test edi, edi
jne 0x100390fa
cmp dword [ebp - 0x14], eax
jne 0x100390d0
push 0xd
call esi
push 0xb
mov edi, eax
pop ebx
test edi, edi
jne 0x100390e1
push 1
call esi
mov edi, eax
test edi, edi
push 0xc
pop ebx
je 0x1003913e
cmp ebx, 0xc
jne 0x100390fa
push edi
call fcn.1006f532
mov esi, eax
test esi, esi
je 0x1003911d
push esi
call fcn.1006d14f
jmp 0x10039103
push edi
call fcn.1006d14f
mov esi, dword [ebp + 0x10]
test eax, eax
je 0x1003911d
push dword [ebp + 0x18]
mov ecx, dword [ebp - 0xc]
push dword [ebp + 0xc]
push eax
push edi
push ebx
call fcn.10038e06
mov dword [ebp - 4], eax
jmp 0x10039124
mov dword [ebp - 4], 0x8007000e
test esi, esi
je 0x10039136
push esi
call fcn.1006d171
push esi
call fcn.1006d100
jmp 0x10039158
push edi
call fcn.1006d171
jmp 0x10039158
push 8
call esi
test eax, eax
je 0x10039158
push dword [ebp + 0x18]
mov ecx, dword [ebp - 0xc]
push dword [ebp + 0xc]
push eax
call fcn.10037929
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
mov ecx, dword [eax + 0x30]
call fcn.1001757c
call dword [sym.imp.USER32.dll_CloseClipboard]
mov ebx, dword [ebp - 0xc]
cmp dword [ebp - 4], 0
jge 0x10039471
mov ecx, dword [ebx]
call fcn.1001f9db
jmp 0x10039471
xor ecx, ecx
mov edx, dword [edi]
push ecx
push 1
shr eax, 1
and eax, 1
push eax
lea eax, [ebp + 0x1c]
push eax
push dword [ebp + 8]
push edi
call dword [edx + 0x20]
cmp eax, 0x40130
mov dword [ebp - 4], eax
jne 0x100391ab
xor eax, eax
mov dword [ebp - 4], eax
test eax, eax
je 0x100391ba
cmp eax, 0x80004001
jne 0x10039462
mov eax, dword [ebp + 0x1c]
test ax, ax
je 0x100391d8
test si, si
je 0x100391dd
cmp si, ax
je 0x100391d8
mov dword [ebp - 4], 0x80040064
jmp 0x10039462
test si, si
jne 0x100391e0
mov dword [ebp + 0x10], eax
xor edi, edi
inc edi
cmp word [ebp + 0x10], di
push 0xd
pop esi
jne 0x10039239
xor eax, eax
cmp dword [ebp - 0x14], eax
jne 0x1003924a
mov ecx, dword [ebx]
test byte [ecx + 0x71], 1
jne 0x1003924a
or dword [ebp - 0x3c], 0xffffffff
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x38], eax
mov eax, dword [ebp + 8]
lea edx, [ebp - 0x48]
push edx
mov word [ebp - 0x48], si
mov ecx, dword [eax]
push eax
call dword [ecx + 0x14]
test eax, eax
jne 0x10039222
mov dword [ebp + 0x10], esi
jmp 0x1003923f
mov eax, dword [ebp + 8]
lea edx, [ebp - 0x48]
push edx
mov dword [ebp - 0x38], edi
mov ecx, dword [eax]
push eax
call dword [ecx + 0x14]
test eax, eax
jne 0x1003924a
mov dword [ebp + 0x10], esi
cmp word [ebp + 0x10], si
jne 0x1003924a
mov eax, dword [ebx]
test byte [eax + 0x71], 1
je 0x1003924a
mov dword [ebp + 0x10], edi
mov eax, dword [ebx]
test byte [eax + 0x6c], 4
je 0x1003925e
mov dword [ebp - 4], 0x80070005
jmp 0x10039462
mov ecx, dword [eax + 0x30]
call fcn.10017541
mov esi, dword [ebp + 0x18]
test esi, esi
je 0x1003927c
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x18]
mov eax, dword [esi]
push 5
mov ecx, esi
call dword [eax]
mov edi, dword [ebp - 0x20]
xor esi, esi
mov eax, dword [ebp + 0x10]
test ax, ax
je 0x10039292
cmp ax, word [edi]
jne case.0x10039363.5
mov eax, dword [ebx]
test byte [eax + 0x6c], 1
jne 0x100392a8
test byte [esi*4 + 0x10002c40], 2
je case.0x10039363.5
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
push edi
push eax
call dword [ecx + 0x14]
test eax, eax
jne case.0x10039363.5
cmp esi, 0xb
jne 0x100392cb
mov eax, dword [ebx]
test byte [eax + 0x71], 1
jne case.0x10039363.5
cmp esi, 1
je 0x100392f7
cmp esi, 0xe
je 0x100392f7
cmp esi, 0xc
je 0x100392f7
cmp esi, 0xa
je 0x100392f7
cmp dword [ebp - 0x14], 0
jne 0x1003936a
cmp esi, 0xb
je 0x100392f7
test esi, esi
je 0x100392f7
cmp esi, 2
jne 0x10039342
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
lea edx, [ebp - 0x34]
push edx
push edi
push eax
call dword [ecx + 0xc]
test eax, eax
jne case.0x10039363.5
mov eax, dword [ebp - 0x30]
push eax
mov dword [ebp - 8], eax
call fcn.1006d14f
test eax, eax
mov dword [ebp - 0x10], eax
je 0x10039385
cmp esi, 1
je 0x1003932a
cmp esi, 0xa
je 0x1003932a
test esi, esi
jne 0x10039342
push dword [ebp - 8]
call fcn.1006d13e
push eax
push dword [ebp - 0x10]
call fcn.1004d391
test eax, eax
jne 0x10039342
push 0xc
pop esi
mov ecx, dword [ebp + 0xc]
push 0
call fcn.10043d05
cmp esi, 0x10
mov dword [ebp - 0x18], 1
ja case.default.0x10039363
movzx eax, byte [esi + 0x10039493]
jmp dword [eax*4 + 0x1003947b]
cmp esi, 0xb
je case.0x10039363.5
test esi, esi
jne 0x10039342
inc esi
add edi, 0x14
cmp esi, 0x11
jb 0x10039281
jmp 0x10039445
lea eax, [ebp - 0x34]
push eax
call fcn.10072065
mov dword [ebp - 4], 0x8007000e
jmp 0x10039458
push dword [ebp + 0x18]
mov ecx, ebx
push dword [ebp + 0xc]
push dword [ebp - 0x10]
push dword [ebp - 8]
push esi
call fcn.10038e06
jmp 0x1003940f
push dword [ebp - 8]
call fcn.1006f532
mov edi, eax
push edi
call fcn.1006d14f
test eax, eax
mov dword [ebp - 0x10], eax
jne 0x100393d3
mov dword [ebp - 4], 0x8007000e
jmp case.0x10039363.15
mov edi, dword [ebp - 0x24]
push dword [ebp + 0x18]
mov ecx, ebx
push dword [ebp + 0xc]
push dword [ebp - 0x10]
push 0
push esi
call fcn.10038e06
test edi, edi
mov dword [ebp - 4], eax
je case.0x10039363.15
push edi
call fcn.1006d171
push edi
call fcn.1006d100
jmp case.0x10039363.15
push dword [ebp + 0x18]
mov ecx, ebx
push esi
push dword [ebp + 0x14]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.10037df0
mov dword [ebp - 4], eax
jmp case.0x10039363.15
and dword [ebp - 0x18], 0
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebx]
inc esi
neg ecx
sbb ecx, ecx
and ecx, esi
xor cl, byte [eax + 0x72]
and ecx, 0x1f
xor word [eax + 0x72], cx
cmp dword [ebp - 8], 0
je 0x10039445
push dword [ebp - 8]
call fcn.1006d171
lea eax, [ebp - 0x34]
push eax
call fcn.10072065
cmp dword [ebp - 0x18], 0
jne 0x10039458
cmp dword [ebp - 0x14], 0
je 0x10039458
mov dword [ebp - 4], 0x80040064
mov eax, dword [ebx]
mov ecx, dword [eax + 0x30]
call fcn.1001757c
cmp dword [ebp - 0x28], 0
jne 0x10039471
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
leave
ret 0x18