Function at 0x4033fd
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 8
mov esi, dword [esp + 0x20]
mov eax, dword [0x44c31c]
lea ecx, [eax + 1]
mov dword [0x44c31c], ecx
cmp eax, 0x3c84524f
jne 0x403427
or dword [0x44cc94], 0x4de26441
mov ebx, dword [esp + 0x1c]
add dword [0x44f680], 0xafef553c
or dword [0x44aba8], 0x990bd2d
imul eax, dword [0x44cee4], 0x9c0cb9b4
mov dword [0x44cee4], eax
lea eax, [esi + 4]
push eax
call sub.msvcrt.dll_malloc
add esp, 4
mov ebp, eax
mov dword [esp], ebp
xor dword [0x454d4c], 0x8ec7d3a3
mov ecx, dword [0x44dc28]
mov ecx, 0x1ae29ef
add ecx, dword [0x450f18]
and ecx, 0x7204d260
mov dword [0x447af4], ecx
jmp 0x403499
add eax, 0xfffffffd
mov ecx, dword [0x44d558]
mov dword [0x449750], ecx
mov ebp, eax
mov eax, dword [0x4546e0]
mov ecx, dword [0x44f6f8]
shl ecx, 8
add ecx, eax
cmp ecx, 0xd7fce979
je 0x4034c8
mov eax, dword [0x44e408]
inc eax
mov dword [0x44e408], eax
sub eax, dword [0x4525dc]
xor dword [0x452874], eax
mov al, byte [ebx + 0x438008]
mov byte [ebp], al
mov eax, dword [0x447ae0]
lea ecx, [eax + 1]
mov dword [0x447ae0], ecx
mov ecx, 0x99bc52bb
sub ecx, eax
xor ecx, 0x61438d8f
add dword [0x44af14], ecx
mov eax, dword [0x455904]
mov al, byte [eax + ebx]
xor byte [ebp], al
movzx eax, word [0x443b30]
imul eax, eax, 0xffffa400
xor word [0x43fea0], ax
imul eax, dword [0x447d28], 0x1a1f8ada
add eax, 0xc1af86df
and dword [0x45059c], eax
mov eax, dword [0x447cec]
not eax
mov ecx, dword [0x44ef28]
not ecx
sub eax, ecx
cmp eax, 0x2900f9fd
jne 0x40354d
imul eax, dword [0x44bc78], 0x27565d6e
mov dword [0x44bc78], eax
mov al, byte [ebx + 0x438009]
mov byte [ebp + 1], al
mov eax, dword [0x44e1b4]
lea ecx, [eax + 1]
mov dword [0x44e1b4], ecx
add eax, 0x3d3d81b8
cmp eax, 0x3639fe93
jl 0x403582
mov eax, dword [0x4555c4]
mov ecx, 0x2b79fbb
add eax, ecx
or dword [0x44afa4], eax
mov eax, dword [0x455904]
mov al, byte [eax + ebx + 1]
xor byte [ebp + 1], al
mov ax, word [0x446416]
mov eax, dword [0x44a1a0]
mov ecx, 0x1e1317c1
or eax, ecx
xor eax, 0x81c8a820
cmp eax, 0xf577f7ce
jg 0x4035c6
mov dword [esp + 4], esi
mov eax, dword [0x4483d8]
sar eax, 4
imul eax, dword [0x44e218]
mov dword [0x44e218], eax
jmp 0x4035f6
mov dword [esp + 4], esi
mov eax, dword [0x448f7c]
inc eax
mov dword [0x448f7c], eax
mov ecx, dword [0x44d834]
dec ecx
mov dword [0x44d834], ecx
imul ecx, eax
cmp ecx, 0x1a7bd8a6
jg 0x4035f6
or word [0x442050], 0x8f82
mov word [0x4435fa], 0xc4df
movzx esi, word [ebp]
inc word [0x441420]
mov eax, dword [0x4528c4]
dec eax
mov dword [0x4528c4], eax
mov dword [0x453408], eax
lea eax, [ebx + 0x43800a]
add ebx, 2
lea edi, [esi + 3]
push edi
push eax
push ebp
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [0x45222c]
shr eax, 2
imul eax, dword [0x446ad8]
shl eax, 6
or eax, 0x8923
movzx ecx, word [0x443ed2]
and ecx, eax
mov word [0x443ed2], cx
mov eax, dword [0x44c864]
mov ecx, 0x5e728e86
add eax, ecx
and dword [0x451d3c], eax
mov eax, dword [0x453d9c]
cmp eax, dword [0x44b860]
jl 0x40367c
mov eax, dword [0x455608]
lea eax, [ebp + esi + 3]
add ebx, dword [0x455904]
add word [0x442b5c], 0x18b2
mov dword [0x44868c], 0xfe5196ef
mov cl, byte [ebx]
xor byte [ebp], cl
mov dword [0x44b974], 0x699a6ead
inc ebp
inc ebx
dec edi
jne 0x40368f
mov ecx, dword [0x44e8d0]
lea edx, [ecx + 1]
mov dword [0x44e8d0], edx
add ecx, 0x221fefc9
mov edx, 0xfe532159
sub edx, dword [0x450abc]
and edx, 0x21e03e6b
cmp ecx, edx
jle 0x4036f1
movsx ecx, word [0x44176c]
mov edx, dword [0x4549bc]
lea ecx, [ecx + edx - 0x7c9be31b]
xor dword [0x44fd5c], ecx
mov ecx, dword [esp + 4]
sub ecx, esi
mov esi, ecx
je 0x403789
mov ecx, dword [0x44ad4c]
lea edx, [ecx - 1]
mov dword [0x44ad4c], edx
mov edx, 0xbfb67633
sub edx, ecx
add edx, dword [0x446ffc]
add dword [0x4477e8], edx
mov byte [eax], 0
imul ecx, dword [0x451ed8], 0x1a080322
mov dword [0x451ed8], ecx
or word [0x4433f0], 0x2905
mov ebx, dword [eax - 3]
mov ecx, dword [0x448ea0]
dec ecx
mov dword [0x448ea0], ecx
mov dword [0x450998], ecx
mov ecx, dword [0x45528c]
lea edx, [ecx - 1]
mov dword [0x45528c], edx
imul edx, dword [0x44c210], 0x5c143c9f
xor edx, ecx
cmp edx, 0x9b1b6f84
jg 0x403488
xor dword [0x448d58], 0x417818d8
jmp 0x403488
movsx eax, word [0x443fa4]
shr eax, 6
movzx ecx, word [0x444cd8]
sub ecx, eax
mov word [0x444cd8], cx
mov eax, dword [esp]
add esp, 8
pop esi
pop edi
pop ebx
pop ebp
ret