Function at 0x455d08
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2b4
push ebx
push esi
push edi
mov esi, ecx
call fcn.00459f77
mov eax, dword [ebp + 8]
push 0x1001c274
mov dword [esi + 0x10], eax
call dword [0x10017150]
mov ebx, 0x104
lea edi, [esi + 0x19]
push ebx
push edi
push 0
call dword [0x1001708c]
push edi
call dword [0x1001729c]
pop ecx
mov edi, 0x1001f8c0
mov ecx, edi
call fcn.00454bc2
push 0x1001c7b8
mov ecx, edi
call fcn.00455804
and byte [ebp - 0xac], 0
push 0x18
mov dword [ebp - 4], eax
pop ecx
xor eax, eax
lea edi, [ebp - 0xab]
rep stosd dword es:[edi], eax
and byte [ebp - 0x2b4], 0
push 0x40
stosw word es:[edi], ax
stosb byte es:[edi], al
pop ecx
xor eax, eax
lea edi, [ebp - 0x2b3]
and byte [ebp - 0x1b0], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push 0x40
xor eax, eax
pop ecx
lea edi, [ebp - 0x1af]
rep stosd dword es:[edi], eax
and byte [ebp + 0xb], 0
push ebx
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x1b0]
push eax
call dword [0x100170ec]
mov eax, dword [0x1002227c]
cmp eax, 2
je 0x455dce
cmp eax, 3
je 0x455dce
push 0x1001c7ac
jmp 0x455dd3
push 0x1001c79c
lea eax, [ebp - 0x1b0]
push eax
call fcn.004669ea
pop ecx
lea eax, [ebp - 0x1b0]
pop ecx
push eax
call dword [0x10017078]
cmp eax, 0xffffffff
je 0x455e00
lea eax, [ebp - 0x1b0]
push eax
call dword [0x1001706c]
xor ebx, ebx
lea eax, [ebp - 0x2b4]
push ebx
push eax
call fcn.0045a120
lea eax, [ebp - 0x2b4]
push 0x1001c798
push eax
call dword [0x10017230]
mov edi, eax
add esp, 0x10
cmp edi, ebx
je 0x455e61
push 2
push 0xffffffffffffff9c
push edi
call dword [0x10017298]
push edi
push 0x64
lea eax, [ebp - 0xac]
push 1
push eax
call dword [0x10017284]
push edi
call dword [0x10017204]
add esp, 0x20
xor eax, eax
xor byte [ebp + eax - 0xac], 0x87
inc eax
cmp eax, 0x64
jl 0x455e53
cmp byte [ebp - 0xac], 0x11
je 0x455fbd
lea eax, [ebp - 0xac]
push eax
call fcn.00466936
test eax, eax
pop ecx
je 0x455fbd
lea eax, [ebp - 0xac]
push eax
call fcn.00455ce3
mov ebx, dword [0x10017248]
lea eax, [ebp - 0xac]
mov dword [esp], 0x1001c794
push eax
call ebx
mov edi, eax
pop ecx
test edi, edi
pop ecx
je 0x455ed0
mov cl, byte [edi + 3]
add edi, 3
xor eax, eax
cmp cl, 0x2c
je 0x455ec8
mov byte [esi + eax + 0x2108], cl
mov cl, byte [edi + eax + 1]
inc eax
jmp 0x455eb5
and byte [eax + esi + 0x2108], 0
lea eax, [esi + 0x2108]
push 0x1001c78c
push eax
call fcn.00466936
pop ecx
add eax, edi
push eax
call ebx
pop ecx
test eax, eax
pop ecx
je 0x455f0f
mov dl, byte [eax + 5]
add eax, 5
xor ecx, ecx
test dl, dl
je 0x455f07
mov byte [esi + ecx + 0x2130], dl
mov dl, byte [eax + ecx + 1]
inc ecx
jmp 0x455ef5
and byte [ecx + esi + 0x2130], 0
and byte [ebp - 0x48], 0
push 9
pop ecx
xor eax, eax
lea edi, [ebp - 0x47]
push 0x1001c788
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0xac]
push eax
call ebx
pop ecx
test eax, eax
pop ecx
je 0x455fbb
mov cl, byte [eax + 3]
add eax, 3
xor edi, edi
cmp cl, 0x2c
je 0x455f57
lea edx, [ebp - 0x48]
sub edx, eax
mov byte [edx + eax], cl
mov cl, byte [eax + 1]
inc edi
inc eax
cmp cl, 0x2c
jne 0x455f4a
and byte [ebp + edi - 0x48], 0
cmp byte [0x1001fee5], 0
jne 0x455fbb
lea eax, [ebp - 0x48]
push eax
push 0x1001fee5
call fcn.004669ea
lea eax, [ebp - 0x48]
xor edi, edi
push eax
call fcn.00466936
add esp, 0xc
test eax, eax
jbe 0x455f99
xor byte [ebp + edi - 0x48], 0xfe
lea eax, [ebp - 0x48]
push eax
inc edi
call fcn.00466936
cmp edi, eax
pop ecx
jb 0x455f85
lea eax, [ebp - 0x48]
push eax
call fcn.00466936
and byte [ebp + eax - 0x48], 0
pop ecx
lea eax, [ebp - 0x48]
mov ecx, 0x1001f8c0
push eax
push 0x1001c548
call fcn.00455619
xor ebx, ebx
cmp dword [ebp - 4], ebx
je 0x45604d
push 0x1001c778
push dword [ebp - 4]
call fcn.00466aa0
pop ecx
test eax, eax
pop ecx
je 0x45604d
push dword [ebp - 4]
call fcn.00466936
cmp eax, 0xc
pop ecx
jne 0x45603a
and byte [ebp - 0xc], 0
xor eax, eax
lea edi, [ebp - 0xb]
lea ebx, [esi + 0x20fc]
stosd dword es:[edi], eax
mov edi, dword [ebp - 4]
mov dword [ebp + 8], 6
movsx eax, byte [edi + 1]
push eax
movsx eax, byte [edi]
push eax
lea eax, [ebp - 0xc]
push 0x1001c770
push eax
call dword [0x1001727c]
push ebx
lea eax, [ebp - 0xc]
push 0x1001c76c
push eax
call dword [0x10017290]
add esp, 0x1c
inc edi
inc edi
inc ebx
dec dword [ebp + 8]
jne 0x456001
mov byte [ebp + 0xb], 1
xor ebx, ebx
push dword [ebp - 4]
call fcn.004668e4
cmp byte [ebp + 0xb], 0
pop ecx
jne 0x4560dd
lea ebx, [esi + 0x124]
mov ecx, ebx
call fcn.0045bfcf
and byte [ebp - 0x20], 0
xor eax, eax
lea edi, [ebp - 0x1f]
mov ecx, ebx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea edi, [esi + 0x20fc]
push edi
call fcn.0045c52e
test al, al
je 0x4560b8
movzx eax, byte [esi + 0x2101]
push eax
movzx eax, byte [esi + 0x2100]
push eax
movzx eax, byte [esi + 0x20ff]
push eax
movzx eax, byte [esi + 0x20fe]
push eax
movzx eax, byte [esi + 0x20fd]
push eax
movzx eax, byte [edi]
push eax
lea eax, [ebp - 0x20]
push 0x1001c750
push eax
call dword [0x10017350]
add esp, 0x20
jmp 0x4560c8
lea eax, [ebp - 0x20]
push 0x1001c778
push eax
call fcn.004668f0
pop ecx
pop ecx
lea eax, [ebp - 0x20]
mov ecx, 0x1001f8c0
push eax
push 0x1001c7b8
call fcn.0045551a
xor ebx, ebx
push ebx
push ebx
push 1
push ebx
call dword [0x100170a8]
cmp eax, ebx
mov dword [esi + 0x2104], eax
je 0x45611f
mov edi, dword [0x100170a0]
lea eax, [ebp - 0x10]
push eax
push ebx
push ebx
push 0x10005d75
push ebx
push ebx
mov dword [ebp - 0x10], ebx
call edi
mov dword [esi + 8], eax
lea eax, [ebp - 0x10]
push eax
push ebx
push ebx
push 0x10006526
push ebx
push ebx
call edi
mov dword [esi + 4], eax
pop edi
pop esi
pop ebx
leave
ret 4