Function at 0x405730
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
movzx eax, word [0x44be0c]
or eax, 0x6f57b9a0
mov word [0x44be0c], ax
push ebx
or ebx, 0xffffffff
add dword [0x441154], ebx
mov eax, dword [0x441154]
mov ecx, dword [0x441360]
mov edx, dword [0x43f5ec]
imul eax, ecx
add dword [0x441360], ebx
xor edx, eax
cmp edx, 0xffee7cfd
push esi
push edi
jg 0x4057c6
add word [0x44dc2e], bx
mov ax, word [0x44af4e]
movsx ecx, ax
mov eax, dword [0x43eb60]
sar ecx, 7
and eax, ecx
mov cx, word [0x44dc2e]
movsx edx, cx
imul edx, edx, 0x7f4881bd
xor eax, 0xfbdc4298
cmp eax, edx
jle 0x4057c6
mov eax, dword [0x43e7c0]
movzx ecx, word [0x44a448]
not eax
imul eax, eax, 0xa539121a
xor ecx, eax
mov word [0x44a448], cx
mov edx, dword [0x4373a0]
sub edx, 0x760054e
cmp edx, 0x668f2d0e
je 0x4057ec
movzx eax, word [0x44b60e]
sub eax, 0x55cd4f6b
mov word [0x44b60e], ax
mov ecx, dword [0x43baf4]
mov edx, dword [ebp + 0xc]
add edx, 4
and ecx, 0x6c10ded4
mov dword [0x437c6c], ecx
push edx
call fcn.00416f00
mov esi, eax
mov eax, dword [0x4393cc]
mov ecx, dword [0x440450]
add eax, 0xe2ebcba8
and ecx, eax
add esp, 4
cmp ecx, 0x3a37d654
jge 0x405858
add dword [0x438bf0], ebx
add word [0x44bcca], bx
mov dx, word [0x44bcca]
mov ecx, dword [0x438bf0]
movsx eax, dx
or ecx, eax
cmp ecx, ebx
jge 0x405882
mov dword [0x43a254], 0x45c47cd3
jmp 0x405882
mov dx, word [0x4472c6]
movsx eax, dx
imul eax, eax, 0xd2518fc6
xor eax, 0xad741772
cmp eax, 0x6de04382
jl 0x40587c
mov ecx, dword [0x43bb1c]
jmp 0x405882
mov edx, dword [0x4419bc]
add dword [0x44226c], 0xccbf3d2f
mov edi, dword [ebp + 8]
mov dword [ebp - 4], esi
jmp 0x4058a0
mov eax, dword [0x43c198]
mov ecx, 1
add dword [0x43c198], ecx
or eax, 0xb9061148
cmp eax, 0xd93f7f8d
jg 0x4058dc
mov edx, dword [0x440ec4]
add dword [0x440ec4], ebx
mov eax, 0x671f77c6
sub eax, edx
cmp eax, 0x1e8da281
jge 0x4058dc
mov edx, dword [0x4377a4]
mov al, byte [edi + section..data]
mov byte [esi], al
mov dx, word [0x44b622]
movsx eax, dx
xor eax, 0x858400
or eax, 0x9d526a67
cmp eax, 0x6de5b7bf
je 0x40591f
mov eax, dword [0x43b8e4]
mov edx, dword [0x438238]
xor eax, 0x898e23d
or edx, eax
mov dword [0x43acd8], edx
add dword [0x43b8e4], ebx
jmp 0x405929
add dword [0x43bdb0], 0x6d62587b
mov eax, dword [0x44e5cc]
mov dl, byte [eax + edi]
xor byte [esi], dl
mov eax, dword [0x43e9c0]
add eax, 0x25bc9bb
xor dword [0x444a60], eax
xor dword [0x43d014], 0x8a04100
mov al, byte [edi + ecx + section..data]
add edi, ecx
add esi, ecx
mov dword [0x43e288], 0x5c95a26c
mov byte [esi], al
add dword [0x43e100], ecx
mov edx, dword [0x43e100]
imul edx, edx, 0xb0e7886d
cmp edx, 0x217c340e
jne 0x40598a
add dword [0x444158], 0x162215a9
jmp 0x4059c5
add word [0x4489b6], cx
mov ax, word [0x4489b6]
movsx edx, ax
cmp edx, 0x8aac85ec
jle 0x4059c5
mov ax, word [0x44c1da]
mov edx, dword [0x43f0bc]
cwde
shl eax, 4
sub eax, 0x25c57f49
xor eax, 0x3d51f549
imul edx, eax
mov dword [0x43f0bc], edx
mov eax, dword [0x44e5cc]
mov dl, byte [eax + edi]
xor byte [esi], dl
add dword [0x443864], 0x78ca10c9
mov ax, word [0x44a4da]
movsx edx, ax
sub edx, 0xdfc3b00
sub esi, ecx
cmp edx, 0x2f080e81
jge 0x4059fc
add dword [0x4447e4], 0x9a2d1033
mov ax, word [0x44cf00]
add word [0x44cf00], bx
add edi, ecx
movsx ecx, ax
imul ecx, ecx, 0x6d0855a
xor ecx, 0xb1f07f61
cmp ecx, 0xfa8b983c
jg 0x405a36
movzx edx, word [0x44ab58]
or edx, 0xed1693dd
mov word [0x44ab58], dx
movzx eax, word [esi]
and dword [0x43a34c], 0x785ba4c8
movzx ebx, ax
lea eax, [ebx + 3]
push eax
lea ecx, [edi + section..data]
push ecx
push esi
mov dword [ebp + 8], ebx
call fcn.00421a30
mov edx, dword [0x43942c]
not edx
sub edx, 0x73067a0b
add esp, 0xc
cmp edx, 0xef77ebff
jne 0x405a7f
and dword [0x445378], 0x2cd3bccc
jmp 0x405a89
mov dword [0x438818], 0xefd7dff6
and dword [0x43e7d4], 0x8a983df1
mov edx, dword [0x43914c]
lea ecx, [ebx + esi + 3]
mov ebx, dword [0x440aac]
imul edx, ebx
imul edx, edx, 0x2eec5841
mov dword [0x43914c], edx
mov edx, dword [0x44e5cc]
add edi, edx
mov edx, dword [0x442004]
mov ebx, dword [0x43c5fc]
not edx
add edx, 0x4b76c937
and ebx, edx
cmp ebx, 0x4d45ee2b
mov eax, esi
jle 0x405af9
inc word [0x44e280]
mov dx, word [0x44e280]
movsx edx, dx
cmp edx, 0x39116db3
jne 0x405af9
mov edx, dword [0x44333c]
or ebx, 0xffffffff
cmp esi, ecx
je 0x405b3b
mov edx, dword [0x43963c]
add edx, 0x743f3148
and dword [0x43ef1c], edx
mov dl, byte [edi]
xor byte [eax], dl
mov dx, word [0x4475aa]
mov esi, dword [0x440b64]
movsx edx, dx
sub edx, esi
mov word [0x4475aa], dx
add dword [0x440b64], ebx
inc eax
inc edi
cmp eax, ecx
jne 0x405b00
mov eax, dword [0x4380e8]
mov edx, dword [ebp + 8]
xor eax, 0x91a9d334
mov dword [0x4415c0], eax
cmp dword [ebp + 0xc], edx
je 0x405c4c
mov eax, dword [0x437284]
sar eax, 5
imul eax, eax, 0x6a7158ab
and eax, 0x849ef573
sub dword [0x439ccc], eax
mov byte [ecx], 0
add dword [0x43b67c], ebx
mov eax, dword [0x43b37c]
mov esi, dword [0x43b67c]
sar eax, 5
imul eax, eax, 0xbd7e55ce
xor eax, 0xb05af237
or esi, 0xdf154fe1
cmp eax, esi
jne 0x405ba7
xor dword [0x438bc8], 0x1080252
jmp 0x405bb9
movzx eax, word [0x44e31a]
xor eax, 0x7ed2bb75
mov word [0x44e31a], ax
mov eax, dword [0x4422c8]
shl eax, 6
add eax, 0x65004505
sub ecx, 3
xor eax, 0xfc70be2d
mov dword [0x4412a0], eax
mov edi, dword [ecx]
xor dword [0x43c3fc], 0x30f5bf46
mov eax, dword [0x43a390]
mov esi, ecx
mov ecx, dword [0x43bc60]
sub eax, 0x139e5dd2
xor ecx, 0xb31db2c
and eax, 0x37bca472
sar ecx, 1
cmp eax, ecx
je 0x405c26
movzx eax, word [0x4474f0]
sub dword [ebp + 0xc], edx
add eax, 0x3dc4f8bf
mov word [0x4474f0], ax
add dword [0x43b920], 0x53e1fd34
jmp 0x4058a0
movzx ecx, word [0x44cba6]
sub dword [ebp + 0xc], edx
and ecx, 0xca7e9c2f
mov word [0x44cba6], cx
add dword [0x43b920], 0x53e1fd34
jmp 0x4058a0
mov edx, dword [0x439070]
inc dword [0x439070]
pop edi
pop esi
pop ebx
cmp edx, 0x78a0d629
jne 0x405c7f
mov eax, dword [0x4413e8]
shl eax, 9
cmp eax, 0x7d011b51
mov eax, dword [ebp - 4]
jg 0x405c8c
mov ecx, dword [0x444a0c]
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 4]
mov dword [0x444d0c], 0x9bba92c0
mov esp, ebp
pop ebp
ret