Function at 0x403a04
Capabilities:
Encode data using xor

Disassembly:
or edi, edi
jne 0x403538
mov ecx, 0x39dc0aef
xor ecx, 0x227c1e25
push ecx
push 0x528179f4
mov ebx, 0x49216d3e
pop ecx
xor ebx, ecx
pop esi
xor ebx, esi
mov eax, 0x388903ab
xor eax, 0x2631dbbb
mov edx, 0x54d47dce
xor edx, 0x4a6ca5de
xor edx, eax
xor ebx, edx
mov eax, ebx
mov ecx, eax
add esp, 0xfffffffc
mov dword [esp], ecx
pop edx
push edx
pop ebx
add esp, 0xfffffffc
mov edi, esp
mov dword [edi], ebx
pop esi
or esi, 0
jne 0x4036b3
push 0x250b4adb
pop edi
mov edi, 0x351dc0f8
xor edi, 0x5c018d9d
mov edx, 0x30500253
xor edx, 0x594c675e
xor edx, edi
mov eax, 0x1c90612
xor eax, 0xd5397807
push eax
push 0x3c6df847
mov esi, 0x6e9d9155
pop eax
xor esi, eax
pop edi
xor esi, edi
xor edx, esi
mov eax, edx
mov edi, eax
mov eax, edi
add esp, 0xfffffffc
mov dword [esp], eax
mov eax, 0xe9a3877
xor eax, 0x4ad8f8f0
mov edx, 0xc99b5a3
xor eax, edx
xor eax, 0xd4db268
push 0x3c44c12f
mov edx, 0x1ab76543
pop esi
xor edx, esi
xor eax, edx
mov edi, eax
mov edx, edi
add esp, 0xfffffffc
mov dword [esp], edx
mov edi, 0x180e2081
mov eax, 0x40c948
xor edi, eax
push edi
push 0x9f9d1e5
mov edx, 0x33c2d1c9
pop edi
xor edx, edi
mov eax, 0x230f7d12
xor edx, eax
xor edx, 0x6416fdb0
pop esi
xor edx, esi
add esp, 0xfffffffc
mov eax, esp
mov edi, eax
mov dword [edi], edx
mov edx, 0
mov eax, 0
xor edx, eax
mov eax, 0x2617febf
mov edi, 0x2613febf
xor edi, eax
xor edx, edi
mov edi, 0x44bc5fdb
mov eax, 0x7563bc4b
xor eax, edi
mov esi, 0x2c8c290
mov edi, 0xd1063100
xor esi, edi
xor esi, eax
xor edx, esi
add esp, 0xfffffffc
xor edi, edi
add edi, esp
mov dword [edi], edx
push 0x207478ea
mov edi, 0x7c8615a2
pop eax
xor edi, eax
mov eax, 0x55c7703d
xor edi, eax
xor edi, 0x2efa40e4
mov eax, edi
push eax
mov edx, 0x77e876ad
xor edx, 0xd6dddcf
mov edi, 0x79142eb0
xor edx, edi
xor edx, 0x4b39b104
pop esi
xor edx, esi
xor edi, edi
add edi, edx
add esp, 0xfffffffc
mov dword [esp], edi
push esp
pop esi
mov eax, esi
push eax
pop ebx
mov eax, 0x5020012
mov edx, 0x20612904
xor eax, edx
push eax
push 0xe7d965c
mov esi, 0x62f83aa
pop eax
xor esi, eax
mov eax, 0x2d313cd3
xor esi, eax
pop edi
xor esi, edi
add esp, 0xfffffffc
mov edx, esp
mov eax, edx
mov dword [eax], esi
mov esi, ebx
push esi
pop edi
xor edx, edx
add edx, edi
mov eax, edx
add esp, 0xfffffffc
mov dword [esp], eax
add ebx, 8
mov edx, ebx
add esp, 0xfffffffc
mov edi, esp
mov esi, edi
mov dword [esi], edx
mov edi, 0x6006600
mov eax, 0x500003
xor edi, eax
push 0x24efc53f
mov esi, 0x4fa9153f
pop eax
xor esi, eax
xor esi, edi
mov eax, 0
xor eax, esi
mov edx, 0xffffffff
xor eax, edx
and eax, 0x6d16b603
and esi, 0x92e949fc
or esi, eax
add esp, 0xfffffffc
xor edx, edx
add edx, esp
mov dword [edx], esi
mov edx, 0x20082070
mov eax, 0x50448200
xor edx, eax
mov edi, 0x577995d9
xor edx, edi
mov edi, edx
add esp, 0xfffffffc
mov dword [esp], edi
mov ebx, 0x1991ea33
xor ebx, 0x18f06bb3
mov edi, 0x1671cb34
mov edx, 0x3065af3d
xor edx, edi
xor ebx, edx
pop esi
xor ebx, esi
call dword [ebx]
add esp, 0x14
mov eax, 0x158bf2eb
xor eax, 0x2bc9b9d
mov ebx, 0x102b034b
xor ebx, 0x6713328f
xor ebx, eax
xor edx, edx
add edx, ebx
mov edi, 0xeaf77b37
xor edx, edi
xor edx, 0x150884c8
and edx, 0x604f89aa
and ebx, 0x9fb07655
or ebx, edx
call dword [ebx]
mov edi, 0x434f421
mov eax, 0x4a09000a
xor edi, eax
push edi
mov edi, 0x466b6d38
mov ebx, 0x3d3358db
xor ebx, edi
pop esi
xor ebx, esi
mov eax, 0x45c06400
mov edi, 0x30029100
xor eax, edi
push eax
mov edx, 0x30424122
mov edi, 0x47008c00
xor edx, edi
pop esi
xor edx, esi
xor ebx, edx
call fcn.00403164
mov eax, 0x2050607
mov esi, 0x59407810
xor eax, esi
mov ebx, 0x1c897117
xor eax, ebx
mov edx, eax
push edx
mov esi, 0x38ce766a
mov eax, 0x31c579dc
xor eax, esi
mov edx, 0x65676b98
xor eax, edx
mov edi, eax
add esp, 0xfffffffc
mov dword [esp], edi
mov eax, 0x102055
mov esi, 0x23280908
xor eax, esi
mov ebx, eax
xor ebx, 0xffffffff
and ebx, 0x110b4538
and eax, 0xeef4bac7
or eax, ebx
add esp, 0xfffffffc
mov edx, esp
mov dword [edx], eax
mov edx, 0x402000
mov edi, 0x20000001
xor edx, edi
mov edi, 0x2738f98d
mov esi, 0x690abcc7
xor esi, edi
xor edx, esi
mov edi, edx
add esp, 0xfffffffc
mov dword [esp], edi
mov eax, esp
mov ebx, eax
push ebx
mov eax, 0x712f184d
das
jno 0x403928
invalid
dec edi
push ss
jne 0x403a02
mov esi, 0x1c2fd1a0
xor esi, 0x3b350e3e
xor esi, eax
call dword [esi]
add esp, 0x10
mov esi, eax
push esi
pop edx
mov edi, 0x153a5b3a
mov ebx, 0x3d3a1f1b
xor ebx, edi
mov esi, 0xf3f62c5
xor esi, 0x1f3f5287
xor ebx, esi
add esp, 0xfffffffc
mov edi, esp
mov dword [edi], ebx
mov edi, 0x2d71dfca
mov ebx, 0x4c05f3d8
xor ebx, edi
push 0x1fb06a8f
mov esi, 0x1bb029ef
pop edi
xor esi, edi
xor ebx, esi
mov edi, ebx
push edi
mov ebx, 0x7ad0fd5b
jp 0x403987
jae 0x403a2e
jg 0x403a5f
push 0x48235d29
mov esi, 0x1dbbb239
pop ebx
xor esi, ebx
pop edi
xor esi, edi
add esp, 0xfffffffc
mov ebx, esp
mov dword [ebx], esi
mov esi, 0x4229fed
xor esi, 0x3cf0fd11
push esi
mov edi, 0x4000b02
mov esi, 0x48a000a8
xor edi, esi
pop ebx
xor edi, ebx
mov esi, edi
push esi
xor esi, esi
add esi, esp
mov edi, esi
push edi
add esp, 0xfffffffc
mov esi, esp
mov dword [esi], edx
mov esi, 0x5a1de7d1
xor esi, 0x11177d57
push esi
mov ebx, 0x2c8575d7
xor ebx, 0x67cf3ee9
pop edx
xor ebx, edx
call dword [ebx]
add esp, 0x10
mov ebx, 0x204e8000
mov edx, 0x41100086
xor ebx, edx
mov edx, 0x615e8086
xor ebx, edx
mov esi, ebx
add esp, 0xfffffffc
mov dword [esp], esi
mov edx, 0
xor edx, esp
mov ebx, edx
add esp, 0xfffffffc
mov dword [esp], ebx
mov ebx, 0x32ae01f0
xor ebx, 0x32ae01f0
mov edx, 0
mov edi, 0x40
xor edx, edi
xor ebx, edx
mov esi, ebx
push esi
mov edx, 0x4b81c48a
xor edx, 0x4b81c08a
mov edi, 0x1000
mov esi, 0x8000
xor edi, esi
xor edx, edi
mov esi, edx
add esp, 0xfffffffc
mov dword [esp], esi
mov ebx, 0x494e3b44
xor ebx, 0x4dc3ccc7
push ebx
mov esi, 0xc02280
mov ebx, 0x40dc503
xor esi, ebx
pop edi
xor esi, edi
add esp, 0xfffffffc
mov ebx, esp
mov dword [ebx], esi
call eax
mov eax, 0x401290
xor edi, edi
add edi, eax
mov ebx, edi
push ebx
push eax
pop esi
mov edx, esi
mov edi, edx
add esp, 0xfffffffc
mov dword [esp], edi
pop esi
push 0x3e60532b
mov eax, 0x34f1f656
pop edi
xor eax, edi
mov ebx, 0x3a75e881
xor ebx, 0x30e44e0b
xor ebx, eax
add esi, ebx
add esi, 0xffffffff
add edx, ebx
add esp, 0xfffffffc
xor eax, eax
add eax, esp
mov dword [eax], ebx
mov eax, edx
add esp, 0xfffffffc
mov edi, esp
mov dword [edi], eax
xor ebx, ebx
mov bl, byte [esi]
add edx, ebx
mov bl, byte [edx]
pop edx
mov byte [esi], bl
mov edi, 0
mov eax, 1
xor edi, eax
sub esi, edi
pop ebx
mov eax, 0x742665e1
xor eax, 0x742665e0
sub ebx, eax
mov eax, ebx
push eax
pop edi
or edi, ebx
jne 0x403b33
pop ebx
push 0x7e9c946b
mov edx, 0x633a58c6
pop esi
xor edx, esi
mov esi, 0x1a499a24
mov eax, 0x7af8731
xor eax, esi
xor eax, edx
mov edx, eax
add edx, 0xffffffff
mov eax, dword [edx + 1]
xor edx, edx
add edx, eax
add esp, 0xfffffffc
mov dword [esp], edx
mov edi, 0xfb83edc
xor edi, 0x79234d17
push edi
mov esi, 0x2805ed97
xor esi, 0x5e9e9e5c
pop edx
xor esi, edx
mov edi, esi
add esp, 0xfffffffc
mov dword [esp], edi
mov edx, 0x249d0153
mov eax, 0x731744ae
xor eax, edx
mov edx, 0x3e167873
xor eax, edx
xor eax, 0x69dcec12
mov esi, eax
mov edx, esi
mov esi, 0xffffffff
add edx, esi
mov eax, dword [edx + 1]
mov esi, 0
xor esi, eax
add esp, 0xfffffffc
mov dword [esp], esi
mov esi, 0x4259037b
xor esi, 0x4f19e90e
mov edi, 0xd40e982
xor esi, edi
add esi, ebx
mov eax, esi
mov edx, eax
add esp, 0xfffffffc
mov dword [esp], edx
mov edx, 0x70930968
xor edx, 0x31adda1e