Function at 0x439d70
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x18
mov dword [esp + 0x14], ecx
mov dword [esp + 0xc], 0
mov dword [esp], 0xd8dbdac5
xor eax, eax
nop
nop
nop
nop
movzx edx, byte [esp + eax]
mov esi, eax
and esi, 1
xor esi, 0x7ea16831
mov ecx, eax
and ecx, 2
sub ecx, esi
mov esi, ecx
and esi, edx
mov edi, esi
and edi, 2
mov ebp, esi
or ebp, 0xfd
inc ebp
mov ebx, esi
and ebx, 0xffffffdd
imul ebx, ebp
or esi, 2
imul esi, edi
sub ebx, esi
add ecx, edx
add ecx, ebx
add cl, 0xf5
mov byte [esp + eax], cl
inc eax
cmp eax, 4
jne 0x439d90
mov edi, dword [esp]
mov eax, dword [0x44c3b8]
test eax, eax
je 0x439e26
xor ecx, ecx
mov edx, dword [0x44c3bc]
nop
nop
nop
nop
cmp dword [edx + ecx*8], 0x9abdb589
je 0x439e00
inc ecx
cmp eax, ecx
jne 0x439df0
jmp 0x439e26
mov eax, dword [edx + ecx*8 + 4]
cmp eax, edi
je 0x439e26
lea ecx, [esp + 0xc]
push ecx
push 0
push 0
push 5
push 4
push eax
push dword [0x44c3c0]
call fcn.0043ce20
add esp, 0x1c
mov edi, eax
mov dword [esp], 0xd11e1f18
mov dword [esp + 4], 0
mov esi, 0x574b1b79
mov ecx, 0xa8b4e485
nop
movzx ebp, byte [esp + ecx + 0x574b1b7b]
lea edx, [esi + 1]
mov eax, edx
and eax, ebp
xor edx, ebp
add edx, eax
lea eax, [esi - 0x53ffffff]
and eax, 0x3011a0c
mov ebx, ecx
and ebx, 0xa0b0e403
or ebx, eax
xor ebx, 0xb051a8c
or ebx, ebp
mov eax, esi
sub eax, edx
and eax, ebx
mov edx, 9
sub edx, eax
add eax, 0x76
and edx, 0x90
and eax, 0x6f
sub eax, edx
inc al
mov byte [esp + ecx + 0x574b1b7b], al
dec esi
inc ecx
cmp esi, 0x574b1b71
jne 0x439e40
cmp edi, dword [esp]
jne 0x439fe8
push dword [esp + 0xc]
call fcn.00439c70
add esp, 4
mov dword [esp + 8], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x10], eax
mov dword [esp], 0xd8dbdac5
xor ebp, ebp
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + ebp]
mov esi, ebp
and esi, 1
xor esi, 0x7ea16831
mov edx, ebp
and edx, 2
sub edx, esi
mov esi, edx
and esi, eax
mov ebx, esi
and ebx, 2
mov ecx, esi
or ecx, 0xfd
inc ecx
mov edi, esi
and edi, 0xffffffdd
imul edi, ecx
or esi, 2
imul esi, ebx
sub edi, esi
add edx, eax
add edx, edi
add dl, 0xf5
mov byte [esp + ebp], dl
inc ebp
cmp ebp, 4
jne 0x439ed0
mov edi, dword [esp]
mov edx, dword [0x44c3b8]
test edx, edx
je 0x439f51
xor esi, esi
mov ebp, dword [0x44c3bc]
mov ebx, dword [esp + 0x2c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebp + esi*8], 0x9abdb589
je 0x439f57
inc esi
cmp edx, esi
jne 0x439f40
jmp 0x439f7f
mov ebx, dword [esp + 0x2c]
jmp 0x439f7f
mov edx, dword [ebp + esi*8 + 4]
cmp edx, edi
je 0x439f7f
push 0
push dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push eax
push 5
push 4
push edx
push dword [0x44c3c0]
call fcn.0043ce20
add esp, 0x1c
mov edi, eax
test edi, edi
js 0x439fdc
mov ecx, dword [esp + 8]
mov esi, dword [ecx]
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [ecx + esi + 0x3c]
add ecx, esi
xor esi, esi
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, word [edx + esi]
movzx ebp, word [ebx + esi]
test di, di
je 0x439fb5
add esi, 2
cmp di, bp
je 0x439fa0
cmp di, bp
je 0x439fc7
mov esi, dword [ecx]
test esi, esi
jne 0x439f90
mov edi, 0xc0000225
jmp 0x439fdc
mov eax, dword [ecx + 0x44]
mov edx, dword [esp + 0x14]
mov dword [edx + 8], eax
mov eax, dword [ecx + 0xdc]
mov dword [edx + 0xc], eax
xor edi, edi
push dword [esp + 8]
call fcn.00439cf0
add esp, 4
mov eax, edi
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret 4