Function at 0x12d9864
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x12c
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
push 0x500
push 0
mov eax, dword [esi + 0x6d4]
call eax
push eax
mov eax, dword [esi + 0x6d0]
call eax
mov edi, dword [ebp + 0xc]
mov ebx, eax
mov dword [ebp + 8], ebx
test ebx, ebx
jne 0x12d98a0
mov ecx, dword [esi + 0x6dc]
push edi
call ecx
push ebx
push esi
call fcn.012d7c34
mov eax, dword [esi + 0x6d4]
add esp, 8
push 0x500
push 0
call eax
push eax
mov eax, dword [esi + 0x6d0]
call eax
mov ebx, eax
test ebx, ebx
jne 0x12d98d1
mov ecx, dword [esi + 0x6dc]
push edi
call ecx
lea edx, [esi + 0x228]
test edx, edx
je 0x12d9a63
mov eax, 0x5f
mov ecx, 0x2c
mov word [ebp - 0x8c], ax
mov eax, 0x71
mov word [ebp - 0x8a], ax
mov eax, 0x6f
mov word [ebp - 0x88], ax
mov eax, 0x81
mov word [ebp - 0x86], ax
mov eax, 0x7e
mov word [ebp - 0x84], ax
mov eax, 0x75
mov word [ebp - 0x82], ax
mov eax, 0x80
mov word [ebp - 0x80], ax
mov eax, 0x85
mov word [ebp - 0x7e], ax
mov eax, 0x51
mov word [ebp - 0x7c], cx
mov word [ebp - 0x7a], ax
mov eax, 0x7e
mov word [ebp - 0x78], ax
mov word [ebp - 0x76], ax
mov eax, 0x7b
mov word [ebp - 0x74], ax
mov eax, 0x7e
mov word [ebp - 0x72], ax
mov eax, 0x46
mov word [ebp - 0x70], ax
mov eax, 0x31
mov word [ebp - 0x6e], cx
mov ecx, 0x44
mov word [ebp - 0x6c], ax
mov eax, 0x3c
mov word [ebp - 0x6a], ax
mov eax, 0x64
mov word [ebp - 0x68], cx
mov word [ebp - 0x66], ax
mov eax, 0x39
mov word [ebp - 0x64], ax
mov eax, 0x31
mov word [ebp - 0x62], ax
mov eax, 0x3c
mov word [ebp - 0x60], ax
mov eax, 0x84
mov word [ebp - 0x5e], cx
mov ecx, 0x7f
mov word [ebp - 0x5c], ax
mov eax, 0x16
mov word [ebp - 0x5a], ax
mov word [ebp - 0x58], ax
mov eax, 0x31
mov word [ebp - 0x56], ax
mov eax, 0x78
mov word [ebp - 0x54], ax
mov eax, 0x16
mov word [ebp - 0x52], cx
mov word [ebp - 0x50], ax
mov word [ebp - 0x4e], ax
mov eax, 0x31
mov word [ebp - 0x4c], ax
mov eax, 0x78
mov word [ebp - 0x4a], ax
xor eax, eax
mov word [ebp - 0x48], cx
xor ecx, ecx
mov word [ebp - 0x46], ax
mov ax, word [ebp - 0x8c]
nop dword [eax]
mov ax, word [ebp + ecx*2 - 0x8c]
movzx eax, ax
add eax, 0xfffffff4
mov word [ebp + ecx*2 - 0x8c], ax
inc ecx
cmp ecx, 0x23
jb 0x12d9a24
push edx
push dword [ebp + 8]
lea eax, [ebp - 0x8c]
push dword [esi + 0x224]
push edi
push eax
mov eax, dword [esi + 0x754]
push ebx
call eax
add esp, 0x18
jmp 0x12d9b9d
mov dword [ebp - 0x44], 0xd137
mov eax, 0xd164
mov word [ebp - 0x40], ax
mov edx, 0xd145
mov eax, 0xd152
mov ecx, 0xd117
mov word [ebp - 0x3e], ax
mov eax, 0xd154
mov word [ebp - 0x3c], ax
mov eax, 0xd142
mov word [ebp - 0x3a], ax
mov eax, 0xd15e
mov word [ebp - 0x38], dx
mov word [ebp - 0x36], ax
mov eax, 0xd143
mov word [ebp - 0x34], ax
mov eax, 0xd14e
mov word [ebp - 0x32], ax
mov eax, 0xd172
mov word [ebp - 0x30], cx
mov word [ebp - 0x2e], ax
mov eax, 0xd158
mov word [ebp - 0x2c], dx
mov word [ebp - 0x2a], dx
mov word [ebp - 0x28], ax
mov eax, 0xd10d
mov word [ebp - 0x26], dx
mov edx, 0xd107
mov word [ebp - 0x24], ax
mov eax, 0xd112
mov word [ebp - 0x22], cx
mov ecx, 0xd10f
mov word [ebp - 0x20], ax
mov eax, 0xd16f
mov word [ebp - 0x1e], dx
mov word [ebp - 0x1c], cx
mov word [ebp - 0x1a], ax
mov eax, 0xd11a
mov word [ebp - 0x18], ax
mov eax, 0xd112
mov word [ebp - 0x16], ax
mov eax, 0xd14f
mov word [ebp - 0x14], dx
mov word [ebp - 0x12], cx
mov word [ebp - 0x10], ax
mov eax, 0xd13d
mov word [ebp - 0xe], ax
mov word [ebp - 0xc], ax
mov eax, 0xd112
mov word [ebp - 0xa], ax
mov eax, 0xd15b
mov word [ebp - 8], ax
mov eax, 0xd144
mov word [ebp - 6], ax
xor eax, eax
mov word [ebp - 4], ax
xor edx, edx
mov ax, word [ebp - 0x40]
nop dword [eax]
mov ax, word [ebp + edx*2 - 0x40]
movzx ecx, ax
movzx eax, word [ebp - 0x44]
xor ecx, eax
mov word [ebp + edx*2 - 0x40], cx
inc edx
cmp edx, 0x1e
jb 0x12d9b64
push dword [ebp + 8]
xor eax, eax
push dword [esi + 0x224]
mov word [ebp - 4], ax
lea eax, [ebp - 0x40]
push edi
push eax
mov eax, dword [esi + 0x754]
push ebx
call eax
add esp, 0x14
push 0xa0
lea eax, [ebp - 0x12c]
push eax
push esi
call fcn.012d7e34
add esp, 0xc
lea eax, [ebp - 0x12c]
push 0x10
push eax
mov eax, dword [esi + 0x750]
push ebx
push 0
call eax
mov eax, dword [esi + 0x6dc]
push edi
call eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8