Function at 0x42c030
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x10
mov esi, dword [esp + 0x2c]
add dword [0x48c044], 0xf6edb337
and dword [0x48a430], 0x13757b49
mov eax, dword [0x48748c]
lea ecx, [eax + 1]
mov dword [0x48748c], ecx
xor eax, 0x9328f710
or dword [0x48c35c], eax
test esi, esi
jle 0x42c311
mov edi, dword [esp + 0x24]
mov ax, word [0x49035c]
cwde
lea eax, [eax*8 - 0x788d26fe]
cmp eax, 0x6faa1638
jl 0x42c093
add dword [0x48a800], 0x23956534
mov ebp, dword [edi]
mov eax, dword [0x4884ac]
cmp eax, 0x10002000
jg 0x42c0be
mov eax, dword [0x487d9c]
add eax, 0xeb7eac4f
xor eax, 0x8cdb0006
mov ecx, dword [0x488ab8]
sub ecx, eax
mov dword [0x488ab8], ecx
mov eax, dword [0x4882d0]
cmp eax, 0xf943b966
jl 0x42c0d4
and dword [0x4896b4], 0xec2d9167
add dword [edi], esi
mov word [0x490f14], 0x8162
mov eax, dword [0x48c660]
mov ecx, dword [0x487e28]
sub ecx, eax
mov dword [0x487e28], ecx
cmp dword [edi], esi
jae 0x42c0f9
inc dword [edi + 4]
and ebp, 0x3f
mov ax, word [0x48f57e]
cwde
mov ecx, dword [0x48871c]
lea edx, [ecx + 1]
mov dword [0x48871c], edx
xor eax, ecx
cmp eax, 0xc323140c
jl 0x42c133
mov eax, dword [0x4887a8]
lea ecx, [eax + 1]
mov dword [0x4887a8], ecx
add eax, 0x9c3779e
mov dword [0x488d4c], eax
mov edx, dword [esp + 0x28]
test ebp, ebp
je 0x42c21d
mov ebx, 0x40
sub ebx, ebp
cmp ebx, esi
jg 0x42c21d
mov ax, word [0x491812]
add eax, 0x7cad
mov word [0x491812], ax
mov eax, ebp
lea ebp, [edi + 0x28]
lea eax, [edi + eax + 0x28]
push ebx
push edx
push eax
call fcn.004329e0
add esp, 0xc
mov ax, word [0x48f4b6]
and eax, 0xf37a
mov word [0x48f4b6], ax
push ebp
push edi
call fcn.0040ca7f
add esp, 8
add dword [0x48ae04], 0x6d2d86aa
mov eax, dword [0x489640]
lea ecx, [eax + 1]
mov dword [0x489640], ecx
add eax, 0x54980e20
cmp eax, 0x16a348bb
jl 0x42c1d4
mov ax, word [0x48e7b0]
dec eax
mov word [0x48e7b0], ax
xor eax, 0xffff9d89
mov cx, word [0x48eb26]
sub ecx, eax
mov word [0x48eb26], cx
mov eax, dword [0x48b274]
mov ecx, dword [0x48726c]
not ecx
or ecx, eax
cmp ecx, 0x6e124271
jg 0x42c1f5
add dword [0x488918], 0xa8ead80a
mov edx, dword [esp + 0x28]
add edx, ebx
sub esi, ebx
mov eax, dword [0x48cdec]
shr eax, 8
xor eax, 0x7154
mov cx, word [0x491432]
imul ecx, eax
mov word [0x491432], cx
xor ebp, ebp
cmp esi, 0x40
jl 0x42c29b
mov dword [esp + 8], ebp
lea ebx, [esi - 0x40]
mov dword [esp + 4], ebx
and ebx, 0xffffffc0
lea eax, [ebx + 0x40]
mov dword [esp], eax
mov ebp, edx
mov dword [esp + 0xc], edx
mov dword [0x48a2e8], 0x345a6744
push ebp
push edi
call fcn.0040ca7f
add esp, 8
mov eax, dword [0x48b544]
not eax
imul eax, eax, 0x788fcc01
mov dword [0x48cba8], eax
add ebp, 0x40
mov ax, word [0x48ff86]
xor eax, 0x6535
mov word [0x48ff86], ax
add esi, 0xffffffc0
and dword [0x48c8d4], 0x68e9c39e
cmp esi, 0x3f
jg 0x42c23c
mov eax, dword [esp + 4]
sub eax, ebx
mov edx, dword [esp + 0xc]
add edx, dword [esp]
mov esi, eax
mov ebp, dword [esp + 8]
and dword [0x48d510], 0xb675e193
test esi, esi
jle 0x42c300
mov ax, word [0x490bb6]
cwde
and eax, 0xc523afde
mov ecx, dword [0x48c658]
xor ecx, eax
xor ecx, 0xd32337c3
mov dword [0x48c658], ecx
lea eax, [edi + ebp + 0x28]
push esi
push edx
push eax
call fcn.004329e0
add esp, 0xc
mov ax, word [0x4908d8]
cwde
shl eax, 3
mov ecx, dword [0x48d540]
lea edx, [ecx - 1]
mov dword [0x48d540], edx
mov edx, 0x51899ebe
sub edx, ecx
or edx, eax
add dword [0x48aee0], edx
mov eax, dword [0x489b00]
inc eax
mov dword [0x489b00], eax
and dword [0x489258], eax
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret