Function at 0x407380
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
movsx eax, word [0x436dc0]
dec word [0x436dc0]
or eax, 0x8b09fe9f
cmp eax, 0x56208e32
jge 0x4073b0
mov eax, dword [0x4352cc]
or eax, 0xdba246bc
add dword [0x4359fc], eax
jmp 0x4073ba
add dword [0x4360c8], 0x15090a68
mov eax, dword [0x435f2c]
mov ecx, 0x94244ebd
and eax, 0xb4b91b76
add dword [0x4364ac], eax
dec word [0x436a56]
mov ax, word [0x436a56]
cwde
sub ecx, eax
add ecx, dword [0x435ac0]
mov dword [0x435ac0], ecx
dec dword [0x435674]
mov eax, dword [0x435674]
add eax, 0x2c8bda95
cmp eax, 0x106677f8
jge 0x407416
movzx eax, word [0x4371d4]
add eax, 0xb086333
mov word [0x4371d4], ax
jmp 0x407438
dec dword [0x4360cc]
mov ecx, dword [0x4360cc]
movzx eax, word [0x436b76]
add ecx, 0xc26c9484
and ecx, eax
mov word [0x436b76], cx
mov eax, dword [ebp + 0xc]
push ebx
push esi
add eax, 4
push edi
push eax
call fcn.0042d370
mov esi, eax
add esp, 4
movzx eax, word [0x436c5a]
sub eax, 0x5e65c00
mov dword [ebp - 4], esi
mov word [0x436c5a], ax
mov eax, dword [0x43592c]
not eax
or eax, 0x499af408
cmp eax, 0xb303646c
jge 0x40748e
mov eax, dword [0x4357e0]
movzx ecx, word [0x436e90]
shl eax, 3
and ecx, eax
mov word [0x436e90], cx
jmp 0x4074a5
movsx eax, word [0x436ba4]
add eax, 0x585adf2
xor eax, 0x8ba4a91b
and dword [0x435f40], eax
mov edi, dword [ebp + 8]
jmp 0x4074b0
dec dword [0x43620c]
mov eax, dword [0x43620c]
mov ecx, dword [0x436388]
and ecx, eax
cmp ecx, 0xacd221a2
jge 0x4074ff
mov eax, dword [0x435ee0]
and eax, 0xfd2a69
shl eax, 6
cmp eax, 0xdeeb5f7f
jge 0x4074eb
mov dword [0x435b5c], 0xc85702a
jmp 0x407514
movzx eax, word [0x43710a]
or eax, 0xa80c3cd7
mov word [0x43710a], ax
jmp 0x407514
mov eax, dword [0x4350f0]
xor eax, 0xf7dffe7b
or eax, 0x2384d633
mov word [0x4369e2], ax
mov al, byte [edi + 0x430190]
mov byte [esi], al
mov eax, dword [0x4355c4]
sub eax, 0x6289aeac
cmp eax, 0x32b1f073
jg 0x40754b
movsx eax, word [0x436c2c]
movzx ecx, word [0x436dbe]
not eax
add eax, 0xccd75971
and ecx, eax
mov word [0x436dbe], cx
mov eax, dword [0x4372c8]
mov ecx, 0x5d3312c
movzx eax, byte [eax + edi]
xor byte [esi], al
movzx eax, word [0x4368b0]
and eax, 0xe22c07a9
mov word [0x4368b0], ax
add dword [0x43611c], 0xb34d7af8
mov eax, dword [0x435d6c]
sub eax, dword [0x43652c]
mov dword [0x435d6c], eax
movzx eax, byte [edi + 0x430191]
mov byte [esi + 1], al
mov eax, dword [0x435788]
sar eax, 8
sub ecx, eax
mov eax, dword [0x435afc]
imul eax, ecx
mov dword [0x435afc], eax
mov eax, dword [0x4372c8]
movzx eax, byte [eax + edi + 1]
xor byte [esi + 1], al
xor dword [0x436160], 0x29a62b62
cmp dword [0x435344], 0x8632a492
jne 0x4075e7
mov ax, word [0x436ff4]
mov ecx, dword [0x435ce8]
cwde
or ecx, eax
mov word [0x436ff4], cx
dec dword [0x435ce8]
add dword [0x43630c], 0x201080
add edi, 2
mov eax, dword [0x4359a0]
movzx edx, word [esi]
and eax, 0x5baa342f
cmp eax, 0x12583ab2
jg 0x40762c
dec dword [0x4352a8]
mov ecx, dword [0x4352a8]
movzx eax, word [0x43674a]
or ecx, 0x87743b56
xor ecx, eax
mov word [0x43674a], cx
jmp 0x407647
mov eax, dword [0x4364e4]
and eax, 0xcf079a59
cmp eax, 0x2f40d81f
jne 0x407647
xor dword [0x435508], 0xb8ade682
mov ebx, edx
mov dword [ebp + 8], ebx
lea eax, [ebx + 3]
push eax
lea eax, [edi + 0x430190]
push eax
push esi
call fcn.004060a0
movsx eax, word [0x4369f4]
add esp, 0xc
mov ecx, dword [0x4356ac]
sar eax, 1
and ecx, eax
xor ecx, 0x7ed76b7
and dword [0x435bc8], ecx
movsx eax, word [0x436fb4]
not eax
xor eax, 0xa38e7d07
cmp eax, 0xedc1f0f4
je 0x4076b3
mov eax, dword [0x4360a4]
dec dword [0x4360a4]
cmp eax, 0x260c7483
jge 0x4076b3
imul eax, dword [0x435b90], 0xd501026b
mov dword [0x435b90], eax
imul eax, dword [0x43507c], 0x745215b
lea edx, [esi + 3]
add edi, dword [0x4372c8]
add edx, ebx
mov dword [0x43507c], eax
or dword [0x435c3c], 0x83bd4868
cmp esi, edx
je 0x40771b
sub edi, esi
mov ebx, 0xffff89f8
mov word [0x437084], bx
mov al, byte [edi + esi]
xor byte [esi], al
inc esi
mov eax, dword [0x435ed8]
movsx ecx, word [0x436974]
shl eax, 8
imul ecx, eax
mov eax, dword [0x43644c]
and ecx, 0x8e8a056e
imul eax, ecx
mov dword [0x43644c], eax
cmp esi, edx
jne 0x4076e2
mov ebx, dword [ebp + 8]
dec dword [0x4352e0]
mov eax, dword [0x4352e0]
mov ecx, dword [ebp + 0xc]
imul eax, eax, 0xcdf53b33
or eax, 0xbc93eac2
mov dword [0x4354f8], eax
cmp ecx, ebx
je 0x40779a
xor dword [0x4357c0], 0x34cd0af9
lea esi, [edx - 3]
mov byte [edx], 0
sub ecx, ebx
and dword [0x43517c], 0x8dce5cbc
add dword [0x4363c0], 0x467495fd
mov edi, dword [edx - 3]
xor dword [0x435838], 0x783dfac9
movzx eax, word [0x436f16]
imul eax, eax, 0x99437246
mov dword [ebp + 0xc], ecx
mov word [0x436f16], ax
imul eax, dword [0x4350a0], 0x77eefbdf
mov dword [0x4350a0], eax
jmp 0x4074b0
mov eax, dword [ebp - 4]
pop edi
pop esi
mov dword [0x4366b4], 0x9fbb409d
pop ebx
mov esp, ebp
pop ebp
ret