Function at 0x1004585
Capabilities:
Encrypt data using chaskey

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0xa8
mov eax, dword [0x10095ec]
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, dword [sym.imp.USER32.dll_RegisterWindowMessageW]
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
push 0x10017dc
mov dword [ebp - 0x54], esi
mov dword [ebp - 0x50], eax
call edi
xor ebx, ebx
cmp eax, ebx
mov dword [0x100a788], eax
je 0x10049ce
push 0x10017c0
call edi
cmp eax, ebx
mov dword [0x100a784], eax
je 0x10049ce
push ebx
call dword [sym.imp.USER32.dll_GetDC]
cmp eax, ebx
mov dword [ebp - 0x48], eax
je 0x10049ce
push esi
call fcn.010040da
test eax, eax
je 0x10049ce
push 0x29
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov edi, dword [sym.imp.USER32.dll_LoadCursorW]
neg eax
sbb eax, eax
add eax, 0x7f01
push eax
push ebx
call edi
push 0x7f02
push ebx
mov dword [0x100ae88], eax
call edi
push 0x10017b0
push esi
mov dword [0x100ae84], eax
call dword [sym.imp.USER32.dll_LoadAcceleratorsW]
cmp dword [0x100ae84], ebx
mov dword [0x100a9d8], eax
je 0x10049ce
cmp eax, ebx
je 0x10049ce
cmp dword [ebp + 0xc], ebx
jne 0x100465b
call fcn.010044f7
test eax, eax
je 0x10049ce
mov dword [0x100ae80], esi
mov dword [0x100a7a0], 0x54
mov dword [0x100a7a8], ebx
mov dword [0x100a7ac], ebx
mov dword [0x100a7dc], esi
call fcn.0100197d
call fcn.01003cb2
push ebx
push esi
push ebx
push ebx
push dword [0x1009a50]
mov esi, 0x10013a4
push dword [0x1009a54]
push dword [0x1009a5c]
push dword [0x1009a58]
push 0xcf0000
push esi
push 0x1009008
push ebx
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov edx, eax
cmp edx, ebx
mov dword [0x1009810], edx
mov dword [0x100a7a4], edx
je 0x10049ce
mov eax, 0x80000000
cmp dword [0x1009a54], eax
je 0x100473f
cmp dword [0x1009a50], eax
je 0x100473f
xor eax, eax
push 0xb
pop ecx
lea edi, [ebp - 0xa8]
rep stosd dword es:[edi], eax
mov eax, dword [0x1009a58]
mov ecx, dword [0x1009a54]
mov dword [ebp - 0x8c], eax
add eax, ecx
mov ecx, dword [0x1009a50]
mov dword [ebp - 0x84], eax
mov eax, dword [0x1009a5c]
mov dword [ebp - 0x88], eax
add eax, ecx
mov dword [ebp - 0x80], eax
lea eax, [ebp - 0xa8]
push eax
push edx
mov dword [ebp - 0xa8], 0x2c
call dword [sym.imp.USER32.dll_SetWindowPlacement]
mov edx, dword [0x1009810]
push 1
push edx
call dword [sym.imp.SHELL32.dll_DragAcceptFiles]
mov edi, dword [sym.imp.USER32.dll_GetClientRect]
lea eax, [ebp - 0x7c]
push eax
push dword [0x1009810]
call edi
mov eax, dword [ebp - 0x70]
push ebx
push dword [ebp - 0x54]
add eax, 0xffffff9c
push 0xf
push dword [0x1009810]
push eax
push dword [ebp - 0x74]
mov eax, dword [0x1009830]
neg eax
push ebx
sbb eax, eax
push ebx
and eax, 0xfff00000
add eax, 0x50300104
push eax
push esi
push 0x10017a4
push 0x200
call dword [sym.imp.USER32.dll_CreateWindowExW]
cmp eax, ebx
mov dword [0x1009818], eax
je 0x10049ce
mov eax, dword [0x1009820]
neg eax
push 0x401
push dword [0x1009810]
sbb eax, eax
and eax, 0x10000000
push esi
or eax, 0x44800000
push eax
call dword [sym.imp.COMCTL32.dll_CreateStatusWindowW]
cmp eax, ebx
mov dword [0x1009814], eax
je 0x10049ce
push 1
call fcn.01001c62
lea eax, [ebp - 0x6c]
push eax
push dword [0x1009814]
call edi
mov eax, dword [ebp - 0x60]
sub eax, dword [ebp - 0x68]
push 4
mov dword [0x100a9e0], eax
mov eax, dword [ebp - 0x64]
sub eax, dword [ebp - 0x6c]
pop ecx
lea eax, [eax + eax*2]
cdq
idiv ecx
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
or dword [ebp - 0x58], 0xffffffff
mov dword [ebp - 0x5c], eax
lea eax, [ebp - 0x5c]
push eax
push 2
push 0x404
push dword [0x1009814]
call esi
push ebx
push dword [0x1009830]
push 0xc8
push dword [0x1009818]
call esi
cmp dword [0x1009830], ebx
je 0x1004860
push dword [0x1009810]
call dword [sym.imp.USER32.dll_GetMenu]
push 1
push 0x1b
push 3
push eax
call dword [sym.imp.USER32.dll_GetSubMenu]
push eax
call dword [sym.imp.USER32.dll_EnableMenuItem]
push 0x2d0
push 0x5a
push dword [ebp - 0x48]
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
push eax
push dword [section..data]
call dword [sym.imp.KERNEL32.dll_MulDiv]
neg eax
mov edi, 0x100ae20
push edi
mov dword [0x100ae20], eax
call dword [sym.imp.GDI32.dll_CreateFontIndirectW]
push eax
push dword [ebp - 0x48]
mov dword [0x100ae7c], eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [ebp - 0x4c], eax
lea eax, [ebp - 0x44]
push eax
push 0x20
push dword [ebp - 0x48]
call dword [sym.imp.GDI32.dll_GetTextFaceW]
push dword [ebp - 0x4c]
pushal
pushfd
xor ebx, ecx
call fcn.01005f56
test ebx, esi
jb 0x10048df
not edx
mov eax, 0x1197756
not esi
and esi, edi
rol esi, 0x10
not esi
mov edi, ebp
or esi, edi
mov eax, esi
xor esi, eax
not edx
or ecx, eax
sub ebx, dword [0x1009296]
xchg esi, eax
xchg edx, eax
add byte [ecx], al
and esi, edi
xchg edx, eax
mov dword [0x100aec6], 0x797a845
mov esi, 0x491eae8
add eax, eax
xor esi, eax
and esi, edi
add edi, edx
or eax, 0x2dbb2e87
rol esi, 8
not esi
shr esi, 0x13
rol esi, 5
neg esi
mov esi, eax
and esi, edi
rol esi, 0xc
dec esi
call fcn.01001918
add esi, eax
xor ecx, edx
mov esi, 0x1a0253c0
mov ecx, 0xeb961f
inc esi
neg eax
call fcn.010033f6
inc esi
xchg esi, eax
neg ebx
shl eax, 9
mov dword [0x100af78], esi
shl edx, 0x1d
call fcn.01002099
xchg edx, esi
inc eax
sub dword [0x100aefa], ecx
test ebp, esi
jo 0x10049c5
loop 0x100492c
inc esi
and eax, 0x29c7eeb6
sub edi, 0x96df503
call fcn.01005f56
inc esi
not edi
mov ecx, 0x6087ee
inc esi
not edx
call fcn.01002099
mov edi, dword [0x10093e8]
sub dword [0x100aec0], edx
mov dword [0x100aee8], 0xd6da1b6
test edx, ebx
jb 0x1004a0f
sub dword [0x100afeb], ebx
inc eax
neg esi
rol esi, 8
dec edi
shl esi, 3
loop 0x1004973
dec eax
add esi, eax
xor edi, esp
inc edi
add edx, esp
xor edx, ebp
test esi, 0x1679eaa3
jo 0x1004960
mov ecx, 0x97374
xchg eax, eax
inc eax
rol esi, 0x17
inc esi
shl esi, 6
ror esi, 0xd
neg edi
mov dword [0x100af20], esi
xor eax, 0x100af20
neg esi
or dword [0x100aee4], 0x2db787cc
loop 0x10049be
inc ecx
mov esi, 0x24bc949
xor edi, edx
mov edx, esp
shl ecx, 0x16
xor esi, eax
shl eax, 6
add esi, 0x10f17639
mov edx, esi
mov esi, 0x9e89359
mov esi, esp
shl esi, 5
or eax, 0xfc2d8b8
and esi, edi
mov edi, dword [0x10095d6]
salc
xchg ebp, eax
add byte [ecx], al
or edx, 0x1c827208
sub ecx, ecx
add ecx, ebx
and esi, edi
add esi, eax
sub edi, ebx
push 0x1008100
xor eax, esp
neg esi
dec eax
sub eax, eax
xor ecx, eax
xchg esi, esi
sub ecx, dword [0x1009582]
sub ebx, 0x1ea4691c
inc ebx
not esi
inc esi
call fcn.010033f6
add esi, edx
mov dword [0x100af97], ecx
xor edi, edx
sub edi, dword [0x10093a0]
mov dword [0x100af8b], esi
call fcn.01003f66
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
rol esi, 0x12
not esi
call fcn.01002099
xor ebx, eax
neg edx
call fcn.01003b93
or dword [0x100aeed], 0x282ddae4
rol edx, 0x1a
add dword [0x100aea8], 0x12ab8c46
xor edx, 0x2826336
xor esi, esp
mov dword [0x100af70], 0x30f5020
dec ecx
not eax
dec esi
xor edi, ebx
ror esi, 9
xor edi, ecx
ror eax, 0xa
xchg ebx, edx
inc eax
dec eax
xchg ebx, edx
rol eax, 0xa
xor edi, ecx
rol esi, 9
xor edi, ebx
inc esi
not eax
inc ecx
sub dword [0x100aeb6], 0xc6ad40f
xor esi, esp
xor edx, 0x2826336
and dword [0x100af78], 0x31d6f060
ror edx, 0x1a
neg edx
xor ebx, eax
not esi
ror esi, 0x12
push 0
xor eax, 0x165a01f8
ror edx, 5
and dword [0x100af01], ebx
add esi, ebx
sub ecx, eax
call fcn.010020f2
dec esi
ror eax, 0x1a
xor ecx, eax
sub dword [0x100aec1], ecx
add esi, 0x24c35ceb
sub ecx, 0x966878
neg eax
ror edx, 0x13
add edi, ebp
sub dword [0x100afd0], 0xea34374
neg esi
xor edx, eax
neg ebx
dec esi
inc esi
neg ebx
xor edx, eax
neg esi
sub edi, ebp
rol edx, 0x13
neg eax
add ecx, 0x966878
sub esi, 0x24c35ceb
mov dword [0x100af01], ecx
xor ecx, eax
rol eax, 0x1a
inc esi
call fcn.01002099
add ecx, eax
sub esi, ebx
rol edx, 5
xor eax, 0x165a01f8
push 0x636f6c6c
call fcn.01005f56
inc eax
xchg eax, eax
xor dword [0x100af20], 0x999a5c
not ebx
xor eax, esp
add edx, esi
call fcn.01005f56
xor esi, eax
neg edi
dec esi
xor ecx, edi
add dword [0x100af4d], 0x10ed7730
not edx
dec eax
call fcn.010033f6
mov dword [0x100af77], 0x1e2da51c
call fcn.010033f6
add edx, eax
mov dword [0x100af58], ecx
sub edx, eax
call fcn.010033f6
or dword [0x100af20], 0x39a11b8
call fcn.01001918
inc eax
not edx
xor ecx, edi
inc esi
neg edi
xor esi, eax
call fcn.01005f56
sub edx, esi
xor eax, esp
not ebx
xchg eax, eax
dec eax
push 0x416c6175
neg esi
add eax, 0x214696ce
sub esi, 0x34946b85
xor ebx, esp
add ecx, edx
mov dword [0x100afc7], edx
xor eax, esp
dec esi
mov dword [0x100af32], edx
dec eax
sub edi, eax
not edi
call fcn.01001918
xor esi, 0xdf3c91a
inc esi
rol esi, 1
neg eax
sub ebx, esi
add esi, esp
inc eax
add eax, 0x130a58ae
sub eax, 0x130a58ae
dec eax
sub esi, esp
add ebx, esi
neg eax
ror esi, 1
dec esi
xor esi, 0xdf3c91a
call fcn.01007161
not edi
add edi, eax
inc eax
mov dword [0x100afb0], ecx
inc esi
xor eax, esp
xor dword [0x100af05], ebx
sub ecx, edx
xor ebx, esp
add esi, 0x34946b85
sub eax, 0x214696ce
neg esi
push 0x74726956
xor esi, esp
xchg esi, eax
not ebx
xor dword [0x100aedd], ebx
xor ebx, eax
xchg ebx, edx
sub esi, eax
xor edi, ebp
sub edi, ebp
call fcn.010040cd
call fcn.01002099
add edi, ebp
xor edi, ebp
add esi, eax
xchg ebx, edx
xor ebx, eax
not ebx
xchg esi, eax
xor esi, esp
push esp
ror ecx, 2
not esi
call fcn.01007161
rol edi, 9
xor ebx, edi
call fcn.01001918
xor ebx, 0x29710d5e
ror eax, 0x1b
xchg esi, eax
rol esi, 0x13
mov dword [0x100afbd], ebx
call fcn.01001918
dec esi
add dword [0x100afbe], esi
xor eax, esp
rol edi, 0x1e
mov dword [0x100af9c], ebx
rol eax, 0x13
neg esi
ror esi, 0x1e
xor esi, eax
xor esi, eax
rol esi, 0x1e
neg esi
ror eax, 0x13
ror edi, 0x1e
xor eax, esp
inc esi
call fcn.010033f6
or dword [0x100af17], ecx
ror esi, 0x13
xchg esi, eax
rol eax, 0x1b
invalid
pop esi