Function at 0x4da030
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
push ebx
push edi
mov edi, edx
mov eax, ecx
mov dword [ebp - 4], eax
test edi, edi
je 0x4da42e
test eax, eax
je 0x4da42e
cmp dword [eax], 0
je 0x4da42e
mov ebx, dword [eax + 0x20]
cmp dword [ebp + 8], ebx
jb 0x4da42e
lea eax, [ebx*8]
mov dword [ebp - 0x3c], edi
mov edx, 0x10
mov dword [ebp - 0x38], eax
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0x34], 0
call fcn.004d9030
mov ecx, 0xffff
mov dword [ebp - 0x34], 0x10
cmp ax, cx
je 0x4da0a1
pop edi
mov eax, 0xfffffffc
pop ebx
mov esp, ebp
pop ebp
ret
push esi
xor edx, edx
xor esi, esi
test ebx, ebx
je 0x4da0e0
lea ebx, [ebx]
movzx ecx, byte [esi + edi]
inc esi
movzx eax, dx
shr eax, 8
xor ecx, eax
shl edx, 8
xor dx, word [ecx*2 + 0x52e6f0]
movzx edx, dx
cmp esi, ebx
jb 0x4da0b0
test dx, dx
je 0x4da0e0
mov eax, 0xfffffffd
pop esi
pop edi
pop ebx
mov esp, ebp
pop ebp
ret
xor ecx, ecx
test ebx, ebx
je 0x4da103
mov edx, dword [ebp - 4]
lea esp, [esp]
movzx eax, byte [ecx + edi]
mov al, byte [eax + edx + 0x20c]
mov byte [ecx + edi], al
inc ecx
cmp ecx, ebx
jb 0x4da0f0
mov edx, 9
lea ecx, [ebp - 0x3c]
call fcn.004d9030
mov edx, 7
mov dword [ebp - 0x34], 0x19
lea ecx, [ebp - 0x3c]
mov ebx, eax
call fcn.004d9030
mov edi, dword [ebp - 4]
mov esi, 0x20
shl ebx, 8
sub ebx, eax
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x20], ebx
mov eax, dword [edi + 0xc]
mov dword [ebp - 0x1c], 0
test eax, eax
je 0x4da2c6
lea ebx, [edi + 0x4a4]
jmp 0x4da155
mov edi, edx
push dword [edi + 4]
lea edx, [ebp - 0x3c]
push dword [edi + 0x188]
lea ecx, [ebx - 0x194]
call fcn.004da860
add esp, 8
test eax, eax
js 0x4da0d9
push dword [edi + 4]
lea edx, [ebp - 0x3c]
push dword [edi + 0x188]
lea ecx, [ebx - 0x194]
call fcn.004daa20
mov eax, dword [edi + 0x28]
xor ecx, ecx
mov esi, dword [ebx - 0x190]
add esp, 8
mov dword [ebp - 0x10], eax
xor edx, edx
mov eax, dword [edi + 0x24]
mov dword [ebp - 0x14], eax
xor eax, eax
mov dword [ebp - 0x18], esi
mov dword [ebp - 8], ecx
mov dword [ebp - 0xc], eax
test esi, esi
je 0x4da243
lea esi, [ebx - 0x84]
lea edi, [ebx - 5]
mov ah, byte [ebx + edx - 0x184]
xor al, al
test ah, ah
je 0x4da230
mov ecx, dword [ebp - 0x20]
movzx eax, ah
add ecx, edx
shr ecx, 8
lea eax, [eax + eax*4]
sar eax, 1
sub ecx, eax
mov eax, dword [ebp - 4]
movzx eax, byte [eax + edx + 0x18c]
inc eax
add eax, ecx
jns 0x4da1f6
mov al, 0xf
jmp 0x4da205
cmp eax, 0x41
jg 0x4da203
mov al, byte [eax + 0x52d180]
jmp 0x4da205
xor al, al
movzx ecx, al
cmp ecx, dword [ebp - 0x10]
jbe 0x4da212
mov al, byte [ebp - 0x10]
jmp 0x4da21a
cmp ecx, dword [ebp - 0x14]
jae 0x4da21a
mov al, byte [ebp - 0x14]
mov ecx, dword [ebp - 8]
cmp al, 1
jae 0x4da22a
inc ecx
mov byte [esi], dl
mov dword [ebp - 8], ecx
inc esi
jmp 0x4da230
inc dword [ebp - 0xc]
mov byte [edi], dl
dec edi
mov byte [ebx + edx - 0x104], al
inc edx
cmp edx, dword [ebp - 0x18]
jb 0x4da1c3
mov eax, dword [ebp - 0xc]
mov esi, dword [ebp - 0x18]
mov dword [ebx], eax
mov eax, 0x80
sub eax, esi
mov dword [ebx - 4], ecx
push eax
lea eax, [esi - 0x104]
add eax, ebx
push 0
push eax
call fcn.00504370
mov edi, dword [ebx - 0x190]
add esp, 0xc
test edi, edi
je 0x4da2a6
lea edx, [ebx - 0x184]
lea esi, [ebx + 4]
jmp 0x4da280
movzx eax, byte [edx + 0x80]
lea edx, [edx + 1]
movzx ecx, byte [edx - 1]
fld dword [eax*4 + 0x52e3f8]
fmul dword [ecx*4 + 0x52e958]
fstp dword [esi]
add esi, 4
sub edi, 1
jne 0x4da280
mov edx, dword [ebp - 4]
add ebx, 0x2998
mov edi, dword [ebp - 0x1c]
inc edi
mov dword [ebp - 0x1c], edi
mov eax, dword [edx + 0xc]
cmp edi, eax
jb 0x4da153
mov esi, dword [ebp - 0x34]
jmp 0x4da2c8
mov edx, edi
xor ebx, ebx
xor ecx, ecx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 8], ecx
xor edi, edi
mov dword [ebp - 0x20], edi
test eax, eax
je 0x4da407
add edx, 0x4a8
mov dword [ebp - 0xc], edx
jmp 0x4da2f0
mov ecx, dword [edx - 0x194]
lea ebx, [edx - 0x198]
xor eax, eax
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x30], ebx
test ecx, ecx
je 0x4da3c0
mov ecx, dword [ebp - 0x10]
add ecx, 0x398
mov dword [ebp - 0x18], edx
add ecx, ebx
mov dword [ebp - 0x14], ecx
mov bl, byte [edx + eax - 0x108]
lea ecx, [ebp - 0x3c]
movzx edi, bl
movzx eax, byte [edi + 0x52ea58]
mov edx, eax
mov dword [ebp - 0x24], eax
call fcn.004d9030
mov edx, eax
mov eax, dword [ebp - 0x24]
add esi, eax
mov dword [ebp - 0x34], esi
mov ecx, esi
mov dword [ebp - 0x24], ecx
cmp bl, 7
jbe 0x4da375
mov ecx, edx
mov eax, 1
and ecx, 1
shr edx, 1
add ecx, ecx
sub eax, ecx
imul eax, edx
mov dword [ebp - 0x28], eax
test eax, eax
jne 0x4da370
dec esi
mov dword [ebp - 0x34], esi
fild dword [ebp - 0x28]
jmp 0x4da38f
shl edi, 4
add edi, edx
movzx esi, byte [edi + 0x52cf00]
fld dword [edi*4 + 0x52daf0]
sub esi, eax
add esi, ecx
mov dword [ebp - 0x34], esi
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
inc eax
fmul dword [ecx]
add ecx, 4
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x1c], eax
fstp dword [edx]
add edx, 4
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0xc]
cmp eax, ecx
jb 0x4da320
mov ebx, dword [ebp - 0x30]
mov edi, dword [ebp - 0x20]
mov eax, 0x80
sub eax, ecx
shl eax, 2
push eax
mov eax, dword [ebp - 8]
add eax, 0xe6
add eax, ecx
push 0
lea eax, [ebx + eax*4]
push eax
call fcn.00504370
mov eax, dword [ebp - 4]
inc edi
mov edx, dword [ebp - 0xc]
add esp, 0xc
add edx, 0x2998
mov dword [ebp - 0x20], edi
mov dword [ebp - 0xc], edx
mov eax, dword [eax + 0xc]
cmp edi, eax
jb 0x4da2f0
mov ecx, dword [ebp - 8]
mov ebx, dword [ebp - 0x10]
mov edx, dword [ebp - 4]
sub ecx, 0xffffff80
add ebx, 0x200
mov dword [ebp - 8], ecx
mov dword [ebp - 0x10], ebx
cmp ecx, 0x400
jb 0x4da2d2
mov eax, esi
pop esi
pop edi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
or eax, 0xffffffff
pop ebx
mov esp, ebp
pop ebp
ret