Function at 0x45a550
Capabilities:
Encode data using xor

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x1c
mov eax, dword [0x4e01d4]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push dword [ebp + 8]
lea ecx, [ebp - 0x1c]
call fcn.00447e28
mov ebx, dword [ebp + 0x1c]
test ebx, ebx
jne 0x45a57d
mov eax, dword [ebp - 0x18]
mov ebx, dword [eax + 8]
xor eax, eax
xor edi, edi
cmp dword [ebp + 0x20], eax
push edi
push edi
push dword [ebp + 0x14]
setne al
push dword [ebp + 0x10]
lea eax, [eax*8 + 1]
push eax
push ebx
call fcn.00459d16
add esp, 0x18
mov dword [ebp - 0xc], eax
test eax, eax
je 0x45a62d
add eax, eax
mov dword [ebp - 8], eax
lea ecx, [eax + 8]
cmp eax, ecx
sbb eax, eax
and eax, ecx
je 0x45a624
cmp eax, 0x400
ja 0x45a5d5
call fcn.0043e770
mov esi, esp
test esi, esi
je 0x45a626
mov dword [esi], 0xcccc
jmp 0x45a5e8
push eax
call fcn.00454c05
mov esi, eax
pop ecx
test esi, esi
je 0x45a626
div byte [esp + eax*2 - 0x39]
push es
fstp st(5)
add byte [eax], al
mov dword [esi], 0xdddd
add esi, 8
pushal
pushfd
sub eax, 0x728c440
mov edi, 0xff43340
xor esi, ebx
and esi, edi
sub edx, edi
call fcn.00411d3f
or esi, edi
shl ebx, 0x19
add ecx, esp
xor esi, eax
mov eax, 0x5a7ecb8
xor ecx, eax
and esi, edi
xor eax, esp
mov eax, 0x1abf0801
mov esi, dword [0x4e3da4]
mov ecx, 0x1e9565
xchg ebp, eax
push ds
add cl, al
call 0xec06ee2f
shr eax, 2
dec eax
shr ebx, 0xa
inc eax
rol esi, 3
inc ebx
or al, byte [eax - 0x3f]
mov byte [ebx], 0x43
mov dword [0x4e77a8], 0x2b25bbfd
neg edi
rol esi, 0x1f
test eax, eax
jo 0x45a5df
loop 0x45a627
sub edi, ebx
mov ebx, ebx
mov edx, 0x1461af35
add edx, dword [0x4e2679]
rol eax, 0xd
xor esi, 0x90bd2a8
neg esi
or esi, edi
mov edi, eax
call fcn.0040a94d
and edx, 0x115c2698
rol esi, 7
xor eax, ecx
shr eax, 0x1e
shl edx, 0x1a
sub esi, 0x5707680
sub edi, dword [0x4e042b]
shl eax, 0xc
sub esi, esp
mov ecx, 0x2331420
or esi, edi
ror esi, 6
and esi, edi
test ecx, edx
jo 0x45a6eb
xor ebx, edi
mov ecx, 0x87eb64
sub dword [0x4e75c0], ebx
dec eax
inc esi
sub dword [0x4e767b], 0x2294bad0
ror eax, 0xd
mov dword [0x4e76d8], ecx
inc edx
xchg eax, edx
and dword [0x4e7516], ebx
sub eax, 0x4e767b
sar byte [edx - 0x373edd6c], 1
or eax, 0x76d80d89
dec esi
add byte [edx - 0x79], al
shl byte [ecx], 1
sbb eax, 0x4e7516
test ecx, edi
jo 0x45a6dc
mov dword [0x4e7598], 0x7cfb4df
loop 0x45a6a4
xor ecx, ebp
sub esi, 0x2702445
test eax, ebp
jo 0x45a6ad
inc ebp
and al, 0x70
add al, byte [ebp - 0x74368f18]
retf
mov ecx, ebx
dec edx
add edx, eax
sub eax, 0xccb6b29
mov edi, dword [0x4e0461]
sub dword [ebx - 0x35], ebp
or al, 0x8b
cmp eax, 0x4e0461
not eax
rol esi, 0xa
and esi, edi
mov esi, 0x8feec7a
xor ebx, dword [0x4e3fee]
mov esi, eax
mov edx, 0x20671e0
sub esi, eax
mov esi, eax
dec edi
rol eax, 8
test esp, edx
jo 0x45a6fc
mov eax, ecx
mov ecx, dword [0x4e3295]
mov esi, eax
and esi, edi
rol esi, 3
not esi
shr ebx, 0x1a
mov ecx, dword [0x4e5856]
or esi, edi
xchg ebx, esi
xor esi, esi
or esi, edi
mov dword [0x4e75a2], 0xdd1e50f
rol eax, 4
mov esi, eax
xor eax, ebp
call fcn.00411d3f
neg esi
shr esi, 0x11
call fcn.0041316f
inc ebx
and esi, edi
xor ecx, ecx
sub eax, 0x151e411c
dec eax
or esi, edi
add esi, eax
mov ecx, 0xdb25c8
xchg edi, eax
or esi, dword [0x4e5255]
ror eax, 0x1e
or edi, dword [0x4e1086]
xchg esi, eax
xor edx, dword [0x4e0fea]
rol esi, 8
xor dword [0x4e7738], ebx
inc esi
shr esi, 0x12
loop 0x45a771
xor ebx, esp
add ebx, 0x1d8773d
xor eax, 0x11c86736
mov edi, esp
ror esi, 0x19
test esp, ebx
jo 0x45a82a
inc eax
not eax
or esi, edi
shl eax, 2
shr esi, 0x18
and esi, 0xc4700a
not edx
inc eax
mov edx, eax
neg esi
add esi, eax
and esi, edi
sub ebx, 0x1bec5a7
dec eax
test eax, eax
mov esi, 0xc0854801
jo 0x45a7d0
dec edx
xor edi, ebp
test eax, esi
jo 0x45a809
add esi, esi
or esi, edi
inc eax
neg esi
xchg esi, eax
not esi
shl eax, 0x1a
xchg eax, edx
dec eax
xor ecx, esi
ror ecx, 0x1f
neg eax
dec eax
xchg esi, esi
xor esi, eax
or esi, edi
xor eax, 0x2187aba8
xor eax, esp
sub eax, 0x1ffea7a0
not edx
sub edx, 0x2fb5aaaf
push str.KERNEL32.dll
xor ecx, eax
xor edi, esp
not eax
xor esi, 0x106edbe7
call fcn.00402adf
or dword [0x4e7696], esi
invalid
xor eax, 0x4e7696
call fcn.00411d3f
xor ecx, esp
xor esi, 0x23367c78
xor ebx, dword [0x4e3950]
dec esi
add byte [eax - 0x3f], al
enter 0xffffffffffffe80a, 0xffffffffffffffa5
jne 0x45a844
push edi
invalid
call fcn.004020d8
sub edi, esi
call fcn.004014a5
sub esi, dword [0x4e1f80]
dec esi
call fcn.0040449d
call fcn.004057b2
call fcn.00404b48
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call fcn.004014a5
inc edx
sub ecx, dword [0x4e7b88]
neg edi
dec eax
xor ecx, dword [0x4e7dfd]
add byte [ecx + 0x104f8ff6], al
pop es
add edi, dword [0x4e7f65]
mov dword [0x4e78a0], edx
call fcn.00402617
neg edi
neg edi
call fcn.00403b3b
sub dword [0x4e7780], edi
xor esi, 0x7104f8f
inc eax
neg edi
dec edx
push 0
sub edi, dword [0x4e7e66]
not eax
xor edi, edx
ror edi, 0x12
mov dword [0x4e75dc], 0x902918c
inc eax
mov dword [0x4e79ea], edi
call fcn.00408c2d
add ebx, eax
mov dword [0x4e77f8], ecx
not eax
sub edi, edx
inc eax
dec eax
add edi, edx
not eax
sub dword [0x4e76b7], ebx
sub ebx, eax
call fcn.00402adf
dec eax
sub dword [0x4e74e8], 0x13104e10
rol edi, 0x12
xor edi, edx
not eax
push 0x636f6c6c
sub dword [0x4e75ec], ebx
or dword [0x4e77a0], ecx
sub ecx, dword [0x4e7f10]
call fcn.00405dcf
not edx
call fcn.00408efd
sub esi, dword [0x4e7e47]
xor dword [0x4e75d0], 0x913b739
not eax
call fcn.0040612f
xor esi, eax
xor ecx, dword [0x4e7dec]
ror esi, 0xb
sub ecx, dword [0x4e7cf4]
xor ebx, eax
or dword [0x4e74b1], ecx
xor dword [0x4e752b], edx
mov dword [0x4e7764], edx
add dword [0x4e79d5], ecx
xor ebx, eax
rol esi, 0xb
xor esi, eax
call fcn.004016e5
not eax
mov dword [0x4e7490], 0x2cb633a
call fcn.0040569d
not edx
mov dword [0x4e79a2], esi
push 0x416c6175
rol ebx, 0x1d
add edi, esp
inc ecx
xchg eax, eax
sub eax, 0x20b2ab82
dec esi
call fcn.00404b48
ror esi, 0x1c
sub esi, 0x186285d8
xor esi, eax
xor ebx, dword [0x4e7e54]
not edx
or dword [0x4e78a1], ecx
dec eax
xchg ecx, edx
xor edx, esi
xor edx, esi
xchg ecx, edx
inc eax
mov dword [0x4e7810], ebx
not edx
xor esi, eax
add esi, 0x186285d8
rol esi, 0x1c
inc esi
add eax, 0x20b2ab82
xchg eax, eax
dec ecx
sub edi, esp
ror ebx, 0x1d
push 0x74726956
call fcn.004075cc
xor esi, 0x13302a08
sub esi, eax
call fcn.00406bdb
dec esi
sub ecx, eax
inc esi
rol esi, 1
call fcn.00407301
xor esi, eax
not eax
sub eax, 0x1ded7c0
call fcn.00408067
sub ecx, dword [0x4e7c48]
xor edi, ecx
mov dword [0x4e78c8], 0x9b6df4
sub ecx, dword [0x4e7eee]
or dword [0x4e7a06], 0x5aa72ed
xor edi, edx
xor ecx, 0xee7a658
sub dword [0x4e780c], 0x15286f08
not edx
not edx
xor ecx, 0xee7a658
xor edi, edx
and dword [0x4e763a], 0x9537b68
mov dword [0x4e77f2], 0x1aa52890
xor edi, ecx
call fcn.00407e5d
add eax, 0x1ded7c0
not eax
xor esi, eax
call fcn.00407f50
ror esi, 1
dec esi
add ecx, eax
inc esi
call fcn.00406dfb
add esi, eax
xor esi, 0x13302a08
call fcn.00402044
push esp
xor edi, 0xae635c8
xor ecx, edx
sub ecx, dword [0x4e7e32]
xor ecx, dword [0x4e7d70]
neg eax
or dword [0x4e75d2], ebx
call fcn.004055a8
xor ecx, dword [0x4e7fc3]
ror eax, 0x10
call fcn.00404b48
call fcn.00404b48
rol eax, 0x10
call fcn.004059c0
neg eax
xor ecx, edx
xor edi, 0xae635c8
push eax
and dword [0x4e75c1], esi
dec eax
xor esi, esp
call fcn.0040217f
xor esi, eax
inc edx
sub ecx, dword [0x4e7b58]
xchg edi, eax
sub edi, dword [0x4e7e52]
call fcn.00401d44
xchg eax, eax
ror edx, 6
sub dword [0x4e754a], edx
xor ebx, edx
inc ebx
not esi
not esi
dec ebx
xor ebx, edx
mov dword [0x4e7522], ecx
rol edx, 6
xchg eax, eax
call fcn.00406bdb
xchg edi, eax
dec edx
xor esi, eax
call fcn.00407af7
xor esi, esp
inc eax
or dword [0x4e7532], esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4e7864], 0x1665e644
ror eax, 6
not eax
mov dword [0x4e7902], 0x42cc90
not edx
sub edx, esp
xchg esi, eax
sub ecx, dword [0x4e7cf7]
call fcn.0040854c
xchg edx, esi
xor esi, eax
dec eax
sub edx, ecx
xor eax, ebp
xor edx, dword [0x4e7b42]
xchg eax, eax
xor ecx, dword [0x4e7ea2]
xor esi, eax
call fcn.00408210
inc edx
xor edi, ebp
call fcn.004023b8
call fcn.00402fbd
xor edi, ebp
dec edx
call fcn.004054d5
xor esi, eax
xchg eax, eax
xor eax, ebp
add edx, ecx
inc eax
xor esi, eax
xchg edx, esi
call fcn.00406a49
xchg esi, eax
add edx, esp
not edx
not eax
rol eax, 6
mov dword [0x4e75d5], 0x18790640
add esp, 0x10
ror esi, 2
xor ebx, esp
and dword [0x4e74ea], ecx
sub dword [0x4e75c5], 0x445f1bb
add edx, ecx
xor esi, eax
call fcn.00401615
or dword [0x4e7526], ecx
call fcn.00402a8d
xor ecx, dword [0x4e7b8e]
xchg edx, eax
call fcn.00407220
not esi
xor dword [0x4e7560], 0x1e0e0412
ror esi, 0xa
xor edx, 0x1c1de3ee
or dword [0x4e78b2], ebx
xor edx, esp
call fcn.0040449d
call fcn.0040217f
xor edx, esp
xor edx, 0x1c1de3ee
rol esi, 0xa
not esi
call fcn.00405035
xchg edx, eax
xor esi, eax
sub edx, ecx
xor ebx, esp
rol esi, 2
push 0x40
sub ecx, dword [0x4e7fc6]
call fcn.00404938
not eax
dec esi
ror edi, 0x1e
xor esi, eax
sub esi, dword [0x4e7b1b]
or dword [0x4e7706], edx
add esi, esp
call fcn.00407cee
inc esi
not edx
not edx
dec esi
sub esi, esp
mov dword [0x4e78bc], esi
xor esi, eax
rol edi, 0x1e
inc esi
not eax
push 0x3000
or dword [0x4e77c2], edx
mov dword [0x4e7619], ecx
sub edi, dword [0x4e7bc6]
call fcn.004046c8
sub esi, esp
xor esi, edx
sub esi, dword [0x4e7efc]
mov dword [0x4e7654], 0x72633fc
xchg esi, esi
call fcn.00406627
sub edx, esi
ror esi, 0xa
sub esi, dword [0x4e7a93]
dec eax
xor esi, ebx
call fcn.00406a66
xor edx, ebp
call fcn.00408586
neg eax
add esi, 0x19a1287d
sub esi, 0x19a1287d
neg eax
call fcn.0040307c
xor edx, ebp
call fcn.0040449d
xor esi, ebx
inc eax
rol esi, 0xa
add edx, esi
xchg esi, esi
xor dword [0x4e7503], 0x26108e3
xor esi, edx
add esi, esp
xor dword [0x4e7812], edi
push 0x817
xor esi, eax
xchg eax, esi
not eax
xor esi, 0x140264a
xor dword [0x4e7580], 0x188b2e3c
dec eax
ror eax, 0x16
xor esi, esp
mov dword [0x4e7698], ebx
dec esi
sub edx, dword [0x4e7bfc]
neg edx
neg edx
inc esi
mov dword [0x4e7612], edx
xor esi, esp
rol eax, 0x16
inc eax
xor esi, 0x140264a
not eax
xchg eax, esi
xor esi, eax
push 0
or dword [0x4e7850], esi
dec edx
rol esi, 0x1f
dec esi
sub esi, dword [0x4e7de4]
xor ecx, esp
or dword [0x4e7965], ebx
or dword [0x4e793b], edi
rol eax, 0x17
add edi, dword [0x4e7a94]
call fcn.004023b8
neg esi
xor edi, ebp
ror ecx, 0x15
not esi
xor ebx, dword [0x4e7e34]
neg eax
neg eax
not esi
rol ecx, 0x15
xor edi, ebp
neg esi
call fcn.004089f3
ror eax, 0x17
xor ecx, esp
inc esi
ror esi, 0x1f
inc edx
call eax
inc edx
xchg eax, edx
xor dword [0x4e790c], edi
ror edx, 0x16
and dword [0x4e778e], ecx
sub ebx, edx
add edx, dword [0x4e7bc8]
xor dword [0x4e77ef], edx
xor ebx, 0x1a0ae9ac
sub esi, eax
call fcn.00402a8d
mov dword [0x4e775e], edi
xor edi, dword [0x4e7e56]
sub esi, 0x1e1f328
ror esi, 0xd
rol esi, 0xd
add esi, 0x1e1f328
or dword [0x4e7652], ecx
call fcn.00407908
add esi, eax
xor ebx, 0x1a0ae9ac
add ebx, edx
or dword [0x4e7464], edx
rol edx, 0x16
mov dword [0x4e7662], edi
xchg eax, edx
dec edx
call 0x45ae3f
sub esi, eax
xor esi, 0x9017350
call fcn.004078a8
xor esi, eax
xor esi, 0x228078a
not ebx
sub esi, dword [0x4e7bf4]
mov dword [0x4e7903], ebx
xchg eax, edx
sub edi, dword [0x4e7eec]
xchg eax, edx
sub dword [0x4e79c1], edx
not ebx
xor esi, 0x228078a
xor esi, eax
call fcn.0040449d
xor esi, 0x9017350
add esi, eax
pop esi
neg ebx
call fcn.00407220
xor edi, dword [0x4e7c8e]
xor esi, dword [0x4e7d1d]
mov dword [0x4e7948], edx
ror eax, 0x14
mov dword [0x4e78fa], 0xfd8a558
not esi
mov dword [0x4e79d1], 0x252f0c0
call fcn.00406a49
xor eax, 0xeaad52
ror eax, 6
rol eax, 6
xor eax, 0xeaad52
not esi
and dword [0x4e7558], 0x7d2ba0c
rol eax, 0x14
mov dword [0x4e7626], ebx
call fcn.004023b8
neg ebx
add esi, 0x2a4
xor esi, 0x5b35d6b
neg edx
sub dword [0x4e7520], ebx
not esi
add esi, eax
rol esi, 0xe
xor edx, 0x226eb78
sub edi, esp
rol esi, 0xe
sub edi, ebp
inc eax
call fcn.00401d44
inc esi
ror esi, 0xe
add esi, dword [0x4e7e35]
xchg esi, eax
not edi
xor ecx, esi
rol esi, 0x1a
call fcn.0040754c
call fcn.00403a12
ror esi, 0x1a
xor ecx, esi
not edi
xchg esi, eax
rol esi, 0xe
dec esi
dec eax
add edi, ebp
ror esi, 0xe
add edi, esp
xor edx, 0x226eb78
ror esi, 0xe
sub esi, eax
not esi
mov dword [0x4e7774], ecx
neg edx
xor esi, 0x5b35d6b
mov edi, eax
not esi
ror eax, 0xb
dec eax
rol edx, 0x11
call fcn.00402827
neg edx
xor esi, esp
sub edi, eax
call fcn.0040449d
sub ecx, dword [0x4e7d81]
neg eax
inc edi
xor esi, eax
not eax
add ecx, dword [0x4e7e90]
invalid
invalid
invalid
invalid