Function at 0x4024d0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0xc
fldz
push ebx
mov ebx, dword [esp + 0x14]
fstp dword [esp + 0xc]
push ebp
push esi
push edi
push 0x200
xor eax, eax
xor esi, esi
push ebx
mov word [esp + 0x18], ax
mov dword [esp + 0x1c], esi
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov edi, 1
add dword [0x424b3c], edi
mov ecx, dword [0x424b3c]
add ecx, dword [esp + 0x14]
cmp eax, esi
mov dword [esp + 0x14], ecx
jl 0x402522
cmp byte [eax + ebx], 0x5c
je 0x402522
sub eax, edi
jns 0x402518
add eax, edi
mov byte [eax + ebx], 0
mov dword [esp + 0x20], esi
xor edx, edx
mov dword [esp + 0x20], esi
push 0x20
mov word [esp + 0x24], dx
call fcn.0040b813
push 0x20
mov ebp, eax
push 0x4243b0
push ebp
call fcn.0040b8e0
mov eax, dword [0x4277c4]
sub eax, 0x423004
lea esi, [ebp + 0x20]
add esp, 0x10
add eax, 0x4243b0
mov ecx, ebp
cmp ebp, esi
je 0x402572
mov dl, byte [eax]
xor byte [ecx], dl
inc ecx
inc eax
cmp ecx, esi
jne 0x402568
mov eax, dword [0x424aec]
cmp eax, 0xe193a284
jle 0x4025eb
mov cx, word [0x4249d4]
movsx edx, cx
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
fld dword [esp + 0x18]
fsub qword [0x41f470]
fadd qword [0x41f468]
fcompp
fnstsw ax
fld dword [esp + 0x18]
fsub qword [0x41f340]
fstp dword [esp + 0x18]
add word [0x4249d4], di
test ah, 5
jp 0x4025ca
mov ax, word [esp + 0x10]
mov cx, word [esp + 0x10]
jmp 0x4025eb
mov dx, word [0x424ba4]
mov ecx, dword [esp + 0x14]
movsx eax, dx
add eax, 0xc00fce6d
imul ecx, eax
mov dword [esp + 0x14], ecx
add word [0x424ba4], di
mov eax, ebp
mov esi, ebp
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4025f0
mov edi, ebx
sub eax, esi
dec edi
lea esp, [esp]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x402600
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
dec dword [esp + 0x14]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
fsub dword [0x4235d8]
fsub qword [0x41f460]
call fcn.0040b5d0
mov dword [esp + 0x14], eax
xor eax, eax
mov dword [ebp], eax
mov dword [ebp + 4], eax
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], eax
mov dword [ebp + 0x10], eax
mov dword [ebp + 0x14], eax
mov word [esp + 0x20], ax
mov dword [ebp + 0x18], eax
mov dword [esp + 0x20], eax
push ebp
mov dword [ebp + 0x1c], eax
call fcn.0040b67b
fld dword [0x42451c]
fmul qword [0x41f458]
mov eax, ebx
add esp, 4
lea ecx, [eax + 1]
fstp dword [0x42451c]
mov edi, edi
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x402680
sub eax, ecx
mov edi, eax
xor eax, eax
mov dword [esp + 0x20], eax
xor ecx, ecx
mov dword [esp + 0x20], eax
push 0x10
sub edi, 3
mov word [esp + 0x24], cx
call fcn.0040b813
mov edx, dword [0x4235fc]
mov dword [eax], edx
mov ecx, dword [0x423600]
mov dword [eax + 4], ecx
mov edx, dword [str.9_XH_]
mov dword [eax + 8], edx
mov ecx, dword [0x423608]
mov dword [eax + 0xc], ecx
mov ecx, dword [0x4277c4]
sub ecx, 0x423004
lea ebp, [eax + 0x10]
add esp, 4
add ecx, 0x4235fc
mov esi, eax
cmp eax, ebp
je 0x4026f1
mov dl, byte [ecx]
xor byte [esi], dl
inc esi
inc ecx
cmp esi, ebp
jne 0x4026e7
sub edi, eax
mov ecx, eax
lea esi, [edi + ebx]
mov dl, byte [ecx]
mov byte [esi + ecx], dl
inc ecx
test dl, dl
jne 0x4026f8
xor ecx, ecx
pop edi
mov dword [eax], ecx
pop esi
mov dword [eax + 4], ecx
pop ebp
mov word [esp + 0x14], cx
mov dword [eax + 8], ecx
mov dword [esp + 0x14], ecx
mov dword [eax + 0xc], ecx
pop ebx
add esp, 0xc
mov dword [esp + 4], eax
jmp fcn.0040b67b