Function at 0x45ac26
Capabilities:
Encode data using xor

Disassembly:
pop edi
xor edx, edx
add edx, edi
mov eax, 0
xor eax, edx
add esp, 0xfffffffc
mov dword [esp], eax
mov esi, 0xce1545f
mov edx, 0xce1545f
xor edx, esi
xor edx, edi
sub edx, 0xffffffe6
mov ebx, dword [edx - 0x1a]
xor eax, eax
add eax, ebx
sub eax, 0xffffffef
mov ecx, dword [eax - 0x11]
mov edx, 0x43c40008
mov edi, 0x8c20b462
xor edx, edi
push edx
mov ebx, 0xa409a
mov eax, 0x30110b24
xor ebx, eax
pop esi
xor ebx, esi
sub ecx, ebx
mov esi, ecx
add esp, 0xfffffffc
mov dword [esp], esi
pop eax
push 0x70d99055
mov esi, 0x70d99054
pop edi
xor esi, edi
sub eax, esi
mov edx, dword [eax + 1]
and edx, 0xffff
mov edi, 0x7f4bb015
mov esi, 0x7f4bb015
xor esi, edi
xor esi, edx
mov eax, 0x4a009eea
mov edi, 0x8a5a8e1e
xor edi, eax
xor esi, edi
mov ebx, 0x3fa5ef0b
xor esi, ebx
and esi, 0x18
and edx, 0xffffffe7
or edx, esi
xor eax, eax
add eax, edx
or eax, eax
jne 0x45aa06
mov edi, 0x7fe92a03
mov esi, 0x7fe92a07
xor esi, edi
add ecx, esi
mov ebx, ecx
push ebx
pop eax
sub eax, 0xa
mov edx, dword [eax + 0xa]
mov esi, edx
mov ecx, 0
xor ecx, esi
mov eax, ecx
push eax
mov ecx, edx
dec ecx
mov ebx, dword [ecx + 1]
and ebx, 0xff
push 0x415b4267
mov ecx, 0x680a7f1d
pop edi
xor ecx, edi
mov edx, ecx
xor edx, 0xffffffff
and edx, 0x29513d11
and ecx, 0xd6aec2ee
or ecx, edx
xor ebx, ecx
add esp, 0xfffffffc
mov eax, 0
xor eax, esp
mov dword [eax], ebx
pop esi
and esi, 0xffffffff
je 0x45a8d2
mov esi, ebx
xor ecx, ecx
add ecx, esi
mov edi, ecx
mov edx, edi
mov esi, edx
xor esi, 0xffffffff
and esi, 0xffffffff
and edx, 0
or edx, esi
and edx, 0xffffffff
and ecx, 0
or ecx, edx
and ecx, 0x20
and ebx, 0xffffffdf
or ebx, ecx
mov esi, ebx
add esi, 0
jne 0x45aa05
pop ebx
mov esi, 0x7636a9e3
xor esi, 0x7e5aec2b
push esi
push 0x5568bfac
mov ecx, 0x5d04fa62
pop edx
xor ecx, edx
pop eax
xor ecx, eax
add ebx, ecx
mov eax, 0x4529a122
xor eax, 0xbad65ede
add esp, eax
mov ecx, 0
mov esi, 0
xor ecx, esi
xor ecx, esp
mov dword [ecx], ebx
xor edi, edi
add edi, ebx
mov esi, 0x50cb48d0
xor esi, 0xaf34b73c
sub edi, esi
mov ecx, 1
sub edi, ecx
mov eax, dword [edi - 0x13]
and eax, 0xff
mov esi, eax
push esi
pop ebx
push 0xe8e58595
mov edx, 0x171a7a6a
pop ecx
xor edx, ecx
xor ebx, edx
and ebx, 0x4e
and eax, 0xffffffb1
or eax, ebx
xor edi, edi
add edi, eax
and edi, 0xffffffff
je 0x45a998
mov ebx, eax
add esp, 0xfffffffc
mov dword [esp], ebx
pop edi
xor ebx, ebx
add ebx, edi
mov ecx, 0xffffffff
xor ebx, ecx
and ebx, 0xffffffff
and edi, 0
or edi, ebx
and edi, 0x20
and eax, 0xffffffdf
or eax, edi
test eax, eax
jne 0x45aa05
pop esi
mov eax, 0x2532e3d5
mov edi, 0xdacd1c2f
xor edi, eax
sub esi, edi
xor ebx, ebx
add ebx, esi
mov ecx, ebx
mov eax, ecx
push 0xeabe09e6
mov ecx, 0x1541f60f
pop ebx
xor ecx, ebx
sub eax, ecx
mov ecx, 0x360356bb
mov ebx, 0xc9fca944
xor ebx, ecx
add eax, ebx
mov edi, dword [eax - 0x16]
add esp, 0xfffffffc
mov eax, esp
mov dword [eax], edi
pop edx
push 0x8c27d0c5
mov eax, 0x73d82f3a
pop esi
xor eax, esi
xor edx, eax
and edx, 0x320033
and edi, 0xffcdffcc
or edi, edx
cmp edi, 0
je 0x45aa45
jmp 0x45aa06
pop ecx
pop ecx
mov edx, ecx
mov esi, edx
xor eax, eax
add eax, esi
mov esi, 0x475eae72
xor esi, 0x475eae14
sub eax, esi
mov ebx, 0xffffffff
add eax, ebx
mov edi, dword [eax + 0x67]
mov esi, 0x34f1980b
xor esi, 0x34f1980b
xor esi, edi
mov ebx, 0xfffffffc
add esp, ebx
mov ebx, esp
mov eax, ebx
mov dword [eax], esi
jmp 0x45a771
pop edi
add esp, 0xfffffffc
mov ecx, esp
mov dword [ecx], edi
pop eax
sub eax, 0x43
mov ebx, dword [eax + 0x43]
xor ecx, ecx
add ecx, ebx
sub ecx, 5
mov esi, dword [ecx + 5]
mov edx, 0x66431e9b
mov edi, 0x66431e9b
xor edi, edx
push 0x20959823
mov eax, 0x2095983b
pop ebx
xor eax, ebx
xor edi, eax
add esi, edi
push 0x1cf8581a
mov eax, 0x1cf8581a
pop ebx
xor eax, ebx
xor eax, esi
mov ebx, 0xffffffff
add eax, ebx
mov edi, dword [eax + 1]
mov esi, 4
mov eax, 0
xor esi, eax
sub esp, esi
mov ecx, 0x11ee9f52
mov ebx, 0x11ee9f52
xor ebx, ecx
xor ebx, esp
mov dword [ebx], edi
add esp, 0xfffffffc
mov ebx, esp
mov dword [ebx], edi
pop edx
xor eax, eax
add eax, edx
push 0x7c905555
mov edx, 0x2478df95
pop esi
xor edx, esi
mov ebx, 0x64ef87a8
xor ebx, 0x3c070d54
xor ebx, edx
add eax, ebx
add esp, 0xfffffffc
mov ecx, esp
mov dword [ecx], eax
pop edi
sub edi, 0xffffffb2
mov ebx, dword [edi - 0x4e]
mov eax, esp
sub eax, 0xffffffcc
mov edi, dword [eax - 0x34]
add ebx, edi
push 0x65810ef9
mov edx, 0x6324cff0
pop ecx
xor edx, ecx
mov eax, edx
xor eax, 0xffffffff
and eax, 0x6a5c171
and edx, 0xf95a3e8e
or edx, eax
add ebx, edx
xor esi, esi
add esi, ebx
xor edi, edi
add edi, esi
mov eax, 0xffffffff
add edi, eax
mov ebx, dword [edi + 1]
xor ecx, ecx
add ecx, esp
mov edx, ecx
mov edi, edx
mov ecx, 0xffffffed
sub edi, ecx
mov ecx, 0x6eb019f9
xor ecx, 0x914fe606
add edi, ecx
mov eax, dword [edi - 0x12]
add ebx, eax
mov eax, 0x324f6317
mov ecx, 0xcdb09cf7
xor ecx, eax
sub ebx, ecx
push 0x13ef55c7
mov eax, 0x23cfae24
pop ecx
xor eax, ecx
mov edx, 0x48010a0f
mov esi, 0x784140
xor edx, esi
xor edx, eax
mov ecx, 0x840c01
mov eax, 0x444071a4
xor ecx, eax
mov edi, 0x20220f1
mov esi, 0xc1601204
xor edi, esi
xor edi, ecx
xor edx, edi
add edx, ebx
push edx
pop edi
mov esi, 0
xor esi, edi
mov eax, 1
sub esi, eax
mov edx, dword [esi + 1]
push 0x1e55de61
mov ecx, 0x1e55de61
pop edi
xor ecx, edi
xor ecx, esp
mov esi, 0x50
mov edi, 8
xor esi, edi
sub ecx, esi
mov esi, 0xffffffff
add ecx, esi
mov eax, dword [ecx + 0x59]
add edx, eax
mov edi, 0xfffffffc
add esp, edi
mov ecx, esp
mov dword [ecx], edx
push 0x797d8e6f
mov esi, 0x515f9d68
pop edx
xor esi, edx
mov eax, 0x39c73e54
mov ecx, 0x3dc63ed4
xor ecx, eax
xor esi, ecx
mov edi, esi
mov ecx, 0xfd7c8ae6
xor edi, ecx
xor edi, 0x2837519
and edi, 0x2c231383
and esi, 0xd3dcec7c
or esi, edi
add esi, ebx
xor ecx, ecx
add ecx, esi
sub ecx, 0x56
mov esi, dword [ecx + 0x56]
mov edi, dword [esp + 4]
add esi, edi
mov eax, 0
xor eax, esi
xor edi, edi
add edi, eax
mov eax, edi
mov ecx, 0xfffffffc
add esp, ecx
mov dword [esp], eax
mov edi, 0x66cda533
mov ecx, 0x66cda533
xor ecx, edi
xor ecx, ebx
sub ecx, 0xffffffc8
mov ebx, dword [ecx - 0x38]
mov esi, dword [esp + 8]
add ebx, esi
mov ecx, ebx
mov esi, 0
mov edx, 1
xor esi, edx
sub ecx, esi
mov eax, dword [ecx + 1]
mov edi, dword [esp + 8]
add eax, edi
push 0x1530809a
mov edx, 0x50620c4e
pop ecx
xor edx, ecx
mov ecx, edx
xor ecx, 0xffffffff
and ecx, 0x45528cd1
and edx, 0xbaad732e
or edx, ecx
add eax, edx
mov edi, eax
push edi
pop ecx
mov esi, 0x4f764923
mov edx, 0xb089b684
xor edx, esi
add ecx, edx
mov edx, 0
mov esi, 1
xor edx, esi
sub ecx, edx
mov eax, dword [ecx + 0x5a]
mov edi, 0x7b564e5
add edi, 0x28
push edi
mov ecx, 0x41400602
mov esi, 0x22b40060
xor ecx, esi
pop edx
xor ecx, edx
xor eax, ecx
cmp eax, 0
je 0x45ad21
mov edx, 0
mov ecx, 4
xor edx, ecx
add ebx, edx
pop ecx
push 0x135e7c4c
mov edi, 0x7c70f0d2
pop eax
xor edi, eax
push edi
mov edx, 0x6e0a8414
mov eax, 0x1240888
xor edx, eax
pop esi
xor edx, esi
add ecx, edx
mov eax, ecx
push eax
pop edi
mov eax, 0x4458163b
xor eax, 0x4458163f
sub esp, eax
mov dword [esp], edi
jmp 0x45ac53
pop edi
mov edx, edi
xor ecx, ecx
add ecx, edx
sub ecx, 0x30
mov edi, dword [ecx + 0x30]
and edi, 0xffff
add edi, edi
xor edx, edx
add edx, edi
add edi, edx
pop eax
add eax, edi
mov ebx, eax
sub ebx, 0xffffffd1
mov eax, dword [ebx - 0x2f]
pop edi
add eax, edi
mov edx, 0
xor edx, eax
mov ecx, 0
xor ecx, edx
mov edx, 0x4fb765c4
mov esi, 0xb0489a38
xor edx, esi
add esp, edx
mov dword [esp], ecx
mov ebx, 0x87fc0182
add ebx, 0x7e
push ebx
push 0x7674eb10
mov ecx, 0x370d9971
pop edx
xor ecx, edx
push ecx
push 0x515deb2b
mov ebx, 0x233f8267
pop ecx
xor ebx, ecx
push ebx
mov ebx, 0x4d00c98
xor ebx, 0x60b163d4
push ebx
mov ecx, esp
push ecx
pop ebx
mov esi, 0xfffffffc
add esp, esi
mov edx, 0
xor edx, esp
mov dword [edx], ebx
push 0x5e76017d
mov ecx, 0x5e760179
pop edx
xor ecx, edx
sub esp, ecx
mov ebx, esp
mov dword [ebx], edi
call eax
mov edx, 0x548f04f5
mov ebx, 0x7d76273d
xor ebx, edx
mov esi, 0x22eca9f5
xor ebx, esi
xor ebx, 0xb158a2d
add esp, ebx
push 0x585069a4
mov ecx, 0x585069a4
pop edx
xor ecx, edx
xor ecx, eax
mov edx, ecx
mov esi, edx
push esi
call fcn.0045b18e
mov esi, 0x22f35117
xor esi, 0xef78fafb
push esi
push 0x4ba5dad4
mov edx, 0x79d18ec6
pop esi
xor edx, esi
pop ecx
xor edx, ecx
sub ebx, edx
xor edx, edx
add edx, ebx
mov ecx, edx
mov esi, 0xfffffffc
add esp, esi
mov dword [esp], ecx
mov ebx, 0x39e48700
add ebx, 0
push ebx
mov edx, 0x636f6c05
add edx, 0x67
push edx
push 0x34a8058e
mov ecx, 0x75c464fb
pop ebx
xor ecx, ebx
push ecx
mov ecx, 0x74726929
add ecx, 0x2d
push ecx
mov ecx, 0x1a558dca
xor ecx, 0x3cdd21ca
push ecx
push 0x9fe248d
mov ebx, 0x3bcd48e8
pop edx
xor ebx, edx
push ebx
mov ecx, 0x6e726528
add ecx, 0x23
push ecx
mov ebx, dword [esp + 0x20]
mov esi, esp
push esi
pop ecx
mov edi, 0x581e5cab
mov edx, 0x581e5caf
xor edx, edi
sub esp, edx
mov dword [esp], ecx
call ebx
mov ecx, 0x6bf0f63a
xor ecx, 0x2ecb4806
push ecx
push 0x27930aed
mov esi, 0x62a8b4dd
pop edx
xor esi, edx
pop edi
xor esi, edi
add esp, esi
push 0x5d4d87c1
mov esi, 0x5d4d87c1
pop ebx
xor esi, ebx
xor esi, esp
xor ebx, ebx
add ebx, esi
mov edx, ebx
add esp, 0xfffffffc
mov dword [esp], edx
mov esi, 4
sub esp, esi
xor ecx, ecx
add ecx, esp
mov dword [ecx], eax
mov edx, dword [esp + 0x20]
call edx
push 0x96d559c7
mov esi, 0x5585ed56
pop edi
xor esi, edi
push esi
mov edx, 0x242b0340
mov edi, 0x18844821
xor edx, edi
pop ecx
xor edx, ecx
sub esp, edx
mov ebx, 0
mov ecx, 0x40
xor ebx, ecx
push ebx
mov edi, 0xfbd
add edi, 0x43
push edi
mov ebx, 0xc846
mov ecx, 0x2080
xor ebx, ecx
push ebx
mov edx, 0
mov ebx, 0
xor edx, ebx
push edx
call eax
pop ebx
mov esi, eax
push esi
pop ecx
mov edx, 0
xor edx, ecx
mov edi, edx
mov ecx, edi
mov edi, ecx
push edi
mov edx, 0x758709a0
mov edi, 0x8a78f65c
xor edx, edi
add esp, edx
xor ecx, ecx
add ecx, esp
mov dword [ecx], ebx
push 0x1498adf0
mov edx, 0x1498acf0
pop edi
xor edx, edi
mov edi, 0x478333bb
mov ecx, 0x478333bb
xor ecx, edi
xor edx, ecx
add ebx, edx
mov ecx, 0xe827
add ecx, 0x95
push ecx
mov dl, byte [ebx]
mov byte [esi], dl
push 0x7c5ce94
mov edi, 0x7c5ce95
pop ecx
xor edi, ecx
add ebx, edi
mov edx, 0xd779691
mov edi, 0xd779691
xor edi, edx
mov ecx, 0x53d2c644
xor ecx, 0x53d2c645
xor edi, ecx
add esi, edi
pop ecx
mov edi, 0x6d772260
xor edi, 0x5d5256d
mov edx, 0x364ac57b
xor edx, 0x5ee8c277
xor edx, edi
sub ecx, edx
mov eax, ecx
add esp, 0xfffffffc
mov dword [esp], eax
pop edx
mov edi, edx
add esp, 0xfffffffc
mov eax, esp
mov dword [eax], edi
mov edx, 0x18109031
mov edi, 0x4012c4c
xor edx, edi
mov edi, 0x1c11bc7d
xor edx, edi
xor edx, ecx
and edx, edx
jne 0x45af8b
pop esi
mov edi, 0x9eb2315
mov ecx, 0x1483665
xor ecx, edi
mov edx, 0x5ef18b1b
xor edx, 0x5ab9c91b
xor ecx, edx
mov ebx, 0xd39126c
xor ebx, 0x1d2ada0
xor ecx, ebx
pop edx
pop esi
mov eax, 0x3f4799f4
mov ebx, 0x53b05fb9
xor ebx, eax
mov edi, 0x9308d108
xor ebx, edi
sub esi, ebx
mov edi, 0x19bad520
mov ebx, 0x19bad520
xor ebx, edi
xor ebx, ecx
mov eax, 0xfffffffc
add esp, eax
mov edi, 0
xor edi, esp
mov dword [edi], ebx
mov ebx, 0x4b9522f7
mov eax, 0xb46add0b
xor eax, ebx
add esp, eax
mov eax, esp
push eax
pop edi
mov dword [edi], edx
mov eax, 0x2a11e812
xor eax, 0x2a11e812
xor eax, esi
push eax
pop edi
mov ebx, 0xfffffffc
add esp, ebx
mov dword [esp], edi
xor ecx, ecx
mov cl, byte [esi]
add edx, ecx
mov cl, byte [edx]
pop esi
pop edx
mov byte [esi], cl
mov eax, 0x99fd98f6
add eax, 0xc8
push eax
mov ebx, 0x3db6b14a
xor ebx, 0x5bb4d70b
pop edi
xor ebx, edi
add esi, ebx
pop ecx
push 0x781eb952
mov edi, 0x781eb953
pop eax
xor edi, eax
sub ecx, edi
cmp ecx, 0
jne 0x45b041
mov edx, 0x78b0487f
mov eax, 0x874fb780
xor eax, edx
sub esi, eax
xor ecx, ecx
add ecx, esi
mov edi, 0x447ba2c
xor edi, 0xfbb845d0
add esp, edi
mov dword [esp], ecx
pop eax
call eax
push 0x1227ad51
mov eax, 0x60613d45
pop edx
xor eax, edx
mov edx, 0x70f0c93c
mov ecx, 0x75508994
xor ecx, edx
xor eax, ecx
mov ecx, eax
mov edx, ecx
mov ecx, 0xffffffff
xor edx, ecx
and edx, 0x23177375
and eax, 0xdce88c8a
or eax, edx
pop ebx
push 0x79cfedbf
mov ecx, 0x7beda590
pop eax
xor ecx, eax
mov eax, 0x7cc19dc
mov edx, 0xfc91d9c
xor edx, eax
xor ecx, edx
pop edi
mov eax, 0x68bb1bd7
add eax, 0xcf
push eax
mov eax, 0x673bb835
mov ecx, 0x777b1819
xor ecx, eax
pop edx
xor ecx, edx
pop esi
ret