Function at 0x435570
Capabilities:
Print debug messages
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x54d8
call fcn.004ca2e0
push ebx
push esi
push edi
xor edi, edi
push 0x190
lea eax, [ebp - 0x398]
push edi
push eax
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x14], 0x14
call fcn.004c9b50
push pe_nt_image_headers32
lea ecx, [ebp - 0x1b8]
push edi
push ecx
call fcn.004c9b50
push 0x50
lea edx, [ebp - 0xc8]
push edi
push edx
call fcn.004c9b50
push 0x50
lea eax, [ebp - 0x78]
push edi
push eax
call fcn.004c9b50
mov esi, dword [ebp + 0xc]
mov ebx, dword [sym.imp.KERNEL32.dll_WriteFile]
add esp, 0x30
cmp esi, edi
je 0x4355ea
push edi
lea ecx, [ebp - 0x18]
push ecx
push 2
push 0x4f075c
push esi
call ebx
mov eax, dword [ebp + 8]
mov edx, dword [eax]
mov edx, dword [edx + 0x20]
lea ecx, [ebp - 0x20]
push ecx
push 1
push eax
call edx
test eax, eax
jne 0x435cdd
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
lea edx, [ebp - 0x14]
push edx
lea edx, [ebp - 0x398]
push edx
mov edx, dword [ebp - 0x14]
push edx
push eax
mov eax, dword [ecx + 0xc]
call eax
cmp esi, edi
je 0x435665
mov ecx, dword [ebp - 0x14]
push ecx
lea edx, [ebp - 0x54d8]
push str.Drag_object_contains__i_formats_n_n
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
lea eax, [ebp - 0x54d8]
add esp, 0xc
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x435643
sub eax, edx
push edi
sar eax, 1
lea ecx, [ebp - 0x18]
push ecx
lea edx, [eax + eax]
push edx
lea eax, [ebp - 0x54d8]
push eax
push esi
call ebx
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
push str.Shell_IDList_Array
call dword [sym.imp.USER32.dll_RegisterClipboardFormatW]
mov ecx, dword [ebp - 0x14]
movzx eax, ax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0xc], edi
cmp ecx, edi
jbe 0x435c94
lea ecx, [ebp - 0x398]
lea edx, [ebp - 0x1b8]
mov dword [ebp - 8], edi
mov dword [ebp - 0x10], ecx
lea edi, [ebp - 0x54d8]
mov dword [ebp - 0x1c], edx
lea ebx, [ebx]
mov esi, dword [ebp - 0x10]
movzx ecx, word [esi]
push 0x104
push edi
xor eax, eax
push ecx
mov word [edi], ax
call dword [sym.imp.USER32.dll_GetClipboardFormatNameW]
test eax, eax
jne 0x43588d
movzx eax, word [esi]
lea ecx, [eax - 1]
cmp ecx, 0x8d
ja case.0x4356e9.18
movzx edx, byte [ecx + 0x435d44]
jmp dword [edx*4 + 0x435ce8]
push str.CF_TEXT
push edi
call fcn.00412a30
add esp, 8
jmp 0x43588d
push str.CF_BITMAP
push edi
call fcn.00412a30
add esp, 8
jmp 0x43588d
push str.CF_METAFILEPICT
push edi
call fcn.00412a30
add esp, 8
jmp 0x43588d
push str.CF_SYLK
push edi
call fcn.00412a30
add esp, 8
jmp 0x43588d
push str.CF_DIF
push edi
call fcn.00412a30
add esp, 8
jmp 0x43588d
push str.CF_TIFF
push edi
call fcn.00412a30
add esp, 8
jmp 0x43588d
push str.CF_OEMTEXT
push edi
call fcn.00412a30
add esp, 8
jmp 0x43588d
push str.CF_DIB
push edi
call fcn.00412a30
add esp, 8
jmp 0x43588d
push str.CF_PALETTE
push edi
call fcn.00412a30
add esp, 8
jmp 0x43588d
push str.CF_PENDATA
push edi
call fcn.00412a30
add esp, 8
jmp 0x43588d
push str.CF_RIFF
push edi
call fcn.00412a30
add esp, 8
jmp 0x43588d
push str.CF_WAVE
push edi
call fcn.00412a30
add esp, 8
jmp 0x43588d
push str.CF_UNICODETEXT
push edi
call fcn.00412a30
add esp, 8
jmp 0x43588d
push str.CF_ENHMETAFILE
push edi
call fcn.00412a30
add esp, 8
jmp 0x43588d
push str.CF_HDROP
push edi
call fcn.00412a30
add esp, 8
jmp 0x43588d
push str.CF_LOCALE
push edi
call fcn.00412a30
add esp, 8
jmp 0x43588d
push str.CF_DIBV5
push edi
call fcn.00412a30
add esp, 8
jmp 0x43588d
push str.CF_OWNERDISPLAY
push edi
call fcn.00412a30
add esp, 8
jmp 0x43588d
push str.CF_DSPTEXT
push edi
call fcn.00412a30
add esp, 8
jmp 0x43588d
push str.CF_DSPBITMAP
push edi
call fcn.00412a30
add esp, 8
jmp 0x43588d
push str.CF_DSPMETAFILEPICT
push edi
call fcn.00412a30
add esp, 8
jmp 0x43588d
push str.CF_DSPENHMETAFILE
push edi
call fcn.00412a30
add esp, 8
jmp 0x43588d
push eax
push str.ClipFormatID_i
push edi
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
mov eax, edi
lea edx, [eax + 2]
xor ebx, ebx
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x435894
mov esi, dword [ebp - 0x10]
mov ecx, dword [esi + 0x10]
sub eax, edx
mov edx, dword [ebp - 8]
sar eax, 1
push ecx
add edx, eax
lea eax, [ebp + edx*2 - 0x54d8]
push str.__tymed0x_02X
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x10]
mov ecx, dword [eax]
add esp, 0xc
mov dword [esi + 0x10], 1
mov esi, dword [ebp - 0x1c]
push esi
push edx
push eax
mov eax, dword [ecx + 0xc]
mov dword [esi], ebx
mov dword [ebp - 4], ebx
call eax
cmp eax, ebx
jne 0x435b35
mov ecx, dword [esi]
cmp ecx, 1
jne 0x435a6e
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x435b76
push eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov ecx, dword [ebp - 0xc]
mov ebx, eax
mov dword [ebp + ecx*4 - 0xc8], ebx
test ebx, ebx
je 0x435a52
mov edx, esi
mov eax, dword [edx + 4]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalSize]
mov esi, eax
mov eax, edi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x435930
sub eax, edx
mov edx, dword [ebp - 8]
sar eax, 1
push esi
add edx, eax
lea eax, [ebp + edx*2 - 0x54d8]
push str.__DataSize_i
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
cmp esi, 1
jne 0x43597b
mov eax, edi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x435965
movzx ecx, byte [ebx]
push ecx
push str.__Data0x_02X
jmp 0x435998
cmp esi, 4
jne 0x4359b7
mov eax, edi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x435985
mov ecx, dword [ebx]
push ecx
push str.__Data0x_08X
sub eax, edx
mov edx, dword [ebp - 8]
sar eax, 1
add edx, eax
lea eax, [ebp + edx*2 - 0x54d8]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
jmp 0x435b76
cmp esi, 8
jne 0x4359f7
mov eax, edi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4359c1
mov ecx, dword [ebx + 4]
push ecx
mov ecx, dword [ebp - 8]
sub eax, edx
mov edx, dword [ebx]
sar eax, 1
push edx
add ecx, eax
lea edx, [ebp + ecx*2 - 0x54d8]
push str.__Data0x_08X_08X
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
jmp 0x435b76
push 0x4e82f4
push edi
call fcn.00412a90
lea eax, [esi + esi + 2]
push 1
push eax
mov dword [ebp - 4], eax
call fcn.0044c490
mov ecx, dword [ebp - 0xc]
add esp, 0x10
cmp byte [ebx], 0
mov dword [ebp + ecx*4 - 0x78], eax
je 0x435a39
cmp byte [ebx + 1], 0
je 0x435a39
push esi
push eax
push esi
push ebx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
jmp 0x435b76
mov edx, dword [ebp - 4]
push ebx
push edx
push eax
call fcn.00434c70
and esi, 0xfffffffe
add esi, 2
mov dword [ebp - 4], esi
jmp 0x435b76
push str.__hGlobal_not_available
push 0x208
push edi
call fcn.004017b0
mov dword [esi + 4], 0
jmp 0x435b76
cmp ecx, 2
jne 0x435a88
push str.__Error_in_source__TYMED_HGLOBAL_was_requested__but_got_TYMED_FILE
push 0x208
push edi
call fcn.004017b0
jmp 0x435b6c
cmp ecx, 4
jne 0x435aa2
push str.__Error_in_source__TYMED_HGLOBAL_was_requested__but_got_TYMED_ISTREAM
push 0x208
push edi
call fcn.004017b0
jmp 0x435b6c
cmp ecx, 8
jne 0x435abc
push str.__Error_in_source__TYMED_HGLOBAL_was_requested__but_got_TYMED_ISTORAGE
push 0x208
push edi
call fcn.004017b0
jmp 0x435b6c
cmp ecx, 0x10
jne 0x435ad6
push str.__Error_in_source__TYMED_HGLOBAL_was_requested__but_got_TYMED_GDI
push 0x208
push edi
call fcn.004017b0
jmp 0x435b6c
cmp ecx, 0x20
jne 0x435aee
push str.__Error_in_source__TYMED_HGLOBAL_was_requested__but_got_TYMED_MFPICT
push edi
call fcn.00412a90
add esp, 8
jmp 0x435b6c
cmp ecx, 0x40
jne 0x435b03
push str.__Error_in_source__TYMED_HGLOBAL_was_requested__but_got_TYMED_ENHMF
push edi
call fcn.00412a90
add esp, 8
jmp 0x435b6c
mov eax, edi
lea edx, [eax + 2]
mov dword [ebp - 0x24], edx
jmp 0x435b10
mov dx, word [eax]
add eax, 2
cmp dx, bx
jne 0x435b10
sub eax, dword [ebp - 0x24]
push ecx
mov ecx, dword [ebp - 8]
sar eax, 1
add ecx, eax
push str.__Error_in_source__TYMED_HGLOBAL_was_requested__but_got___i_
lea edx, [ebp + ecx*2 - 0x54d8]
push edx
jmp 0x435b63
mov ecx, edi
lea edx, [ecx + 2]
mov dword [ebp - 0x24], edx
lea ecx, [ecx]
mov dx, word [ecx]
add ecx, 2
cmp dx, bx
jne 0x435b40
sub ecx, dword [ebp - 0x24]
push eax
mov eax, dword [ebp - 8]
sar ecx, 1
add eax, ecx
push str.__Cant_get_TYMED_HGLOBAL__rc0x_08X
lea ecx, [ebp + eax*2 - 0x54d8]
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
push esi
call dword [sym.imp.ole32.dll_ReleaseStgMedium]
mov dword [esi + 4], ebx
push 0x4e75fc
push 0x208
push edi
call fcn.004017b0
mov ebx, dword [ebp + 0xc]
test ebx, ebx
je 0x435bf5
mov eax, edi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x435b92
mov esi, dword [sym.imp.KERNEL32.dll_WriteFile]
sub eax, edx
push 0
sar eax, 1
lea edx, [ebp - 0x18]
push edx
add eax, eax
push eax
push edi
push ebx
call esi
cmp dword [ebp - 4], 0
je 0x435be3
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp + ecx*4 - 0x78]
test eax, eax
je 0x435be3
mov ecx, dword [ebp - 4]
push 0
lea edx, [ebp - 0x18]
push edx
push ecx
push eax
push ebx
call esi
push 0
lea edx, [ebp - 0x18]
push edx
push 2
push 0x4e75fc
push ebx
call esi
push 0
lea eax, [ebp - 0x18]
push eax
push 2
push 0x4e75fc
push ebx
call esi
jmp 0x435c19
mov esi, dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
push edi
call esi
cmp dword [ebp - 4], 0
je 0x435c19
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp + ecx*4 - 0x78]
test eax, eax
je 0x435c19
push eax
call esi
push 0x4e75fc
call esi
mov dx, word [ebp - 0x28]
mov eax, dword [ebp - 0x10]
cmp word [eax], dx
jne 0x435c6d
mov ecx, dword [ebp - 0xc]
mov esi, dword [ebp + ecx*4 - 0xc8]
test esi, esi
je 0x435c6d
mov eax, dword [esi + 4]
mov edx, ebx
push edx
add eax, esi
push eax
call fcn.00434a60
xor ebx, ebx
add esp, 8
cmp dword [esi], ebx
jbe 0x435c6d
lea ecx, [esi + 8]
mov dword [ebp - 4], ecx
mov eax, dword [ebp - 4]
mov edx, dword [ebp + 0xc]
mov ecx, dword [eax]
push edx
add ecx, esi
push ecx
call fcn.00434a60
add dword [ebp - 4], 4
inc ebx
add esp, 8
cmp ebx, dword [esi]
jb 0x435c50
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x14]
add dword [ebp - 8], 0x208
add dword [ebp - 0x1c], 0xc
add dword [ebp - 0x10], 0x14
inc eax
add edi, 0x410
mov dword [ebp - 0xc], eax
cmp eax, ecx
jb 0x4356b0
xor esi, esi
test ecx, ecx
jbe 0x435cdd
mov ebx, dword [sym.imp.KERNEL32.dll_GlobalUnlock]
lea edi, [ebp - 0x1b4]
cmp dword [ebp + esi*4 - 0xc8], 0
je 0x435cc3
mov eax, dword [edi]
test eax, eax
je 0x435cc3
push eax
call ebx
lea edx, [edi - 4]
push edx
call dword [sym.imp.ole32.dll_ReleaseStgMedium]
mov eax, dword [ebp + esi*4 - 0x78]
test eax, eax
je 0x435cd4
push eax
call fcn.0044c4f0
add esp, 4
inc esi
add edi, 0xc
cmp esi, dword [ebp - 0x14]
jb 0x435ca6
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8