Function at 0x5e743c
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe0
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x1c], ebx
mov ebx, ecx
mov dword [ebp - 4], edx
mov dword [ebp - 8], eax
lea edi, [ebp - 0xc]
xor eax, eax
push ebp
push 0x5e781c
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x5e7480
mov eax, dword [0x5d8cb8]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 8]
mov dl, 1
mov eax, dword [0x5d368c]
call fcn.005d53b4
mov dword [edi], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x258]
mov edx, dword [edi]
call fcn.0041e978
mov eax, dword [edi]
mov dword [eax + 0xc], ebx
lea edx, [ebp - 0x18]
mov eax, dword [0x5f5d2c]
call fcn.00406714
lea eax, [ebp - 0x18]
push eax
lea edx, [ebp - 0x1c]
mov eax, dword [edi]
mov eax, dword [eax + 0xc]
call fcn.004093b0
mov edx, dword [ebp - 0x1c]
pop eax
call fcn.00404688
mov edx, dword [ebp - 0x18]
mov eax, dword [edi]
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov edx, dword [edi]
mov eax, dword [ebp - 8]
call fcn.005e7968
mov edx, dword [ebp - 8]
mov eax, dword [edi]
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov eax, dword [edi]
mov eax, dword [eax + 0x364]
xor edx, edx
call fcn.005d7038
mov eax, dword [edi]
mov eax, dword [eax + 0x2f8]
xor edx, edx
call fcn.005c90fc
mov eax, dword [edi]
mov eax, dword [eax + 0x2f4]
xor edx, edx
call fcn.005c90fc
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 4]
add edx, 0xc
call fcn.00404624
mov edx, dword [ebp - 0x20]
mov eax, dword [edi]
mov eax, dword [eax + 0x3b8]
mov eax, dword [eax + 0x1c]
mov ecx, dword [eax]
call dword [ecx + 0x38]
call fcn.005e7308
mov edx, eax
mov eax, dword [edi]
mov eax, dword [eax + 0x3b8]
mov eax, dword [eax + 8]
call fcn.0042ba90
mov eax, dword [edi]
mov eax, dword [eax + 0x3b8]
mov eax, dword [eax + 8]
mov edx, 0x800000
call fcn.0042b7f0
mov dl, 1
mov eax, dword [edi]
call fcn.005c4844
mov eax, dword [edi]
mov ebx, dword [eax + 0x27c]
xor edx, edx
mov eax, ebx
call fcn.005bf200
mov edx, 0x46
mov eax, ebx
call fcn.005bf20c
mov edx, 0x3c
mov eax, ebx
call fcn.005bf194
mov edx, 0x14f
mov eax, ebx
call fcn.005bf1a0
mov edx, 0x159
mov eax, ebx
call fcn.005bf188
mov edx, 0x64
mov eax, dword [edi]
call fcn.005c4120
xor edx, edx
mov eax, dword [edi]
call fcn.005d1930
mov eax, dword [edi]
call fcn.005d5770
xor edx, edx
call fcn.005bef48
mov edx, 2
mov eax, dword [edi]
call fcn.00440af8
xor edx, edx
mov eax, dword [edi]
call fcn.00440adc
mov eax, dword [edi]
mov eax, dword [eax + 0x360]
mov edx, 4
call fcn.005d4ba8
mov eax, dword [edi]
mov eax, dword [eax + 0x358]
mov edx, 4
call fcn.005d4ba8
mov eax, dword [edi]
mov eax, dword [eax + 0x360]
mov edx, 0xffffff
call fcn.005d4bb8
mov eax, dword [edi]
mov eax, dword [eax + 0x358]
mov edx, 0xffffff
call fcn.005d4bb8
push ebp
call fcn.005e73c8
pop ecx
mov eax, dword [ebp - 8]
cmp byte [eax + 0x25c], 0
je 0x5e766c
mov eax, dword [ebp - 8]
cmp dword [eax + 0x244], 0
je 0x5e766c
xor edx, edx
mov eax, dword [edi]
call fcn.005d100c
mov edx, dword [ebp - 8]
mov edx, dword [edx + 0x244]
mov ecx, dword [eax]
call dword [ecx + 0xac]
test al, al
je 0x5e7670
xor eax, eax
jmp 0x5e7672
mov al, 1
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x5e774e
mov dx, 0xfff3
mov eax, dword [edi]
call fcn.0047ff64
mov eax, dword [edi]
mov ax, word [eax + 0x78]
mov edx, dword [edi]
mov word [edx + 0x268], ax
mov eax, dword [edi]
xor edx, edx
mov dword [eax + 0x120], edx
mov dword [eax + 0x124], edx
mov eax, dword [edi]
xor edx, edx
mov dword [eax + 0x128], edx
mov dword [eax + 0x12c], edx
mov eax, dword [edi]
mov eax, dword [eax + 0x3b8]
mov eax, dword [eax + 8]
mov edx, 0x808080
call fcn.0042b7f0
mov eax, dword [edi]
mov eax, dword [eax + 0x360]
mov eax, dword [eax + 0x10]
mov edx, 0x808080
call fcn.0042bcdc
mov eax, dword [edi]
mov eax, dword [eax + 0x358]
mov eax, dword [eax + 0x10]
mov edx, 0x808080
call fcn.0042bcdc
mov eax, dword [edi]
mov eax, dword [eax + 0x2f8]
mov eax, dword [eax + 0x28]
mov edx, 1
call fcn.0042be08
mov eax, dword [edi]
mov eax, dword [eax + 0x2f8]
mov eax, dword [eax + 0x28]
mov edx, 0xffffff
call fcn.0042bcdc
mov eax, dword [edi]
mov eax, dword [eax + 0x2f4]
mov eax, dword [eax + 0x28]
mov edx, 1
call fcn.0042be08
mov eax, dword [edi]
mov eax, dword [eax + 0x2f4]
mov eax, dword [eax + 0x28]
mov edx, 0xffffff
call fcn.0042bcdc
jmp 0x5e77a7
mov dx, 0x7e4
mov eax, dword [edi]
call fcn.0047ff64
mov eax, dword [edi]
mov ax, word [eax + 0x78]
mov edx, dword [edi]
mov word [edx + 0x268], ax
mov eax, dword [edi]
mov edx, dword [ebp - 8]
mov dword [eax + 0x124], edx
mov dword [eax + 0x120], fcn.005e7bb0
mov eax, dword [edi]
mov edx, dword [ebp - 8]
mov dword [eax + 0x12c], edx
mov dword [eax + 0x128], fcn.005e729c
mov eax, dword [edi]
mov edx, dword [ebp - 8]
mov dword [eax + 0x1c4], edx
mov dword [eax + 0x1c0], fcn.005e7bb0
xor edx, edx
mov eax, dword [edi]
call fcn.005d100c
mov edx, dword [ebp - 8]
mov dl, byte [edx + 0x228]
mov ecx, dword [eax]
call dword [ecx + 0xa8]
mov eax, dword [edi]
call fcn.005d1ca0
mov ebx, eax
dec ebx
test ebx, ebx
jl 0x5e77ed
inc ebx
xor esi, esi
mov edx, esi
mov eax, dword [edi]
call fcn.005d100c
mov dl, byte [ebp - 0x11]
xor dl, 1
mov ecx, dword [eax]
call dword [ecx + 0xdc]
inc esi
dec ebx
jne 0x5e77d2
mov edx, dword [edi]
mov eax, dword [ebp - 8]
call fcn.005e7cfc
mov edx, dword [edi]
mov eax, dword [ebp - 8]
call fcn.005e7368
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5e7823
lea eax, [ebp - 0x20]
mov edx, 3
call fcn.004043d4
ret