Function at 0x412484
Capabilities:
Encode data using xor
Inspect load icon resource

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffc4
push ebx
mov eax, 0x4123f4
call fcn.004055d8
mov dword [0x4148a0], 0xadbf0
mov dword [0x4148c0], esp
add dword [0x4148c0], 0x44
mov dword [0x4148c4], ebp
add dword [0x4148c4], 0x20
lea ecx, [0x414660]
mov eax, dword [ecx - 0x10]
mov dword [0x4148cc], eax
mov eax, dword [ecx - 0x14]
mov dword [0x4148c8], eax
mov dword [0x414888], 1
push 0
call sub.gdi32.dll_GetObjectType
push 0
call sub.gdi32.dll_GetPixelFormat
push 0
call sub.gdi32.dll_GetPolyFillMode
inc dword [0x414888]
cmp dword [0x414888], 0x6bca8
jne 0x4124d9
push 0x115c
push 0
call sub.user32.dll_LoadIconW
test eax, eax
jne 0x41297c
xor eax, eax
mov dword [0x414888], eax
inc dword [0x414888]
cmp dword [0x414888], 0x2ae9181
jne 0x41251b
mov dword [0x414888], 4
cmp dword [0x414888], 5
jne 0x412712
push 0x41298c
push 0x412990
mov ecx, dword [0x414660]
mov dl, 1
mov eax, dword [0x40f530]
call fcn.00411784
mov dword [0x41488c], eax
push 0x41298c
push 0x412990
mov ecx, dword [0x414660]
mov dl, 1
mov eax, dword [0x40f530]
call fcn.00411784
mov dword [0x41488c], eax
push 0x41298c
push 0x412990
mov ecx, dword [0x414660]
mov dl, 1
mov eax, dword [0x40f530]
call fcn.00411784
mov dword [0x41488c], eax
push 0x41298c
push 0x412990
mov ecx, dword [0x414660]
mov dl, 1
mov eax, dword [0x40f530]
call fcn.00411784
mov dword [0x41488c], eax
push 0x41298c
push 0x412990
mov ecx, dword [0x414660]
mov dl, 1
mov eax, dword [0x40f530]
call fcn.00411784
mov dword [0x41488c], eax
push 0x41298c
push 0x412990
mov ecx, dword [0x414660]
mov dl, 1
mov eax, dword [0x40f530]
call fcn.00411784
mov dword [0x41488c], eax
push 0x41298c
push 0x412990
mov ecx, dword [0x414660]
mov dl, 1
mov eax, dword [0x40f530]
call fcn.00411784
mov dword [0x41488c], eax
push 0x41298c
push 0x412990
mov ecx, dword [0x414660]
mov dl, 1
mov eax, dword [0x40f530]
call fcn.00411784
mov dword [0x41488c], eax
push 0x41298c
push 0x412990
mov ecx, dword [0x414660]
mov dl, 1
mov eax, dword [0x40f530]
call fcn.00411784
mov dword [0x41488c], eax
push 0x41298c
push 0x412990
mov ecx, dword [0x414660]
mov dl, 1
mov eax, dword [0x40f530]
call fcn.00411784
mov dword [0x41488c], eax
push 0x41298c
push 0x412990
mov ecx, dword [0x414660]
mov dl, 1
mov eax, dword [0x40f530]
call fcn.00411784
mov dword [0x41488c], eax
push 0x41298c
push 0x412990
mov ecx, dword [0x414660]
mov dl, 1
mov eax, dword [0x40f530]
call fcn.00411784
mov dword [0x41488c], eax
push 0x41298c
push 0x412990
mov ecx, dword [0x414660]
mov dl, 1
mov eax, dword [0x40f530]
call fcn.00411784
mov dword [0x41488c], eax
push 0x41298c
push 0x412990
mov ecx, dword [0x414660]
mov dl, 1
mov eax, dword [0x40f530]
call fcn.00411784
mov dword [0x41488c], eax
push 0x41299c
push 0xa
mov ecx, dword [0x414660]
mov dl, 1
mov eax, dword [0x40f530]
call fcn.00411784
mov dword [0x41488c], eax
mov dword [0x4148d0], 0x1001
mov dword [0x4148d4], 0x11e
mov eax, 0x4057b0
mov dword [0x4148dc], eax
mov dword [0x4148e0], 0xffffffff
mov eax, dword [0x41488c]
mov edx, dword [eax]
call dword [edx]
mov dword [0x4148b4], eax
mov eax, dword [0x4148d4]
sub eax, 0xde
push eax
mov eax, dword [0x4148d0]
dec eax
push eax
mov eax, dword [0x4148b4]
push eax
push 0
call dword [0x4148dc]
mov dword [0x414890], eax
mov edx, dword [0x414890]
mov ecx, dword [0x4148b4]
mov eax, dword [0x41488c]
call fcn.00411420
mov eax, dword [0x414890]
mov eax, dword [eax]
mov dword [0x41489c], eax
mov eax, dword [0x414890]
add eax, 4
mov dword [0x414890], eax
mov dword [0x4148d0], 0x1001
mov dword [0x4148d4], 0xc4
mov eax, dword [0x4148d4]
sub eax, 0x84
push eax
mov eax, dword [0x4148d0]
dec eax
push eax
mov eax, dword [0x4148b4]
push eax
push 0
call dword [0x4148dc]
mov dword [0x414898], eax
mov eax, dword [0x414898]
mov dword [0x414894], eax
mov eax, dword [0x414894]
sub eax, 4
mov dword [0x414894], eax
xor eax, eax
mov dword [0x4148b8], eax
xor eax, eax
mov dword [0x4148bc], eax
xor ecx, ecx
mov edx, dword [0x4148b4]
mov eax, dword [0x414898]
call fcn.00405828
mov dword [0x4148ac], 0x64
mov dword [0x4148a8], 0xd05
mov dword [0x4148b0], 0x32
xor eax, eax
mov dword [0x414888], eax
mov eax, dword [0x4148b4]
mov dword [0x4148e0], eax
mov eax, dword [0x4148b8]
xor edx, edx
push edx
push eax
mov eax, dword [0x4148e0]
cdq
cmp edx, dword [esp + 4]
jne 0x412877
cmp eax, dword [esp]
pop edx
pop eax
ja 0x41287b
jmp 0x4128c6
pop edx
pop eax
jle 0x4128c6
mov edx, dword [0x414890]
add edx, dword [0x4148b8]
add edx, dword [0x414888]
mov eax, dword [0x414898]
add eax, dword [0x4148bc]
mov ecx, dword [0x4148ac]
call fcn.00405820
mov eax, dword [0x4148ac]
add dword [0x4148bc], eax
mov eax, dword [0x4148ac]
add dword [0x4148b8], eax
mov eax, dword [0x4148b0]
add dword [0x4148b8], eax
jmp 0x41284f
xor eax, eax
mov dword [0x414888], eax
mov dword [0x4148d8], 0x8a58a
mov eax, dword [0x414888]
cmp eax, dword [0x41489c]
jae 0x412938
mov eax, dword [0x414888]
mov edx, dword [0x414898]
add dword [edx], eax
push 0
call sub.user32.dll_DestroyMenu
mov ebx, eax
mov eax, dword [0x4148a8]
add eax, dword [0x4148d8]
add eax, dword [0x414888]
add ebx, eax
push 0
call sub.user32.dll_DestroyMenu
sub ebx, eax
mov eax, dword [0x414898]
xor dword [eax], ebx
add dword [0x414888], 4
add dword [0x414898], 4
mov eax, dword [0x414888]
cmp eax, dword [0x41489c]
jb 0x4128e4
mov eax, dword [0x414894]
add eax, dword [0x4148a0]
sub eax, 0x1000
add eax, 4
mov dword [0x4148a4], eax
push dword [0x4148c0]
push dword [0x4148c4]
push dword [0x4148c8]
push dword [0x4148cc]
push dword [0x414660]
mov eax, 1
push eax
mov edx, dword [0x4148a4]
jmp edx
pop ebx
call fcn.00403890
add byte [eax], al