Function at 0x445390
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
xchg ecx, ecx
mov eax, dword [ebp + 8]
push ebx
lea ebx, [ecx + 0x84]
mov ecx, ecx
mov dword [ebp - 8], ecx
push esi
mov dword [eax], 0x509a1e4b
add dword [eax], 0x14b663e7
mov dword [esp - 0x18], 0x7e5383e6
sub dword [eax], 0x57ad7c0
sub dword [eax], 0x46bd95eb
add dword [eax], 0x47b07569
mov dword [esp - 0x30], edi
sub dword [eax], 0x60c889f0
mov dword [eax + 4], 0x744b2ab
xor dword [eax + 4], 0x2ed7168f
add dword [eax + 4], 0x414171
mov ecx, ecx
xor dword [eax + 4], 0x69ef180b
sub dword [eax + 4], 0x6b40ef
sub dword [eax + 4], 0x3fd0bcaf
mov dword [esp - 0x3c], 0x5127e63e
mov dword [eax + 8], 0x14e01991
add dword [eax + 8], 0x5c8b3b05
sub dword [eax + 8], 0x2e8b9d1d
mov ebp, ebp
xor dword [eax + 8], 0x5efb0db6
xor dword [eax + 8], 0x630bddad
sub dword [eax + 8], 0x7f2f6762
mov dword [eax + 0xc], 0x2a3191b3
mov dword [esp - 0x34], edx
add dword [eax + 0xc], 0x217a6854
xor dword [eax + 0xc], 0x2bae5d2c
sub dword [eax + 0xc], 0x4fccb8af
mov esp, esp
sub dword [eax + 0xc], 0x1038ee7b
mov eax, dword [ebx + 4]
mov dword [ebp - 4], eax
mov dword [esp - 0x10], 0x45509b5a
push edi
cmp eax, 2
jbe 0x445479
xchg edi, edi
mov ebx, dword [ebx]
inc eax
mov ecx, 0x707f349c
xor ecx, 0x704cf9d5
mov ecx, ecx
add ecx, 0xedadc3
xor ecx, 0x63931e13
xor ecx, 0x62b2651d
mul ecx
mov esp, esp
pushf
mov ecx, 0x7c3c819c
sub ecx, 0x2bcc18fb
xor ecx, 0x65dba63a
xchg esi, esi
sub ecx, 0x33b3ee1d
add ecx, 0x6d0568e7
sub ecx, 0x47a2462b
xor ecx, 0xd8a4fcc5
xchg esi, esi
popf
cmovb eax, ecx
push eax
call fcn.00490c90
mov edx, edx
mov esi, eax
add esp, 4
mov eax, dword [ebp - 4]
xor edi, edi
xchg esp, esp
mov dword [ebp - 0x14], esi
test eax, eax
je 0x44554f
mov edx, esi
xchg edi, edi
sub ebx, esi
mov esi, eax
lea ebx, [ebx]
mov ecx, edi
mov ebp, ebp
lea edx, [edx + 2]
and ecx, 3
mov eax, 0x57f550d9
sub eax, 0x30a13e9f
mov dword [esp - 0xc], ebx
add eax, 0x3d01ace5
sub eax, 0x11f53c43
xor eax, 0x71232c74
xor eax, 0x58e9ea59
mov dword [esp - 0x28], edi
shl ecx, 3
inc edi
sar eax, cl
cbw
mov dword [esp - 0x40], 0x5b00b894
xor ax, word [edx + ebx - 2]
mov word [edx - 2], ax
cmp edi, esi
jb 0x4454fa
xchg edx, edx
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
xor ecx, ecx
mov dword [esp - 0x1c], edi
mov dword [ebp - 0xc], esi
mov word [esi + eax*2], cx
mov edi, esi
cmp word [esi], cx
xchg edi, edi
je 0x44598e
mov esi, dword [ebp + 8]
nop
mov esi, esi
nop
sub esp, 4
mov dword [esp], 0x222701ae
xor dword [esp], 0x5241a4de
xchg esi, esi
sub dword [esp], 0x502ab071
add dword [esp], 0x59d44fa5
sub dword [esp], 0x8f32279
xor dword [esp], 0x711d2221
xchg ebx, ebx
push edi
call fcn.004915f0
add esp, 8
mov dword [esp - 0x10], esp
mov dword [ebp - 4], eax
test eax, eax
je 0x4455c3
mov dword [esp - 0x30], 0x4f70279d
mov ebx, eax
sub ebx, edi
jmp 0x4455e0
mov ebx, edi
lea ecx, [ebx + 2]
lea ecx, [ecx]
mov dword [esp - 0x10], esi
mov ax, word [ebx]
add ebx, 2
test ax, ax
mov dword [esp - 0x30], esi
jne 0x4455cf
sub ebx, ecx
sar ebx, 1
mov ecx, 0x5b4c090
mov esi, esi
add ecx, 0x6e8f000b
sub ecx, 0x55f01a16
add ecx, 0x1b8c9daf
sub ecx, 0x39e04432
xchg esi, esi
lea edi, [ebx + 1]
mov eax, edi
mul ecx
pushf
mov dword [esp - 0xc], edx
mov ecx, 0x750d02a3
xor ecx, 0x27eaac91
xor ecx, 0x604e1343
add ecx, 0x1785e684
mov dword [esp - 0x10], 0x538a6469
add ecx, 0x26ce30e1
add ecx, 0x8f022b29
popf
mov dword [esp - 0x20], esi
cmovb eax, ecx
push eax
call fcn.00490c90
xchg ecx, ecx
push ebx
push dword [ebp - 0xc]
mov ebx, eax
mov edi, edi
mov dword [ebp - 0x10], eax
push edi
push ebx
mov dword [esp - 0x28], 0x1f4d4066
call fcn.004916c0
mov eax, dword [ebp - 8]
add esp, 0x14
mov dword [esp - 0x10], 0x6a14cc48
cmp byte [eax + 0x98], 0
je 0x44578b
lea ecx, [ebp - 0x24]
push ecx
mov dword [esp - 0x28], 0x6ed79838
mov ecx, eax
call fcn.0045e370
mov ecx, dword [ebp + 0xc]
mov dword [esp - 0x34], 0x58c41ebb
mov edi, eax
push ebx
call fcn.0043e6d0
cmp eax, dword [edi]
mov dword [esp - 0x28], 0xd8a7a46
jle 0x44578b
nop
sub esp, 4
mov dword [esp - 0x2c], esp
mov dword [esp], 0x635d6a49
sub dword [esp], 0x10e3cfb6
sub dword [esp], 0x35062a26
xor dword [esp], 0xc5aad72
mov edi, edi
xor dword [esp], 0x1129dd3f
push ebx
call fcn.00491790
add esp, 8
mov dword [esp - 0x20], 0x1b06eca7
test eax, eax
jne 0x445726
mov eax, ebx
lea edx, [eax + 2]
xchg edx, edx
mov cx, word [eax]
add eax, 2
test cx, cx
mov dword [esp - 0x44], 0x762f5cbd
jne 0x445700
sub eax, edx
sar eax, 1
mov dword [esp - 0x14], edi
cmp eax, 1
jbe 0x44574e
dec eax
lea eax, [ebx + eax*2]
mov ebx, ebx
xor ecx, ecx
mov word [eax], cx
sub eax, ebx
mov ecx, dword [ebp - 0xc]
mov esp, esp
sar eax, 1
lea eax, [ecx + eax*2]
mov dword [ebp - 4], eax
xchg ebx, ebx
mov eax, dword [ebp - 8]
cmp byte [eax + 0x98], 0
jne 0x445681
jmp 0x44578b
mov dword [ebp - 4], 0x3cd62168
add dword [ebp - 4], 0x30d830ed
mov dword [esp - 0x34], 0x55f262a8
sub dword [ebp - 4], 0x1be30bcf
xor dword [ebp - 4], 0x42b978f
sub dword [ebp - 4], 0x16e559ef
add dword [ebp - 4], 0x319c4ac5
mov dword [esp - 0x14], ecx
sub dword [ebp - 4], 0x7097c1df
mov edi, ebx
mov dword [ebp - 0x1c], 0x55d40d6
xchg esi, esi
add dword [ebp - 0x1c], 0xdcf4012
add dword [ebp - 0x1c], 0x2c087cda
xor dword [ebp - 0x1c], 0x58bb28b8
add dword [ebp - 0x1c], 0x6419d47
mov dword [esp - 0xc], esp
sub dword [ebp - 0x1c], 0x45d43519
sub dword [ebp - 0x1c], 0x27fd3da8
lea ecx, [edi + 2]
mov dword [esp - 0x18], edi
mov ax, word [edi]
add edi, 2
test ax, ax
mov dword [esp - 0x34], 0x337e6860
jne 0x4457cb
sub edi, ecx
lea edx, [ebp - 0x1c]
sar edi, 1
mov dword [esp - 0x40], 0x3cc0592b
mov dword [ebp - 0x18], edi
cmp edi, 2
jbe 0x44587c
mov dword [esp - 0x18], 0x4a6baa56
mov ecx, 0x6ad2d3fa
sub ecx, 0x455dd362
add ecx, 0x2e934da7
sub ecx, 0x254d822e
mov ebx, ebx
add ecx, 0x13cd2f67
xor ecx, 0x784962a5
sub ecx, 0x3ace99db
mov dword [esp - 0x14], edx
mov eax, edi
mul ecx
pushf
mov ecx, 0x1a955b30
mov edi, edi
add ecx, 0x3823d3cb
xor ecx, 0x524bab93
add ecx, 0x15d47e6
mov dword [esp - 0x10], ebx
add ecx, 0x46bd915e
xor ecx, 0xb6f2a153
popf
cmovb eax, ecx
mov dword [esp - 0x34], 0x3e531dd9
push eax
call fcn.00490c90
mov edx, eax
add esp, 4
mov esi, esi
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0xc], 0xfd8c03d
add dword [ebp - 0xc], 0x8cbc2f
add dword [ebp - 0xc], 0x4bdc0ccd
mov dword [esp - 0x34], 0x14aead97
xor dword [ebp - 0xc], 0x6361b86a
add dword [ebp - 0xc], 0xc028ff4
xor dword [ebp - 0xc], 0x782d2719
xchg ebx, ebx
sub dword [ebp - 0xc], 0x330fe65e
test edi, edi
je 0x445918
mov ebp, ebp
mov edi, ebx
mov ebx, dword [ebp - 0xc]
sub edi, edx
mov dword [esp - 0x30], esp
lea esp, [esp]
mov ecx, ebx
lea edx, [edx + 2]
xchg esi, esi
and ecx, 3
mov eax, 0x1b849500
xor eax, 0x33dfaec9
xchg edi, edi
xor eax, 0x5fa94dc
xor eax, 0x78e5a1b9
add eax, 0x26663645
shl ecx, 3
mov edx, edx
inc ebx
sar eax, cl
cbw
mov dword [esp - 0x34], 0x25dac089
xor ax, word [edx + edi - 2]
mov word [edx - 2], ax
cmp ebx, dword [ebp - 0x18]
jb 0x4458cc
mov dword [esp - 0x10], ebp
mov ebx, dword [ebp - 0x10]
lea eax, [ebp - 0x1c]
mov ecx, esi
mov dword [esp - 0x20], ebx
push eax
call fcn.00444e20
cmp dword [ebp - 0x18], 2
mov dword [esp - 0x3c], 0x508e8dcb
jbe 0x445944
push dword [ebp - 0x1c]
call fcn.00490c60
add esp, 4
mov dword [esp - 0x10], esi
push ebx
call fcn.00490c60
mov eax, dword [ebp - 4]
add esp, 4
mov dword [esp - 0x30], 0x2df6600c
test eax, eax
je 0x44598b
mov ecx, dword [ebp - 8]
mov dword [esp - 0x18], 0x113e13f9
cmp byte [ecx + 0x98], 0
je 0x44598b
cmp word [eax + 2], 0
xchg esp, esp
lea edi, [eax + 2]
mov dword [ebp - 0xc], edi
jne 0x44556f
mov dword [esp - 0x2c], 0x1e623b2c
mov esi, dword [ebp - 0x14]
push esi
call fcn.00490c60
xchg esp, esp
mov eax, dword [ebp + 8]
add esp, 4
pop edi
pop esi
mov dword [esp - 0x34], 0xde74af3
pop ebx
mov esp, ebp
pop ebp
mov edi, edi
ret 8