Function at 0x436dc0
Capabilities:
Open clipboard
Write clipboard data

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
fld qword [0x65d220]
sub esp, 0x4e4
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
add edi, 0x20
xor esi, esi
cmp dword [edi + 0x18], esi
je 0x436de7
cmp dword [edi + 0x1c], esi
jne 0x436e23
mov ebx, dword [0x6bd1e0]
fld qword [ebx + 0x1748]
fld qword [0x65d4f0]
fmul st(1), st(0)
fld qword [0x65d498]
fdiv st(2), st(0)
fxch st(2)
fadd st(3)
call fcn.005ab4c0
mov dword [edi + 0x18], eax
fmul qword [ebx + 0x1740]
fdivrp st(1)
faddp st(1)
call fcn.005ab4c0
mov dword [edi + 0x1c], eax
jmp 0x436e25
fstp st(0)
cmp dword [0x6bd750], esi
je 0x436e36
mov eax, dword [ebp + 8]
movzx ebx, word [eax + 0x2e]
jmp 0x436e3c
mov ebx, dword [0x6bd774]
cmp dword [0x6bd760], esi
jne 0x436e4e
mov dword [0x6bd760], 6
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x448]
push edx
push edi
lea eax, [esp + 0x40]
push eax
call sub.ltkrn10n.dll_L_ConvertFromDIB
cmp dword [0x6bd760], 0xa
jne 0x436e8a
cmp dword [0x6bd750], esi
jne case.0x436fba.15
cmp dword [0x6bd754], esi
je 0x436f1a
mov ebx, 0x18
jmp case.0x436fba.2
cmp dword [0x6bd754], esi
je 0x436f1a
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x3c]
push edx
call sub.ltimg10n.dll_L_GetBitmapColorCount
cmp eax, 1
jne 0x436f1a
cmp ebx, esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], 4
mov dword [esp + 0x24], 8
mov dword [esp + 0x28], 0x10
mov dword [esp + 0x2c], 0x18
mov dword [esp + 0x30], 0x20
mov ecx, ebx
jle 0x436f1a
mov edi, dword [esp + 0x10]
mov eax, 1
shl eax, cl
cmp eax, esi
jne 0x436ef2
or eax, 0xffffffff
cmp edi, eax
ja 0x436f1a
mov edx, 1
mov eax, edx
lea ecx, [ecx]
cmp eax, ecx
je 0x436f10
mov eax, dword [esp + edx*4 + 0x1c]
add edx, 1
cmp eax, 0x20
jl 0x436f00
mov ebx, ecx
mov ecx, dword [esp + edx*4 + 0x14]
cmp ecx, esi
jg 0x436ee4
mov ecx, dword [0x6bd764]
mov eax, dword [0x6bd768]
imul ecx, ecx, 0xb8
lea edx, [eax + eax*2]
mov edx, dword [ecx + edx*4 + 0x6a71fc]
lea eax, [ebx - 1]
xor ecx, ecx
cmp eax, 0x1f
ja case.0x436f46.2
movzx eax, byte [eax + 0x437384]
jmp dword [eax*4 + 0x437368]
mov ecx, 0x20
jmp case.0x436f46.2
mov ecx, 0x10
jmp case.0x436f46.2
mov ecx, 8
jmp case.0x436f46.2
mov ecx, 4
jmp case.0x436f46.2
mov ecx, 2
jmp case.0x436f46.2
mov ecx, 1
test edx, ecx
jne case.0x436fba.2
cmp ecx, 0x20
mov eax, ecx
ja 0x436f92
test edx, eax
jne 0x436f8d
add eax, eax
cmp eax, 0x20
jbe 0x436f80
jmp 0x436f92
cmp eax, 0x20
jbe 0x436fab
cmp ecx, 1
mov eax, ecx
jb 0x436fab
lea esp, [esp]
test edx, eax
jne 0x436fab
shr eax, 1
cmp eax, 1
jae 0x436fa0
add eax, 0xffffffff
cmp eax, 0x1f
ja case.0x436fba.2
movzx ecx, byte [eax + 0x4373c0]
jmp dword [ecx*4 + 0x4373a4]
mov ebx, 0x20
jmp case.0x436fba.2
mov ebx, 0x10
jmp case.0x436fba.2
mov ebx, 8
jmp case.0x436fba.2
mov ebx, 4
jmp case.0x436fba.2
mov ebx, 1
lea edx, [esp + 0xc0]
push edx
call sub.ltfil10n.dll_L_GetExtFileOption
mov edi, dword [0x6bd1e0]
and dword [esp + 0xc8], 0xffffffef
mov dword [esp + 0xcc], esi
fld qword [edi + 0x1748]
fld qword [0x65d220]
fadd st(1), st(0)
fxch st(1)
call fcn.005ab4c0
mov dword [esp + 0xc0], eax
fadd qword [edi + 0x1740]
call fcn.005ab4c0
mov dword [esp + 0xc4], eax
mov eax, dword [0x6bd760]
cmp eax, 2
jne 0x43704e
cmp dword [0x6bd748], esi
je 0x437070
or dword [esp + 0xc8], 0x10
jmp 0x437070
cmp eax, 0xa
je 0x43705d
cmp eax, 0x17
je 0x43705d
cmp eax, 0x15
jne 0x437070
cmp dword [0x6bd748], esi
je 0x437070
mov dword [esp + 0xcc], 0xffffffff
lea eax, [esp + 0xc0]
push eax
call sub.ltfil10n.dll_L_SetExtFileOption
mov esi, dword [ebp + 8]
movzx ecx, word [esi + 0x2e]
cmp ebx, ecx
mov ecx, dword [0x6bd778]
jne 0x437093
test cl, 8
je 0x4370ee
cmp ebx, 1
je 0x43709d
cmp ebx, 4
jne 0x4370a8
test cl, 8
je 0x4370a8
and ecx, 0xfffffff7
or ecx, 0x10
test dword [0x6a9a18], 0xff0000
je 0x4370ba
or ecx, 0x10000
push 0
push ebx
call fcn.00436a70
mov esi, eax
add esp, 8
cmp esi, 1
jge 0x4370e8
lea edx, [esp + 0x38]
push edx
call sub.ltkrn10n.dll_L_FreeBitmap
xor ecx, ecx
mov ebx, esi
call fcn.004368c0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x6bd778]
mov edi, dword [0x6bd744]
mov edx, dword [ebp + 0x10]
xor eax, eax
cmp ebx, 8
setg al
mov esi, edx
mov dword [esp + 0x10], 1
sub eax, 1
and eax, ecx
mov ecx, edi
neg ecx
sbb ecx, ecx
and ecx, 4
or eax, ecx
mov ecx, dword [esp + 0x58]
shl esi, 7
xor esi, ecx
and esi, 0x80
xor ecx, esi
test edx, edx
mov esi, dword [ebp + 0x14]
mov dword [esp + 0x58], ecx
je 0x43713c
mov dword [esp + 0x94], esi
mov ecx, dword [0x6bd760]
cmp ecx, 2
jne 0x43720a
mov eax, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0xc]
push esi
push edx
mov edx, dword [0x6bd748]
push edx
push eax
mov ecx, edi
call fcn.004c74e0
add esp, 0x14
mov dword [esp + 0x10], eax
lea edx, [esp + 0x38]
push edx
call sub.ltkrn10n.dll_L_FreeBitmap
cmp dword [esp + 0x10], 0
je 0x4371ff
cmp dword [0x6bd75c], 0
je 0x4371ff
push 0
call dword [sym.imp.user32.dll_OpenClipboard]
test eax, eax
je 0x4371ff
call dword [sym.imp.user32.dll_EmptyClipboard]
mov eax, edi
lea edx, [eax + 1]
nop
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x4371a0
sub eax, edx
add eax, 1
push eax
push 0x2002
call dword [sym.imp.kernel32.dll_GlobalAlloc]
mov ebx, eax
test ebx, ebx
je 0x4371f9
push ebx
mov esi, edi
call dword [sym.imp.kernel32.dll_GlobalLock]
lea esp, [esp]
mov cl, byte [esi]
mov byte [eax], cl
add esi, 1
add eax, 1
test cl, cl
jne 0x4371d0
push ebx
call dword [sym.imp.kernel32.dll_GlobalUnlock]
push ebx
push 1
call dword [sym.imp.user32.dll_SetClipboardData]
test eax, eax
jne 0x4371f9
push ebx
call dword [sym.imp.kernel32.dll_GlobalFree]
call dword [sym.imp.user32.dll_CloseClipboard]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ecx, 0x5b
jne 0x437224
mov ecx, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0xc]
push esi
push edx
push edi
push ecx
call fcn.004c5a50
jmp 0x437163
cmp ecx, 0x4b
jne 0x437247
mov eax, dword [0x6bd748]
mov ecx, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
push eax
push esi
push edx
push ecx
mov ebx, edi
call fcn.004c9240
add esp, 0x10
jmp 0x437166
cmp ecx, 0xc8
jne 0x437270
mov edx, dword [0x6bd76c]
mov edi, dword [ebp + 0xc]
mov ecx, dword [0x6bd748]
push edx
mov edx, dword [ebp + 8]
push edi
call fcn.004c9370
add esp, 8
jmp 0x437166
cmp ecx, 0x57
je 0x43731f
cmp ecx, 0x58
je 0x43731f
cmp ecx, 0x5f
je 0x43731f
cmp ecx, 0x1d
je 0x43731f
cmp ecx, 0x11
je 0x43731f
cmp ecx, 0x56
je 0x43731f
cmp ecx, 0x5e
je 0x43731f
test al, 4
jne 0x43731f
mov edi, dword [ebp + 0xc]
push 0
push 0x80
push 2
push 0
push 3
push 0x40000000
push edi
call dword [sym.imp.kernel32.dll_CreateFileA]
mov dword [esp + 0x14], eax
xor esi, esi
lea ecx, [ecx]
push 0
push 0
push esi
call sub.ltfil10n.dll_L_SetComment
add esi, 1
cmp esi, 0xae
jb 0x4372d0
mov eax, dword [0x6bd770]
mov ecx, dword [0x6bd760]
mov esi, dword [esp + 0x14]
push 0
push 0
push 2
push eax
push ebx
push ecx
lea edx, [esp + 0x50]
push edx
lea eax, [esp + 0x50]
push eax
push 0
push esi
call sub.ltfil10n.dll_L_SaveFileOffset
cmp esi, 0xffffffff
mov ebx, eax
je 0x437343
push esi
call dword [sym.imp.kernel32.dll_CloseHandle]
jmp 0x437343
mov edx, dword [0x6bd770]
mov edi, dword [ebp + 0xc]
push 0
push 0
and eax, 4
or eax, 2
push eax
push edx
push ebx
push ecx
lea eax, [esp + 0x50]
push eax
push edi
call sub.ltfil10n.dll_L_SaveFile
mov ebx, eax
cmp ebx, 1
jge 0x43716a
mov ecx, edi
call fcn.004368c0
lea ecx, [esp + 0x38]
push ecx
call sub.ltkrn10n.dll_L_FreeBitmap
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret