Function at 0x416cb0
Capabilities:
Encode data using xor

Disassembly:
push esi
push edi
push ebx
push ebp
sub esp, 0x98
mov eax, dword [0x48a8a0]
xor eax, esp
mov dword [esp + 0x94], eax
cmp dword [esp + 0xac], 0
je 0x416fe7
mov eax, dword [esp + 0xac]
mov esi, dword [eax + 0x120]
test esi, esi
je 0x416fe7
cmp dword [esi], 0xfff88e3b
jne 0x416fe7
cmp dword [esi + 0x9c], 0
je 0x416fe7
cmp dword [esi + 0x14f0c], 0
jle 0x416fe7
mov ebx, dword [esi + 0x14f20]
cmp ebx, dword [esp + 0xb4]
ja 0x416fcc
mov ebp, dword [esp + 0xb0]
test ebp, ebp
je 0x416fe7
push ebx
push 0
push ebp
call fcn.0040bff0
add esp, 0xc
mov eax, esi
mov edx, ebp
call fcn.00417010
mov edx, 0x64
xor eax, eax
mov dword [esp + edx + 0x2c], eax
mov dword [esp + edx + 0x28], eax
mov dword [esp + edx + 0x24], eax
mov dword [esp + edx + 0x20], eax
mov dword [esp + edx + 0x1c], eax
sub edx, 0x14
jne 0x416d4d
cmp dword [esi + 0x98], 0
jne 0x416e35
mov ebx, dword [esi + 0x14f0c]
test ebx, ebx
jle 0x416e62
fld dword [0x468bd8]
fstp st(0)
mov edi, 1
fld qword [0x468ba0]
fstp st(0)
fild dword [esi + 0x14f00]
mov dword [esp + 0x24], ebx
dec ebx
mov eax, dword [esi + 0x14f14]
mov ebp, eax
mov dword [esp + 0x14], esi
fstp dword [esp + 0x2c]
fild dword [esp + 0x24]
fstp dword [esp + 0x10]
nop
lea esi, [esi]
mov dword [esp + 0x24], edi
fild dword [esp + 0x24]
fdiv dword [0x468bd8]
fmul dword [esp + 0x10]
fnstcw word [esp + 0x18]
movzx eax, word [esp + 0x18]
and eax, 0xfffff3ff
or eax, 0x400
mov dword [esp + 0x20], eax
fldcw word [esp + 0x20]
fistp dword [esp + 0x24]
fldcw word [esp + 0x18]
mov esi, dword [esp + 0x24]
cmp ebx, esi
jge 0x416dff
mov esi, ebx
fild dword [ebp + esi*4]
fmul qword [0x468ba0]
fdiv dword [esp + 0x2c]
call fcn.0040c080
cmp eax, 0xff
jl 0x416e1e
mov eax, 0xff
mov byte [esp + edi + 0x30], al
inc edi
cmp edi, 0x64
jl 0x416dc0
mov ebp, dword [esp + 0xb0]
mov esi, dword [esp + 0x14]
jmp 0x416e62
mov dword [esp + 0x14], esi
mov ecx, 1
mov esi, ecx
mov eax, 0x51eb851f
shl esi, 8
sub esi, ecx
imul esi
sar edx, 5
sar esi, 0x1f
sub edx, esi
mov byte [esp + ecx + 0x30], dl
inc ecx
cmp ecx, 0x64
jl 0x416e3e
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 0x18]
cmp dword [esi + 0xa0], 0
lea ecx, [eax - 2]
jne 0x416e73
mov ecx, eax
cmp dword [esi + 0x68], 0
jne 0x416e91
mov byte [ecx + ebp], 0x49
mov byte [ecx + ebp + 1], 0x6e
mov byte [ecx + ebp + 2], 0x66
mov byte [ecx + ebp + 3], 0x6f
add ecx, 4
jmp 0x416ea7
mov byte [ecx + ebp], 0x58
mov byte [ecx + ebp + 1], 0x69
mov byte [ecx + ebp + 2], 0x6e
mov byte [ecx + ebp + 3], 0x67
add ecx, 4
xor eax, eax
mov byte [ecx + ebp], al
mov byte [ecx + ebp + 1], al
mov byte [ecx + ebp + 2], al
mov byte [ecx + ebp + 3], 0xf
mov ebx, dword [esi + 0x14f18]
mov eax, ebx
shr eax, 0x18
mov byte [ecx + ebp + 4], al
mov eax, ebx
shr eax, 0x10
mov byte [ecx + ebp + 5], al
mov eax, ebx
shr eax, 8
mov byte [ecx + ebp + 6], al
lea eax, [ebp + ecx + 0xc]
mov byte [ecx + ebp + 7], bl
mov ebx, dword [esi + 0x14f1c]
add ebx, dword [esi + 0x14f20]
mov edx, ebx
shr edx, 0x18
mov byte [ecx + ebp + 8], dl
mov edx, ebx
shr edx, 0x10
mov byte [ecx + ebp + 9], dl
mov edx, ebx
shr edx, 8
mov byte [ecx + ebp + 0xa], dl
mov edx, 0x64
mov byte [ecx + ebp + 0xb], bl
mov edi, dword [esp + edx + 0x2c]
mov dword [eax + edx - 4], edi
mov edi, dword [esp + edx + 0x28]
mov dword [eax + edx - 8], edi
mov edi, dword [esp + edx + 0x24]
mov dword [eax + edx - 0xc], edi
mov edi, dword [esp + edx + 0x20]
mov dword [eax + edx - 0x10], edi
mov edi, dword [esp + edx + 0x1c]
mov dword [eax + edx - 0x14], edi
sub edx, 0x14
jne 0x416f12
cmp dword [esi + 0xa0], 0
lea edi, [ecx + 0x70]
je 0x416f5d
push ebp
push esi
mov dword [esp + 0x18], ecx
call fcn.00419100
mov ecx, dword [esp + 0x18]
add esp, 8
xor edx, edx
xor eax, eax
test edi, edi
je 0x416f94
mov dword [esp + 0x10], ebx
xor edx, edx
mov dword [esp + 0x14], esi
movzx esi, byte [edx + ebp]
mov ebx, eax
xor eax, esi
inc edx
movzx eax, al
shr ebx, 8
xor ebx, dword [eax*4 + str._t__adjust_type:__d_n]
movzx eax, bx
cmp edx, edi
jb 0x416f6f
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov edx, ebx
lea ecx, [ebp + ecx + 0x70]
mov word [esp + 0xc], ax
mov eax, dword [esp + 0xac]
call fcn.00417180
mov ecx, dword [esp + 0x94]
xor ecx, esp
mov ebx, dword [esi + 0x14f20]
call fcn.0044c34d
mov eax, ebx
add esp, 0x98
pop ebp
pop ebx
pop edi
pop esi
ret
mov ecx, dword [esp + 0x94]
xor ecx, esp
call fcn.0044c34d
mov eax, ebx
add esp, 0x98
pop ebp
pop ebx
pop edi
pop esi
ret
mov ecx, dword [esp + 0x94]
xor ecx, esp
call fcn.0044c34d
xor eax, eax
add esp, 0x98
pop ebp
pop ebx
pop edi
pop esi
ret