Function at 0x4766a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4c
push ebx
mov edi, edi
mov ebx, ecx
mov dword [ebp - 0x14], ebx
mov eax, dword [ebx]
test eax, eax
mov dword [esp - 0x34], esp
je 0x4766e6
push eax
call fcn.0046c190
mov dword [ebx], 0x7cd023ef
mov edx, edx
xor dword [ebx], 0x728d76b3
add dword [ebx], 0x20c28fac
add dword [ebx], 0x4ac5e020
xor dword [ebx], 0x1030504d
mov edi, edi
xor dword [ebx], 0x69d59565
push esi
mov esi, dword [ebp + 8]
xor ecx, ecx
mov dword [esp - 0x18], esi
push edi
mov edi, 0x60ed1f1
xor edi, 0x6e659a81
xor edi, 0x23088b74
xchg edx, edx
xor edi, 0x342cfbe
sub edi, 0x2d58c8ca
add edi, 0x1d3513ca
mov dword [esp - 0x34], ecx
sub edi, 0x37fd5ab8
mov eax, dword [esi + 4]
cmp eax, edi
mov dword [esp - 0x20], ebx
jbe 0x476745
mul edi
seto cl
neg ecx
mov dword [esp - 0x40], esi
or ecx, eax
push ecx
call fcn.0048b720
mov esi, esi
add esp, 4
mov ecx, eax
mov eax, dword [esi + 4]
xor edx, edx
xchg esi, esi
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], eax
cmp eax, 2
ja 0x476768
mov dword [esp - 0x34], esi
lea ecx, [ebp - 0x1c]
test eax, eax
je 0x47678b
mov edx, edx
lea esp, [esp]
mov eax, esi
cmp dword [esi + 4], edi
jbe 0x476773
xchg ebp, ebp
mov eax, dword [esi]
mov ax, word [eax + edx*2]
mov word [ecx + edx*2], ax
mov dword [esp - 0x10], 0x6d771eab
inc edx
cmp edx, dword [ebp - 0x18]
jb 0x476768
mov ebp, ebp
nop
mov dword [esp - 4], 0x6f542438
sub dword [esp - 4], 0x27889683
xchg edi, edi
xor dword [esp - 4], 0x73ab5b46
xor dword [esp - 4], 0x142cfef4
xor dword [esp - 4], 0x465fa506
xor dword [esp - 4], 0x4513e3eb
mov dword [esp - 0x24], esi
xor dword [esp - 4], 0x23006eea
sub esp, 4
lea ecx, [ebp - 0x1c]
mov edx, edx
call fcn.00481bf0
mov dword [ebp - 0xc], 0xe4340fa
xor dword [ebp - 0xc], 0x3b19f722
mov dword [esp - 0x28], ebx
xor dword [ebp - 0xc], 0x633c32ee
add dword [ebp - 0xc], 0x22801161
sub dword [ebp - 0xc], 0x6d843211
mov dword [esp - 0x44], edi
xor dword [ebp - 0xc], 0xb626482
nop
mov dword [esp - 4], 0x38f7299b
mov dword [esp - 0x18], 0x500cf7b8
xor dword [esp - 4], 0x5921ffc6
add dword [esp - 4], 0x13e56aa6
sub dword [esp - 4], 0x4919c6d5
xor dword [esp - 4], 0x2967e383
mov dword [esp - 0x30], 0x5c8cbf36
add dword [esp - 4], 0x564a021e
sub dword [esp - 4], 0x5c0f9bc3
sub esp, 4
cmp ax, 0x5c
xchg ebx, ebx
je 0x47692a
mov dword [ebp + 8], 0x290e2764
add dword [ebp + 8], 0x4c1c6f58
xor dword [ebp + 8], 0x4883653c
mov dword [esp - 0x30], edx
add dword [ebp + 8], 0x20b1a909
sub dword [ebp + 8], 0x267036ae
sub dword [ebp + 8], 0x8aa4abf
mov dword [esp - 0x30], 0xf2f0f5e
mov eax, dword [ebp + 8]
mov dword [ebp + 8], eax
call fcn.0048b720
mov dword [esp - 0x28], 0x1338ec8f
xor edx, edx
mov dword [ebp - 0x10], eax
add esp, 4
xchg ecx, ecx
cmp dword [ebp - 0xc], edx
jbe 0x4768d0
nop
movsx cx, byte [ebp + edx + 8]
xchg ebx, ebx
mov word [eax + edx*2], cx
inc edx
cmp edx, dword [ebp - 0xc]
jb 0x4768ba
mov dword [esp - 0x20], ebp
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x10]
xchg esp, esp
push eax
lea eax, [ebp - 8]
push eax
call fcn.00480d90
mov dword [esp - 0x28], 0x661571ae
add esp, 0xc
lea ecx, [ebp - 0x1c]
push eax
mov dword [esp - 0x40], 0x5e4149e4
call fcn.00480bb0
cmp dword [ebp - 4], edi
jbe 0x476919
mov edx, edx
push dword [ebp - 8]
call fcn.0048b6f0
add esp, 4
mov dword [esp - 0x20], 0x47751356
cmp dword [ebp - 0xc], edi
jbe 0x476c41
push dword [ebp - 0x10]
jmp 0x476c31
mov dword [ebp + 8], 0x1a03f753
add dword [ebp + 8], 0x1c0970e0
xor dword [ebp + 8], 0x20c33b4e
mov ebp, ebp
add dword [ebp + 8], 0xf8ed6df
add dword [ebp + 8], 0x8f34dc0
mov eax, dword [ebp + 8]
mov dword [ebp + 8], eax
xchg esp, esp
call fcn.0048b720
xor edx, edx
mov dword [ebp - 0x10], eax
add esp, 4
mov dword [esp - 0x38], esi
cmp dword [ebp - 0xc], edx
jbe 0x47698a
lea ecx, [ecx]
mov dword [esp - 0x2c], 0xc09c991
movsx cx, byte [ebp + edx + 8]
mov word [eax + edx*2], cx
inc edx
cmp edx, dword [ebp - 0xc]
mov ebx, ebx
jb 0x476978
nop
mov dword [esp - 4], 0x6f70b5a5
xor dword [esp - 4], 0x596c4b71
xchg ecx, ecx
add dword [esp - 4], 0x2f21a5a
add dword [esp - 4], 0x169f04c7
sub dword [esp - 4], 0x4fae1df5
sub esp, 4
mov ebp, ebp
lea eax, [ebp - 0x10]
push eax
nop
mov dword [esp - 0x34], 0xb5180e9
sub esp, 4
mov dword [esp], 0x38dec907
xor dword [esp], 0x418a7c51
xchg ebx, ebx
xor dword [esp], 0x5ada6764
sub dword [esp], 0xbe45a6e
add dword [esp], 0x2c1921e5
xchg ebx, ebx
sub dword [esp], 0x43c399a5
nop
sub esp, 4
mov dword [esp - 0x38], 0x50ab8484
mov dword [esp], 0x55537173
sub dword [esp], 0x42f0c770
xor dword [esp], 0x1a273a06
mov dword [esp - 0x14], 0x18cdc39f
xor dword [esp], 0x739d3ce9
sub dword [esp], 0x77737d0c
sub dword [esp], 0x4652fe0
lea eax, [ebp - 8]
mov dword [esp - 0x34], 0x7cd6361e
push eax
lea ecx, [ebp - 0x1c]
call fcn.00481a10
push eax
xchg esp, esp
call fcn.00481830
add esp, 0xc
test eax, eax
sete bl
mov dword [esp - 0x34], 0x5919e255
cmp dword [ebp - 4], edi
jbe 0x476a76
push dword [ebp - 8]
mov dword [esp - 0x3c], edx
call fcn.0048b6f0
add esp, 4
cmp dword [ebp - 0xc], edi
jbe 0x476a8e
mov dword [esp - 0x18], 0x2a31da95
push dword [ebp - 0x10]
call fcn.0048b6f0
add esp, 4
test bl, bl
mov edx, edx
je 0x476c41
mov dword [ebp + 8], 0x1a158739
xor dword [ebp + 8], 0xba66c6
mov dword [esp - 0x3c], esp
xor dword [ebp + 8], 0x6404de92
xor dword [ebp + 8], 0x58384462
add dword [ebp + 8], 0x8ada00d
mov dword [esp - 0xc], esp
mov eax, dword [ebp + 8]
nop
sub esp, 4
mov dword [esp], 0x792d72ac
mov dword [esp - 0x28], edx
sub dword [esp], 0x1fe46b79
xor dword [esp], 0x602fc4f6
add dword [esp], 0x2523dd1f
mov ebp, ebp
sub dword [esp], 0x2c8128f2
sub dword [esp], 0xb5d08c7
sub dword [esp], 0x26ac6f23
mov esp, esp
mov dword [ebp + 8], eax
mov dword [ebp - 0xc], 0x6fea86f9
xor dword [ebp - 0xc], 0x45ef5841
add dword [ebp - 0xc], 0xf904d3
xchg ecx, ecx
sub dword [ebp - 0xc], 0x8d4f151
xor dword [ebp - 0xc], 0x2229f23e
call fcn.0048b720
xor edx, edx
mov dword [esp - 0x14], 0x169d77b7
mov dword [ebp - 0x10], eax
add esp, 4
cmp dword [ebp - 0xc], edx
mov dword [esp - 0x30], 0x2e28e0ea
jbe 0x476b61
movsx cx, byte [ebp + edx + 8]
mov word [eax + edx*2], cx
inc edx
mov dword [esp - 0x20], edi
cmp edx, dword [ebp - 0xc]
jb 0x476b4d
nop
mov ecx, ecx
sub esp, 4
mov dword [esp], 0xc8c950a
xor dword [esp], 0x65ace937
xor dword [esp], 0x8af0604
mov dword [esp - 0x30], ebp
sub dword [esp], 0x4edfa7ec
sub dword [esp], 0x12afd24e
nop
mov dword [esp - 0x14], 0x68b48a8e
sub esp, 4
mov dword [esp], 0x4a1e56ba
add dword [esp], 0x22049787
mov dword [esp - 0x20], 0xc162401
sub dword [esp], 0x1ddf06d
xor dword [esp], 0x24ed1041
xor dword [esp], 0x4ea9ed91
mov dword [esp - 0x40], 0x3f4bbad7
lea eax, [ebp - 0x24]
push eax
lea ecx, [ebp - 0x1c]
xchg ebx, ebx
call fcn.00481a10
push eax
lea eax, [ebp - 0x10]
mov dword [esp - 0x44], esi
push eax
lea eax, [ebp - 8]
push eax
mov dword [esp - 0x1c], ebx
call fcn.00480d90
add esp, 0xc
lea ecx, [ebp - 0x1c]
push eax
mov ebx, ebx
call fcn.00480bb0
cmp dword [ebp - 4], edi
jbe 0x476c13
mov dword [esp - 0x10], edx
push dword [ebp - 8]
call fcn.0048b6f0
add esp, 4
cmp dword [ebp - 0xc], edi
mov dword [esp - 0x40], edx
jbe 0x476c29
push dword [ebp - 0x10]
call fcn.0048b6f0
add esp, 4
mov ebx, ebx
cmp dword [ebp - 0x20], edi
jbe 0x476c41
push dword [ebp - 0x24]
call fcn.0048b6f0
mov dword [esp - 0x28], 0x2637abfa
add esp, 4
mov eax, dword [ebp - 0x18]
xor ecx, ecx
mov dword [esp - 0x44], ebx
inc eax
mul edi
seto cl
neg ecx
mov dword [esp - 0x18], esp
or ecx, eax
push ecx
call fcn.0048b720
mov dword [esp - 0x28], 0x308ef0c2
mov dword [ebp - 0xc], eax
lea ebx, [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
cmp eax, 2
mov dword [esp - 0x30], ecx
mov dword [ebp + 8], eax
cmova ebx, dword [ebp - 0x1c]
xor ecx, ecx
inc eax
mov dword [esp - 0x30], 0x10e60279
mul edi
seto cl
neg ecx
or ecx, eax
xchg edx, edx
push ecx
call fcn.0048b720
mov esi, eax
add esp, 8
mov esi, esi
mov eax, dword [ebp + 8]
xor edi, edi
mov dword [ebp - 4], esi
test eax, eax
mov ebx, ebx
je 0x476d0e
mov edx, esi
sub ebx, esi
mov dword [esp - 0x20], ebx
mov esi, eax
nop
mov ecx, edi
xchg ecx, ecx
lea edx, [edx + 2]
and ecx, 3
mov eax, 0x41c20502
xor eax, 0x6182c509
xchg ebx, ebx
xor eax, 0x3c9410b3
add eax, 0x4312b745
sub eax, 0x44305677
mov dword [esp - 0x24], 0x1493dcd1
add eax, 0x57c6f2ba
shl ecx, 3
inc edi
sar eax, cl
xchg edi, edi
cbw
xor ax, word [ebx + edx - 2]
mov word [edx - 2], ax
cmp edi, esi
mov dword [esp - 0x3c], esp
jb 0x476cb9
mov esi, dword [ebp - 4]
mov eax, dword [ebp + 8]
xchg ebx, ebx
mov edi, dword [ebp - 0xc]
xor ecx, ecx
mov word [esi + eax*2], cx
mov dword [esp - 0x3c], esi
mov eax, dword [ebp - 0x18]
push esi
inc eax
push eax
mov ebx, ebx
push edi
call fcn.0048c0a0
push esi
call fcn.0048b6f0
mov dword [esp - 0x38], 0x22ff9c75
add esp, 0x10
lea eax, [ebp - 0x2c]
push edi
push eax
mov dword [esp - 0x24], esp
mov eax, dword [0x4ba978]
xor eax, dword [0x4ba958]
call eax
mov dword [esp - 0x10], edx
nop
mov dword [esp - 4], 0x7564cf21
sub dword [esp - 4], 0x31649500
mov edi, edi
add dword [esp - 4], 0x17cfa805
sub dword [esp - 4], 0x4388f02c
add dword [esp - 4], 0x61d98f7b
sub dword [esp - 4], 0x5829ed65
xchg edx, edx
sub dword [esp - 4], 0x21f69410
sub esp, 4
nop
mov dword [esp - 4], 0xd04cc12
xchg ebx, ebx
xor dword [esp - 4], 0x11a2d84b
add dword [esp - 4], 0x4e1d0859
sub dword [esp - 4], 0x4376d7e8
mov dword [esp - 0x44], edi
sub dword [esp - 4], 0x274c44ca
sub esp, 4
push dword [ebp + 0x1c]
mov esi, dword [ebp - 0x14]
mov ebx, ebx
lea eax, [ebp - 0x2c]
push dword [ebp + 0x18]
mov dword [ebp - 0x44], eax
lea eax, [ebp - 0x34]
mov dword [esp - 0x44], 0x73204a8b
push dword [ebp + 0x14]
mov dword [ebp - 0x4c], 0x7396fca3
xor dword [ebp - 0x4c], 0x3035d57b
mov dword [esp - 0x1c], 0xe4de1cc
sub dword [ebp - 0x4c], 0x180d98bb
sub dword [ebp - 0x4c], 0x113deddb
sub dword [ebp - 0x4c], 0x2721a23
sub dword [ebp - 0x4c], 0x17e58907
xchg edi, edi
push dword [ebp + 0x10]
mov dword [ebp - 0x48], 0x517fcad9
add dword [ebp - 0x48], 0x89132c5
mov dword [esp - 0x40], 0x502dc305
add dword [ebp - 0x48], 0x258360f0
xor dword [ebp - 0x48], 0x5d519116
xor dword [ebp - 0x48], 0x49cf334e
mov ecx, ecx
sub dword [ebp - 0x48], 0x6b0afcd6
nop
mov dword [esp - 4], 0x5fe92e45
sub dword [esp - 4], 0x1f017510
mov esi, esi
add dword [esp - 4], 0x1cff2141
sub dword [esp - 4], 0x71f397c
sub dword [esp - 4], 0x56c7a0fa
sub esp, 4
mov esi, esi
push eax
lea eax, [ebp - 0x4c]
mov dword [ebp - 0x40], 0x68984d2
mov dword [esp - 0x18], 0x7151e864
sub dword [ebp - 0x40], 0x2fd74a3
xor dword [ebp - 0x40], 0x5bc009e6
sub dword [ebp - 0x40], 0x4e46707f
xor dword [ebp - 0x40], 0xa05a90a
mov edx, edx
push eax
push dword [ebp + 0xc]
mov dword [ebp - 0x3c], 0x84a1ed1
mov dword [esp - 0x3c], esp
add dword [ebp - 0x3c], 0x4d825b1f
add dword [ebp - 0x3c], 0x13183e4f
sub dword [ebp - 0x3c], 0x664f80d4
mov ebx, ebx
sub dword [ebp - 0x3c], 0x295376b
push esi
mov dword [ebp - 0x38], 0x2f4aa181
xor dword [ebp - 0x38], 0x12762c21
mov dword [esp - 0x14], ebp
xor dword [ebp - 0x38], 0x7690ef77
add dword [ebp - 0x38], 0x6d6950a
xor dword [ebp - 0x38], 0x50dc1217
sub dword [ebp - 0x38], 0x25ee5f6
mov dword [esp - 0x10], ebp
call fcn.0046c220
mov ebx, eax
cmp ebx, 0x103
jne 0x476fbb
mov dword [esp - 0x20], edi
nop
mov dword [esp - 4], 0x538778cc
sub dword [esp - 4], 0x287a4c90
mov dword [esp - 0x3c], ecx
add dword [esp - 4], 0x4abf98a5
sub dword [esp - 4], 0xd9ded29
xor dword [esp - 4], 0x163f0a5d
mov dword [esp - 0x30], 0x1f38cdfe
xor dword [esp - 4], 0x7e11dde5
sub esp, 4
nop
mov dword [esp - 4], 0x6b1b3f44
xchg ebx, ebx
xor dword [esp - 4], 0x6391d687
add dword [esp - 4], 0x5e1680fc
xor dword [esp - 4], 0x6f290a7f
add dword [esp - 4], 0x30903784
xchg esi, esi
add dword [esp - 4], 0x1d264b0c
sub dword [esp - 4], 0x573ee350
sub esp, 4
push dword [esi]
xchg edx, edx
call fcn.00470850
mov ebx, eax
test ebx, ebx
mov esi, esi
cmovns ebx, dword [ebp - 0x34]
mov eax, dword [0x4ba9b8]
xor eax, dword [0x4ba958]
push ebx
mov dword [esp - 0x24], edx
call eax
push eax
mov eax, dword [0x4bab28]
mov dword [esp - 0x40], 0x2418fec9
xor eax, dword [0x4ba958]
call eax
shr ebx, 0x1f
push edi
xchg ebp, ebp
xor bl, 1
call fcn.0048b6f0
add esp, 4
mov ebp, ebp
cmp dword [ebp - 0x18], 2
pop edi
pop esi
jbe 0x477013
xchg esi, esi
push dword [ebp - 0x1c]
call fcn.0048b6f0
add esp, 4
mov dword [esp - 0x24], 0x4960d95c
mov al, bl
pop ebx
mov esp, ebp
pop ebp
xchg esi, esi
ret 0x18