Function at 0x4728e0
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
xchg ebx, ebx
and esp, 0xfffffff8
add esp, 4
push ebp
xchg edx, edx
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x30
mov esi, esi
cmp byte [0x4c11b4], 0
push esi
push edi
mov dword [esp - 0x18], edi
je 0x473070
mov ecx, dword [ebx + 0xc]
xor eax, eax
xor esi, esi
mov dword [esp - 0xc], esi
mov dword [ebp - 0x30], eax
xor edi, edi
mov dword [ebp - 0x2c], eax
xchg esi, esi
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov dword [esp - 0x3c], esi
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
test ecx, ecx
mov esp, esp
je 0x472987
mov eax, dword [ebx + 8]
add eax, 0xfffffffb
cmp eax, 0x53
mov dword [esp - 0x38], 0x51681650
ja case.0x472961.6
movzx eax, byte [eax + 0x4730bf]
jmp dword [eax*4 + 0x4730ab]
mov edi, dword [ebx + 0x10]
push edi
call fcn.00490fd0
xchg edi, edi
mov esi, eax
add esp, 4
mov dword [ebp - 0x30], esi
mov dword [esp - 0x44], esi
test esi, esi
je 0x472c20
mov ecx, dword [0x4c1058]
lea eax, [ebp - 0x18]
xchg ebp, ebp
xor ecx, dword [0x4c0968]
nop
mov dword [esp - 4], 0xa77cd3e
add dword [esp - 4], 0x6cb298ec
mov dword [esp - 0x20], esi
sub dword [esp - 4], 0x68bcbb0b
add dword [esp - 4], 0x59412458
xor dword [esp - 4], 0x539e90d4
mov ebx, ebx
xor dword [esp - 4], 0x4cab2e31
sub dword [esp - 4], 0x789b7192
sub esp, 4
push eax
mov dword [esp - 0x10], esi
nop
sub esp, 4
mov dword [esp], 0x7551a057
xor dword [esp], 0x3b59f14f
mov dword [esp - 0x40], 0x4f7ebd0d
add dword [esp], 0x29107
add dword [esp], 0x871ba23
sub dword [esp], 0x375bb759
mov dword [esp - 0x2c], 0xb025977
xor dword [esp], 0x5a451756
xor dword [esp], 0x4565f3bf
push edi
nop
xchg ebp, ebp
sub esp, 4
mov dword [esp], 0x27a1dde
add dword [esp], 0x5e150f88
mov dword [esp - 0x1c], 0x66783f61
sub dword [esp], 0x14cf63e9
add dword [esp], 0x18f2afc9
sub dword [esp], 0x2ef8553b
xchg ecx, ecx
xor dword [esp], 0x35ba240b
push esi
mov esi, dword [ebx + 8]
mov eax, esi
mov dword [esp - 0x44], 0x5a72aeb2
cdq
push edx
push eax
mov eax, ecx
xchg esp, esp
cdq
nop
sub esp, 4
mov dword [esp], 0x61cecfdc
mov edi, edi
xor dword [esp], 0x5f322780
xor dword [esp], 0x4c38b78e
sub dword [esp], 0x3ef6a793
mov ebp, ebp
xor dword [esp], 0x58c12cbd
sub dword [esp], 0x6b0c947e
push edx
push eax
mov dword [esp - 0x3c], esp
call fcn.0048ce10
mov edx, dword [ebx + 0xc]
add esp, 0x2c
mov ecx, ecx
mov edi, eax
mov dword [ebp - 0x10], edi
test edx, edx
je 0x472bd2
mov dword [esp - 0xc], ecx
cmp esi, 5
je 0x472d5b
cmp esi, 0xb
mov dword [esp - 0x18], 0x7e36605d
jne 0x472bd2
test edi, edi
js 0x472bc3
xchg ecx, ecx
mov eax, dword [ebp - 0x30]
mov eax, dword [eax]
mov dword [ebp - 4], eax
mov dword [esp - 0x3c], edx
mov dword [edx], eax
test eax, eax
je 0x472bc3
xchg ebp, ebp
xor edi, edi
lea esi, [edx + 0x10]
jmp 0x472b11
mov ecx, dword [ebp - 0x30]
add ecx, edi
mov eax, dword [ecx + 0x18]
mov ecx, ecx
mov dword [esi - 4], eax
mov eax, dword [ecx + 0x20]
mov dword [esi], eax
mov eax, dword [ecx + 0x24]
mov dword [esp - 0x30], 0x35a60c24
mov dword [esi + 4], eax
movzx eax, word [ecx + 0x28]
mov word [esi + 8], ax
movzx eax, word [ecx + 0x2a]
mov dword [esp - 0x20], 0x492dab65
mov word [esi + 0xa], ax
movzx eax, word [ecx + 0x2c]
mov word [esi + 0xc], ax
mov dword [esp - 0x28], 0x3cc39ab7
movzx eax, word [ecx + 0x2e]
mov word [esi + 0xe], ax
lea eax, [ecx + 0x30]
push eax
xchg edi, edi
lea eax, [esi + 0x10]
sub esp, 4
mov dword [esp], 0x7278f8e1
xor dword [esp], 0x7402def4
mov dword [esp - 0xc], ebp
add dword [esp], 0x4e74fb3e
sub dword [esp], 0x51fb5916
add dword [esp], 0x67317080
mov ecx, ecx
sub dword [esp], 0x6a2537bd
push eax
call fcn.00491b70
add esp, 0xc
xchg esi, esi
lea esi, [esi + 0x11c]
add edi, 0x128
sub dword [ebp - 4], 1
xchg esp, esp
jne 0x472b11
mov edi, dword [ebp - 0x10]
push dword [ebp - 0x30]
call fcn.00490e50
mov dword [esp - 0x40], ebx
add esp, 4
mov ecx, dword [ebx + 0x14]
test ecx, ecx
je 0x472be0
xchg edi, edi
mov eax, dword [ebp - 0x18]
mov dword [ecx], eax
mov eax, edi
pop edi
mov dword [esp - 0x20], 0x3b2fff42
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
mov dword [esp - 0x30], 0x24ab3de1
pop ebx
ret 0x10
mov edi, dword [ebx + 0x10]
push edi
mov dword [esp - 0x30], ebp
call fcn.00490fd0
mov esi, eax
add esp, 4
mov ecx, ecx
mov dword [ebp - 0x30], esi
test esi, esi
jne 0x472987
mov dword [esp - 0x24], esp
mov eax, 0x63dc6e87
sub eax, 0x5429f954
sub eax, 0x934f16a
xchg esi, esi
xor eax, 0x1d7c95b7
xor eax, 0xb000481
xor eax, 0xd0011265
xchg edx, edx
pop edi
pop esi
mov esp, ebp
pop ebp
mov dword [esp - 0x34], esp
mov esp, ebx
pop ebx
ret 0x10
mov edi, dword [ebx + 0x10]
mov esi, ecx
jmp 0x472987
cmp dword [ebx + 0x10], 0xc
je 0x472c9e
mov ecx, ecx
mov eax, 0x3a6b349c
add eax, 0x1ea31630
sub eax, 0x2b91fbec
xor eax, 0x544b89f5
mov dword [esp - 0x30], 0x6c11f48c
sub eax, 0x4c94de55
xor eax, 0xeca2e8c4
pop edi
mov dword [esp - 0x24], 0x2bf172c2
pop esi
mov esp, ebp
pop ebp
xchg esi, esi
mov esp, ebx
pop ebx
ret 0x10
mov eax, dword [ecx]
lea esi, [ebp - 0x30]
cdq
mov edx, edx
mov edi, 0x755f2c3
add edi, 0x18a7c563
xor edi, 0x4aedd47b
mov ecx, ecx
sub edi, 0x253ba41a
add edi, 0x1fcc458c
sub edi, 0x4fa10db7
mov dword [ebp - 0x30], eax
xchg ecx, ecx
mov dword [ebp - 0x2c], edx
add ecx, 4
je 0x472987
movzx eax, word [ecx]
mov ebp, ebp
mov word [ebp - 0x28], ax
movzx eax, word [ecx + 2]
mov word [ebp - 0x26], ax
mov ebx, ebx
mov eax, dword [ecx + 4]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], 0x5d61e826
sub dword [ebp - 0x1c], 0x12efc31e
mov dword [esp - 0x34], 0x1e403ee2
sub dword [ebp - 0x1c], 0x47c37418
add dword [ebp - 0x1c], 0x285d17db
sub dword [ebp - 0x1c], 0x2b0bc8cb
jmp 0x472987
mov eax, 0x78c16ee6
sub eax, 0x39cb973b
xor eax, 0x9344192
add eax, 0x3d305921
mov ebx, ebx
add eax, 0x4b0e10a8
pop edi
pop esi
mov esp, ebp
mov dword [esp - 0x10], 0x71fc188a
pop ebp
mov esp, ebx
pop ebx
mov dword [esp - 0x20], 0x4903c971
ret 0x10
test edi, edi
js 0x472bc3
mov dword [esp - 0xc], ebp
mov esi, dword [ebp - 0x30]
mov edi, edx
mov dword [ebp - 0xc], edx
mov dword [esp - 0x14], edx
mov eax, dword [esi]
mov dword [edi], eax
mov eax, dword [esi + 4]
mov ebp, ebp
mov dword [edi + 4], eax
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov dword [edi + 8], eax
mov dword [esp - 0x44], edi
mov dword [edi + 0xc], ecx
mov eax, dword [esi + 0x10]
mov dword [edi + 0x10], eax
mov eax, dword [esi + 0x14]
mov dword [esp - 0x10], esi
mov dword [edi + 0x14], eax
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x1c]
mov dword [edi + 0x18], eax
xchg ecx, ecx
mov dword [edi + 0x1c], ecx
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x24]
xchg esi, esi
mov dword [edi + 0x20], eax
mov dword [edi + 0x24], ecx
mov eax, dword [esi + 0x28]
mov dword [esp - 0x1c], esi
mov ecx, dword [esi + 0x2c]
mov dword [edi + 0x28], eax
mov dword [edi + 0x2c], ecx
mov eax, dword [esi + 0x30]
mov dword [esp - 0x10], esp
mov ecx, dword [esi + 0x34]
mov dword [edi + 0x30], eax
mov dword [edi + 0x34], ecx
mov ebp, ebp
mov ax, word [esi + 0x38]
mov word [edi + 0x38], ax
movzx eax, word [esi + 0x3a]
mov ecx, eax
mov dword [esp - 0x2c], 0x7ff76db1
mov word [edi + 0x3a], ax
mov dword [ebp - 8], ecx
mov ecx, dword [esi + 0x40]
xchg edx, edx
mov eax, ecx
or eax, dword [esi + 0x44]
mov dword [ebp - 4], esi
mov dword [esp - 0x44], ebx
je 0x472e34
sub ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 8]
add ecx, edx
mov ebx, ebx
movzx eax, ax
push eax
mov dword [edi + 0x3c], ecx
push dword [esi + 0x40]
mov dword [esp - 0x3c], 0x759f84fb
push ecx
call fcn.004910c0
add esp, 0xc
jmp 0x472e62
mov dword [edi + 0x3c], 0x3e813e0
xor dword [edi + 0x3c], 0x4927b602
sub dword [edi + 0x3c], 0x7a8b3cf
xor dword [edi + 0x3c], 0x5f704d22
mov dword [esp - 0x40], esp
add dword [edi + 0x3c], 0x1f5816ce
sub dword [edi + 0x3c], 0x3baed5ff
mov eax, dword [esi + 0x48]
mov dword [esp - 0x3c], 0x2f99f814
mov dword [edi + 0x40], eax
mov eax, dword [esi + 0x50]
mov dword [edi + 0x44], eax
mov eax, dword [esi + 0x58]
mov dword [esp - 0x28], edi
mov dword [edi + 0x48], eax
mov eax, dword [esi + 0x60]
mov dword [edi + 0x4c], eax
mov dword [esp - 0x2c], 0x23f20652
mov eax, dword [esi + 0x64]
mov dword [edi + 0x50], eax
mov eax, dword [esi + 0x68]
nop
mov dword [esp - 0x18], 0x427a6c5a
sub esp, 4
mov dword [esp], 0x5723a1c0
xor dword [esp], 0x12e81ebe
mov esp, esp
xor dword [esp], 0x7565e5cd
add dword [esp], 0x14207cf5
xor dword [esp], 0x4cf9a09
xchg esi, esi
sub dword [esp], 0x40014d75
mov dword [edi + 0x54], eax
lea eax, [edi + 0x58]
mov dword [esp - 0x18], 0x7941eb57
nop
sub esp, 4
mov dword [esp], 0x625eeb3d
xor dword [esp], 0x721a0aa
xchg esp, esp
xor dword [esp], 0x68b9f546
add dword [esp], 0x382e10c3
add dword [esp], 0x30fd0247
mov dword [esp - 0x40], 0x2264cd3a
xor dword [esp], 0x4e09644b
sub dword [esp], 0x38f8b590
push eax
call fcn.00491110
mov ebx, ebx
add edi, 0x88
mov dword [ebp - 8], 0x25cab325
xor dword [ebp - 8], 0x380bc1cb
mov dword [esp - 0x28], esp
add dword [ebp - 8], 0x2f025553
sub dword [ebp - 8], 0x653a582
xor dword [ebp - 8], 0x546ad3cf
mov edi, edi
xor dword [ebp - 8], 0x5abc1e7a
xor dword [ebp - 8], 0x48a6ef0a
add esi, 0xc8
mov ecx, 0x12f095c4
xchg edx, edx
xor ecx, 0x43294703
xor ecx, 0x864134a
xor ecx, 0x3c206b40
xor ecx, 0xf95b2b7
mov dword [esp - 0x40], esp
xor ecx, 0x339c8cd0
sub ecx, 0x5994949e
rep movsd dword es:[edi], dword [esi]
mov dword [esp - 0x40], ebp
mov edi, dword [ebp - 0xc]
add esp, 0xc
cmp dword [edi + 4], 0
jbe 0x473050
mov ebp, ebp
mov eax, dword [ebp - 4]
lea esi, [edi + 0xc8]
add eax, 0x108
xchg ecx, ecx
mov ecx, dword [eax - 0x10]
lea esi, [esi + 0x40]
mov edx, dword [eax - 0xc]
mov dword [esp - 0x3c], edx
lea eax, [eax + 0x50]
mov dword [esi - 0x50], ecx
mov dword [esi - 0x4c], edx
mov ebx, ebx
mov ecx, dword [eax - 0x58]
mov edx, dword [eax - 0x54]
mov dword [esi - 0x48], ecx
mov dword [esi - 0x44], edx
xchg edi, edi
mov ecx, dword [eax - 0x50]
mov edx, dword [eax - 0x4c]
mov dword [esi - 0x40], ecx
mov dword [esp - 0x20], esi
mov dword [esi - 0x3c], edx
mov ecx, dword [eax - 0x48]
mov dword [esi - 0x38], ecx
mov ecx, dword [eax - 0x40]
xchg ecx, ecx
mov dword [esi - 0x18], ecx
mov ecx, dword [eax - 0x38]
mov dword [esi - 0x34], ecx
mov ecx, dword [eax - 0x30]
mov esi, esi
mov dword [esi - 0x30], ecx
mov ecx, dword [eax - 0x28]
mov dword [esi - 0x2c], ecx
mov ecx, dword [eax - 0x20]
xchg esi, esi
mov dword [esi - 0x28], ecx
mov ecx, dword [eax - 0x1c]
mov dword [esi - 0x24], ecx
mov ecx, dword [eax - 0x18]
mov dword [esp - 0x3c], 0x356fa185
mov dword [esi - 0x20], ecx
mov ecx, dword [eax - 0x14]
mov dword [esi - 0x1c], ecx
mov dword [esp - 0x44], ebp
mov ecx, dword [ebp - 8]
inc ecx
mov dword [ebp - 8], ecx
cmp ecx, dword [edi + 4]
mov ecx, ecx
jb 0x472fc0
mov esi, dword [ebp - 4]
mov eax, dword [esi]
test eax, eax
mov edx, edx
je 0x472bc0
mov edx, dword [ebx + 0xc]
add esi, eax
mov edi, edi
add edi, dword [edi]
mov dword [ebp - 0xc], edi
jmp 0x472d73
push dword [ebx + 0x14]
mov eax, dword [0x4c1058]
push dword [ebx + 0x10]
mov dword [esp - 0x3c], 0x560792f4
xor eax, dword [0x4c0968]
push dword [ebx + 0xc]
push dword [ebx + 8]
mov ebp, ebp
call eax
pop edi
pop esi
mov ecx, ecx
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
mov dword [esp - 0x34], 0x49a35224
ret 0x10