Function at 0x4231a8
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40
add dword [0x43e28c], 0x64aac3b4
or dword [0x43e8f4], 0x2c60e672
and dword [0x44de9c], 0xace62674
movsx eax, word [0x433b9c]
and eax, 0x1b483e46
mov dword [0x4504b4], eax
mov edx, dword [0x44c6c8]
mov eax, dword [0x44de08]
sub edx, 0x43e8971e
or edx, 0x45ccc8b
imul eax, edx
push ebx
mov ebx, ecx
mov ecx, 0x2931eb0b
push esi
push edi
mov dword [0x44de08], eax
mov eax, dword [ebx]
mov dword [ebp - 8], eax
mov eax, dword [0x450dec]
sub ecx, eax
mov dword [0x4505dc], ecx
mov eax, dword [ebx + 4]
mov dword [ebp - 4], eax
xor dword [0x43daa0], 0x24ba0139
mov esi, dword [ebx]
inc dword [0x44d1cc]
mov edx, dword [0x44d1cc]
dec dword [0x448c04]
mov ecx, dword [0x448c04]
mov eax, dword [0x449304]
add ecx, 0x41ebfe0
not eax
and ecx, eax
lea eax, [edx + 0x10cf9362]
or eax, 0x3521d8c0
cmp eax, ecx
jl 0x423274
movsx eax, word [0x43786a]
mov ecx, 0x987f7383
sub ecx, eax
add dword [0x444984], ecx
imul eax, dword [0x4498b8], 0x967301d6
shr esi, 3
push 0x38
and esi, 0x3f
pop edx
mov dword [0x4498b8], eax
add dword [0x44b0b0], 0xdf7bf7e6
and dword [0x441224], 0x395ce66b
cmp esi, edx
jge 0x4232cc
mov ecx, dword [0x44fdb4]
mov eax, dword [0x44eb44]
or ecx, 0x7331cf90
imul eax, ecx
sub edx, esi
mov dword [0x44eb44], eax
mov eax, 0x587c
mov word [0x4374c6], ax
jmp 0x423302
mov ecx, dword [0x450ccc]
mov eax, dword [0x44dd3c]
add eax, ecx
mov ecx, dword [0x44fb60]
xor ecx, eax
xor ecx, 0xcd5c48c6
push 0x78
mov dword [0x44fb60], ecx
dec dword [0x44dd3c]
pop edx
sub edx, esi
add dword [0x4463d0], 0xc933216a
mov eax, dword [0x449918]
mov ecx, dword [0x449948]
add eax, 0xd0f62375
add ecx, eax
lea eax, [ebx + 0x68]
mov dword [0x449918], ecx
mov ecx, ebx
push edx
push eax
call fcn.0042b1a5
or dword [0x44c78c], 0xfcae2acf
xor esi, esi
mov eax, dword [0x43fd90]
xor eax, 0x86208a0
cmp eax, 0x2f65e24c
jg 0x423374
movsx eax, word [0x437c74]
add eax, 0x32fd0ade
cmp eax, 0x25cd5bbe
je 0x423362
xor dword [0x4495fc], 0xfc1fa7be
jmp 0x423374
movzx eax, word [0x43af10]
sub eax, 0x80001
mov word [0x43af10], ax
add dword [0x445700], 0x9cecd231
lea edi, [ebx + 0x1a]
mov dword [0x4435d4], 0x42c62fe
movzx edx, byte [edi + 1]
inc dword [0x450e98]
mov eax, dword [0x450e98]
mov ecx, dword [0x440974]
xor ecx, eax
shl edx, 0x18
mov dword [0x447780], ecx
imul eax, dword [0x44e838], 0x6684923d
cmp eax, 0xe3bffd4f
jl 0x4233de
mov ax, word [0x434410]
mov ecx, dword [0x43d14c]
cwde
and ecx, eax
mov eax, dword [0x449fa0]
or ecx, 0xddbb145a
imul eax, ecx
mov dword [0x449fa0], eax
mov dword [ebp + esi*4 - 0x40], edx
inc dword [0x446770]
mov ecx, dword [0x446770]
movsx eax, word [0x43ccbc]
xor ecx, 0x675fddf4
or ecx, eax
mov eax, dword [0x444590]
sub eax, 0x615ff23c
cmp ecx, eax
jge 0x42341c
dec dword [0x44be3c]
mov eax, dword [0x44be3c]
or dword [0x4484f8], eax
movzx eax, word [0x43c61e]
movzx ecx, byte [edi]
imul eax, eax, 0xd9936738
shl ecx, 0x10
mov word [0x43c61e], ax
movsx eax, word [0x43a6e2]
or dword [ebp + esi*4 - 0x40], ecx
imul eax, eax, 0x393a291f
add eax, 0x2fb0da56
mov dword [0x44d654], eax
dec dword [0x44fd70]
mov eax, dword [0x44fd70]
movsx ecx, word [0x43581a]
imul ecx, eax
cmp ecx, 0xbbdfe5df
jge 0x42347f
movzx eax, word [0x4360de]
add eax, 0x66f2f424
mov word [0x4360de], ax
mov eax, dword [0x44d0f4]
movzx edx, byte [edi - 1]
not eax
imul eax, eax, 0xda924ec0
shl edx, 8
xor eax, 0xaccac71a
or dword [0x4410c4], eax
add dword [0x447818], 0xc85ee262
mov ecx, dword [0x44c924]
movzx eax, word [0x436280]
not ecx
xor ecx, 0x221ef79f
and eax, ecx
mov word [0x436280], ax
movzx eax, byte [edi - 2]
or eax, edx
or dword [ebp + esi*4 - 0x40], eax
imul eax, dword [0x44addc], 0x1c84858b
inc esi
mov dword [0x44addc], eax
inc dword [0x448e88]
mov eax, dword [0x448e88]
cmp eax, 0xffeffffb
je 0x4234fb
or dword [0x43d428], 0x767b76df
add dword [0x444350], 0x970f2a9e
add edi, 4
cmp esi, 0xe
jb 0x423381
movsx eax, word [0x434dd2]
movsx ecx, word [0x43b09e]
not eax
imul eax, eax, 0xc61c2dbe
xor ecx, eax
lea eax, [ebp - 0x40]
or dword [0x4480ec], ecx
mov ecx, ebx
push eax
call fcn.0041fd3a
movzx eax, word [0x43a93e]
lea esi, [ebx + 0x59]
xor eax, 0x91020081
mov word [0x43a93e], ax
mov eax, dword [0x4434a0]
mov ecx, dword [0x44cfa4]
and eax, 0x48fa7630
not ecx
or ecx, eax
mov eax, dword [0x43f424]
imul eax, ecx
push 4
pop edi
mov dword [0x43f424], eax
imul eax, dword [0x451240], 0x880885a4
or eax, 0x75803a78
mov dword [0x44c974], eax
inc dword [0x451240]
add ebx, 8
mov eax, dword [0x448ca8]
sar eax, 9
or eax, 0x4b42226a
and dword [0x43d4dc], eax
mov eax, dword [0x4422f8]
mov edx, dword [ebx]
lea ebx, [ebx + 4]
sar eax, 9
add eax, 0x3c6ad311
mov dword [0x44c5e0], eax
mov byte [esi - 1], dl
movzx eax, word [0x434f5c]
or eax, 0xae5edcb0
shr edx, 8
mov word [0x434f5c], ax
and dword [0x44c08c], 0xbd10d92a
xor dword [0x4456f0], 0xa92e4f2c
mov byte [esi], dl
lea esi, [esi + 4]
mov ecx, dword [0x4492dc]
movzx eax, word [0x43a5e8]
add ecx, 0x7b03fd40
and ecx, 0xaacf6e8b
shr edx, 8
or eax, ecx
mov word [0x43a5e8], ax
inc dword [0x4492dc]
imul eax, dword [0x44a04c], 0xee8c037
mov dword [0x44a04c], eax
mov eax, dword [0x443c08]
imul eax, eax, 0xb45e85e8
and dword [0x44ed88], eax
dec dword [0x443c08]
mov byte [esi - 3], dl
mov eax, dword [0x44b600]
add eax, 0xbec0fc6
shr edx, 8
and eax, 0x11b8c68e
add dword [0x43e9ac], eax
movzx eax, word [0x43b314]
xor eax, 0x32321171
mov word [0x43b314], ax
movsx eax, word [0x43c104]
and eax, 0x9f61d186
add dword [0x4494b4], eax
mov byte [esi - 2], dl
mov eax, dword [0x449fc4]
imul eax, dword [0x448f64]
mov dword [0x448f64], eax
movzx eax, word [0x43349c]
or eax, 0x7653fa5f
mov word [0x43349c], ax
or dword [0x44c590], 0x74ea2de2
mov eax, dword [0x43d654]
mov dword [0x442bec], eax
dec dword [0x43d654]
dec edi
jne 0x423590
add dword [0x440650], 0x1020806
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret