Function at 0x41888c
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x40
mov esi, ecx
and dword [0x44dbc0], 0xff3e7e3f
mov eax, dword [0x44edf0]
lea ecx, [eax + 1]
mov dword [0x44edf0], ecx
or eax, 0x70dadd30
imul eax, dword [0x448fb8]
mov dword [0x448fb8], eax
mov eax, dword [0x44d4b8]
sar eax, 9
add eax, 0xf8229df
sub eax, dword [0x455154]
cmp eax, 0x5e2ff3a2
jg 0x4188e9
imul eax, dword [0x44d9a8], 0xb8fc674a
mov dword [0x44d9a8], eax
jmp 0x418904
mov eax, dword [0x455580]
sar eax, 0xa
add eax, 0xc66e363a
cmp eax, 0xa1751e61
jl 0x418904
inc word [0x444cbe]
mov eax, dword [0x447b88]
cmp eax, 0xdfedf7a1
jl 0x418949
movsx eax, word [0x43f502]
lea ecx, [eax - 1]
mov word [0x43f502], cx
mov ecx, dword [0x44cb24]
shl ecx, 7
and ecx, dword [0x454de8]
xor ecx, eax
cmp ecx, 0xde736d3d
jne 0x418949
imul eax, dword [0x448ae0], 0xfdd3a22e
mov dword [0x448ae0], eax
mov eax, dword [0x450420]
mov ecx, dword [0x446ff4]
lea edx, [ecx - 1]
mov dword [0x446ff4], edx
mov edx, 0x926f1457
sub edx, ecx
xor edx, eax
cmp edx, 0xd79c8afb
jl 0x418992
movzx eax, word [0x4457cc]
mov ecx, dword [0x454618]
and ecx, eax
xor ecx, 0xbe50
movzx eax, word [0x441bfa]
and eax, ecx
mov word [0x441bfa], ax
mov eax, dword [esi]
mov dword [esp + 0x38], eax
mov eax, dword [0x448524]
movzx ecx, word [0x44483a]
xor ecx, dword [0x45416c]
not ecx
or ecx, eax
movzx eax, word [0x44468c]
or eax, ecx
mov word [0x44468c], ax
mov eax, dword [esi + 4]
mov dword [esp + 0x3c], eax
mov eax, dword [0x448a14]
dec eax
mov dword [0x448a14], eax
cmp eax, 0xf660ebb9
je 0x4189e3
movsx eax, word [0x440cb0]
add dword [0x4500d8], eax
mov eax, dword [esi]
imul ecx, dword [0x45112c], 0xf321471c
mov dword [0x45112c], ecx
shr eax, 3
xor dword [0x44dff8], 0x88f41194
and eax, 0x3f
mov dword [0x44a644], 0x85a0d03f
or dword [0x44ab20], 0x1580001
cmp eax, 0x37
ja 0x418a4c
mov ecx, 0x9c265ccd
sub ecx, dword [0x44bb74]
and ecx, 0x80e46169
xor dword [0x455740], ecx
imul ecx, dword [0x4479c0], 0x55e6012e
mov dword [0x4479c0], ecx
mov edx, 0x38
jmp 0x418a77
mov ecx, dword [0x44ed24]
shl ecx, 7
xor ecx, 0x27463c05
imul ecx, dword [0x451884]
mov dword [0x451884], ecx
mov dword [0x451f10], 0xf4313eda
mov edx, 0x78
sub edx, eax
mov eax, dword [0x4543c0]
cmp eax, 0x895c7eb4
jne 0x418a94
imul eax, dword [0x448cbc], 0x6383d2f6
mov dword [0x448cbc], eax
lea eax, [esi + 0x68]
mov ecx, esi
push edx
push eax
call fcn.00418dd0
movsx eax, word [0x4431d0]
and eax, 0xf0dd9ae9
mov dword [0x44fee4], eax
add dword [0x44f2f4], 0x3d012657
mov ecx, dword [0x45274c]
mov eax, 0x1b
cmp ecx, 0x123556ca
jl 0x418ad8
mov dword [0x4514e0], 0x6b17992b
xor dword [0x448c38], 0xff05b7f8
movzx ecx, byte [esi + eax]
add word [0x446334], 0x60e4
shl ecx, 0x18
mov edx, dword [0x44e5a4]
mov dword [esp + eax - 0x1b], ecx
imul ecx, dword [0x44e948], 0x630a980e
mov dword [0x44e948], ecx
movzx ecx, byte [esi + eax - 1]
mov edx, 0x89ad5317
and edx, dword [0x44e044]
xor edx, 0xd34577ec
imul edx, dword [0x44c1a8]
mov dword [0x44c1a8], edx
shl ecx, 0x10
mov edx, 0xbedb6be3
sub edx, dword [0x4482d8]
imul edx, dword [0x44fd98]
mov dword [0x44fd98], edx
or dword [esp + eax - 0x1b], ecx
xor dword [0x45161c], 0x377675d4
movzx ecx, byte [esi + eax - 2]
add word [0x4431da], 0xf9c0
shl ecx, 8
or dword [0x455814], 0x3e8aaffe
or dword [esp + eax - 0x1b], ecx
movsx ecx, word [0x440d60]
imul ecx, ecx, 0xf4362b9e
or ecx, 0xe489e201
imul ecx, dword [0x447b0c]
mov dword [0x447b0c], ecx
movzx ecx, byte [esi + eax - 3]
or dword [esp + eax - 0x1b], ecx
or dword [0x44a59c], 0x10d34121
mov cx, word [0x4430fc]
mov ecx, dword [0x44e170]
inc ecx
mov dword [0x44e170], ecx
xor ecx, 0x757a75ca
sub dword [0x4535fc], ecx
add eax, 4
cmp eax, 0x53
jne 0x418ad8
mov eax, dword [0x44a264]
movsx ecx, word [0x440668]
sar ecx, 7
and ecx, eax
or ecx, 0x7433ebd2
sub dword [0x448e74], ecx
lea eax, [esp]
mov ecx, esi
push eax
call fcn.004191dc
or dword [0x44c80c], 0x9ff11688
mov eax, 0x56a06f74
sub eax, dword [0x44d5d8]
and eax, dword [0x44db94]
and eax, 0xb8d1de82
mov dword [0x44db94], eax
mov eax, dword [0x454c38]
imul eax, eax, 0x458a5c00
and eax, 0x7169800
movsx ecx, word [0x443436]
lea edx, [ecx - 1]
mov word [0x443436], dx
cmp eax, ecx
jg 0x418c5c
imul eax, dword [0x448ed4], 0xa7db8480
add eax, 0x876cff2e
mov dword [0x450a18], eax
xor eax, eax
or word [0x44017a], 0xfaeb
mov ecx, dword [esi + eax*4 + 8]
add dword [0x44f400], 0x30408801
mov byte [esi + eax*4 + 0x58], cl
mov edx, dword [0x44c7bc]
lea edi, [edx - 1]
mov dword [0x44c7bc], edi
imul edx, dword [0x454c78]
mov dword [0x454c78], edx
mov edx, dword [0x44c604]
lea edi, [edx - 1]
mov dword [0x44c604], edi
add edx, 0x1a124b9d
xor edx, 0x1f1d3f4c
sub dword [0x4538a8], edx
mov dword [0x453224], 0x7293d49
mov byte [esi + eax*4 + 0x59], ch
xor word [0x4456a6], 0xbd8c
xor dword [0x44c108], 0x21bb0ed
mov edx, ecx
shr edx, 0x10
mov edi, dword [0x4544f0]
lea ebx, [edi - 1]
mov dword [0x4544f0], ebx
movsx ebx, word [0x445ca4]
mov ebp, dword [0x44a788]
imul edi, edi, 0x17202526
add edi, ebx
lea edi, [ebp + edi + 1]
mov dword [0x44a788], edi
mov byte [esi + eax*4 + 0x5a], dl
add dword [0x45147c], 0x3af99cc
add dword [0x450028], 0x84bba6b7
shr ecx, 0x18
mov edx, dword [0x453f24]
not edx
and edx, 0xfb7e4644
mov edi, dword [0x4474f8]
lea ebx, [edi - 1]
mov dword [0x4474f8], ebx
and edi, 0x1400018
cmp edx, edi
jge 0x418d53
mov dx, word [0x4460c6]
mov byte [esi + eax*4 + 0x5b], cl
mov ecx, dword [0x44a620]
lea edx, [ecx - 1]
mov dword [0x44a620], edx
and ecx, 0x7a450423
or ecx, 0x5b8b908
sub dword [0x454224], ecx
and dword [0x449a28], 0x736a21f3
inc eax
add dword [0x451b44], 0x439d1f02
movsx ecx, word [0x443c24]
xor dword [0x44e5a8], ecx
cmp eax, 4
jne 0x418c5e
movsx eax, word [0x442c9c]
sar eax, 1
or eax, 0x3c52217e
xor eax, 0xc28cd681
cmp eax, 0x24102515
jl 0x418dc8
mov eax, dword [0x4553e8]
xor dword [0x44a1b0], eax
add esp, 0x40
pop esi
pop edi
pop ebx
pop ebp
ret