Function at 0x1c52d0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xfc
push eax
mov esi, esp
push eax
mov dword [ebp - 0xe8], esp
push eax
sub esp, 0xffc
mov dword [ebp - 0x8c], esp
push eax
mov dword [ebp - 0xf8], esp
push eax
mov dword [ebp - 0xbc], esp
sub esp, 0xa4
mov eax, esp
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0x7c], eax
sub esp, 0xa8
mov eax, esp
mov edi, eax
mov dword [ebp - 0x80], eax
sub esp, 0xe8
mov eax, esp
mov dword [ebp - 0xac], eax
mov dword [ebp - 0x78], eax
sub esp, 0xec
mov eax, esp
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0xe4], eax
sub esp, 0xa4
mov eax, esp
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0x74], eax
sub esp, 0xa8
mov eax, esp
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0xe0], eax
sub esp, 0xa4
mov eax, esp
mov dword [ebp - 0x9c], eax
mov dword [ebp - 0x70], eax
sub esp, 0xa4
mov eax, esp
mov dword [ebp - 0x98], eax
mov dword [ebp - 0xdc], eax
sub esp, 0xa4
mov eax, esp
mov dword [ebp - 0x94], eax
mov dword [ebp - 0xd8], eax
sub esp, 0xa8
mov eax, esp
mov dword [ebp - 0x90], eax
mov dword [ebp - 0xd4], eax
sub esp, 0x14
mov dword [ebp - 0xb8], esp
sub esp, 0x200
mov dword [ebp - 0x34], esp
sub esp, 0x18
mov dword [ebp - 0x18], esp
push eax
mov dword [ebp - 0x30], esp
push eax
sub esp, 0x7fc
mov dword [ebp - 0x24], esp
push eax
mov dword [ebp - 0xf4], esp
push eax
mov dword [ebp - 0x20], esp
sub esp, 0x400
mov dword [ebp - 0x3c], esp
push eax
mov dword [ebp - 0x40], esp
sub esp, 0x14
mov dword [ebp - 0x44], esp
sub esp, 0x18
mov dword [ebp - 0x2c], esp
sub esp, 0x28
mov dword [ebp - 0xc8], esp
mov dword [ebp - 0x68], 0xb748896c
mov dword [ebp - 0x64], 0xb379b579
mov dword [ebp - 0x60], 0xbf41b179
mov dword [ebp - 0x5c], 0xbb44bd40
mov dword [ebp - 0x58], 0xa742b941
mov dword [ebp - 0x54], 0xa35da559
mov dword [ebp - 0x50], 0xaf50a16d
mov word [ebp - 0x4c], 0xadac
mov dword [ebp - 0x4a], 0
mov dword [ebp - 0x14], 0
mov eax, dword [ebp - 0x14]
cmp eax, 0x21
ja 0x1c5497
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
movzx ecx, byte [ebp + ecx - 0x68]
mov edx, eax
xor edx, 0xad9e35e
and eax, 0xad9e35e
lea eax, [edx + eax*2]
xor eax, ecx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
add al, 0x2a
mov ecx, dword [ebp - 0x14]
mov byte [ebp + ecx - 0x68], al
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp eax, 0x22
jb 0x1c5460
lea eax, [ebp - 0xc4]
lea ecx, [ebp - 0x68]
push 0
push 0
push 0x20019
push eax
push ecx
call fcn.001e5b90
add esp, 0x14
shr eax, 0x1f
jmp dword [eax*4 + 0x1ecc54]
push 0
push 0
push 0
push 0
push dword [ebp - 0xe8]
push esi
push 0
push 0
push dword [ebp - 0xc4]
call fcn.001e6010
add esp, 0x24
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x1ecc5c]
jmp dword [0x1ecc6c]
xor eax, eax
jmp 0x1c7519
lea eax, [edi + 0xa0]
mov dword [ebp - 0xcc], eax
add dword [ebp - 0xb0], 0xa0
add dword [ebp - 0xa8], 0xe4
add dword [ebp - 0xac], 0xe4
add dword [ebp - 0xa0], 0xa0
add dword [ebp - 0xa4], 0xa0
add dword [ebp - 0x98], 0xa0
add dword [ebp - 0x9c], 0xa0
add dword [ebp - 0x90], 0xa0
add dword [ebp - 0x94], 0xa0
add edi, 0xa2
mov dword [ebp - 0xd0], edi
mov eax, dword [ebp - 0x2c]
add eax, 0x12
mov dword [ebp - 0x108], eax
mov ecx, dword [ebp - 0x18]
mov eax, ecx
add eax, 2
mov dword [ebp - 0xec], eax
xor edx, edx
xor eax, eax
mov dword [ebp - 0x84], 0
cmp edx, dword [esi]
setb al
add ecx, 0x12
mov dword [ebp - 0xf0], ecx
xor edi, edi
mov ecx, dword [ebp - 0x8c]
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x6c], esi
jmp dword [eax*4 + 0x1ecc74]
mov edx, dword [ebp - 0x1c]
mov word [edx], 0
mov eax, dword [ebp - 0x84]
mov ecx, eax
and cl, 1
movzx ecx, cl
jmp dword [ecx*4 + 0x1ecc7c]
mov eax, dword [ebp - 0x8c]
movzx ecx, word [eax]
xor esi, esi
jmp 0x1c7332
mov dword [ebp - 0xb4], edi
mov eax, dword [ebp - 0xe8]
mov edi, dword [eax]
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x1c561b
mov eax, 0xffffffff
push eax
call fcn.001ac630
add esp, 4
mov esi, eax
mov eax, dword [ebp - 0xf8]
mov dword [eax], edi
push eax
push esi
mov edi, dword [ebp - 0xb4]
push edi
push dword [ebp - 0xc4]
call fcn.001e5cd0
add esp, 0x10
not eax
shr eax, 0x1f
mov dword [ebp - 0xfc], esi
jmp dword [eax*4 + 0x1ecc84]
mov esi, dword [ebp - 0x6c]
jmp dword [0x1ecd14]
push dword [ebp - 0xc4]
push 0
push 0x20019
push dword [ebp - 0xbc]
push esi
call fcn.001e5b90
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x1ecc8c]
mov esi, dword [ebp - 0x6c]
jmp dword [0x1ecd14]
jmp dword [0x1ecc94]
mov edx, dword [ebp - 0x100]
add edx, 4
xor eax, eax
cmp edx, 0x14
setne al
jmp dword [eax*4 + 0x1ecca4]
mov eax, dword [ebp - 0xb8]
mov dword [ebp - 0x100], edx
mov eax, dword [eax + edx]
jmp dword [0x1eccb0]
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x38]
inc edx
xor eax, eax
cmp dx, 0x35
setb al
jmp dword [eax*4 + 0x1eccbc]
mov eax, dword [ebp - 0x104]
mov dword [ebp - 0x38], edx
mov word [eax - 2], dx
mov eax, dword [ebp - 0xbc]
push dword [eax]
push 0
push 0x20019
push esi
push dword [ebp - 0x34]
call fcn.001e5b90
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x1eccc4]
mov eax, dword [ebp - 0xf4]
mov dword [eax], 0x800
jmp dword [0x1eccd0]
mov eax, dword [ebp - 0x40]
mov dword [eax], 0x400
jmp dword [0x1eccd8]
mov eax, dword [ebp - 0x40]
mov dword [eax], 0x400
mov dword [eax], 0x400
jmp dword [0x1eccd8]
xor eax, eax
mov dword [ebp - 0x88], 0
jmp 0x1c5784
push dword [ebp - 0x40]
push dword [ebp - 0x3c]
push edi
push dword [ebp - 0xf4]
push dword [ebp - 0x24]
mov dword [ebp - 0x28], eax
push eax
push dword [esi]
call fcn.001e6330
add esp, 0x1c
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x1eccdc]
mov dword [ebp - 0x104], edi
mov dx, 0x31
xor eax, eax
cmp dx, 0x35
setb al
mov edi, dword [ebp - 0x20]
jmp dword [eax*4 + 0x1eccbc]
mov dword [ecx], 0x33623160
mov dword [ecx + 4], 0x2f7e2d7c
mov dword [ecx + 8], 0x2b7a2978
mov dword [ecx + 0xc], 0x278e2574
mov word [ecx + 0x10], 0x2120
mov edx, dword [ebp - 0xf0]
mov word [edx + 4], 0
mov dword [edx], 0
mov dword [ebp - 0x10], 0
mov edi, ecx
mov ecx, dword [ebp - 0x10]
cmp ecx, 0x17
ja 0x1c5d28
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x10]
movzx edx, byte [edi + edx]
mov esi, ecx
xor esi, 0xd6cbb70c
and ecx, 0xd6cbb70c
lea ecx, [esi + ecx*2]
lea esi, [ecx + edx]
and ecx, edx
mov edx, esi
not edx
and edx, ecx
add edx, ecx
not ecx
and ecx, esi
sub ecx, edx
mov dword [ebp - 0x68], ecx
mov ecx, dword [ebp - 0x68]
add cl, 0xc4
mov edx, dword [ebp - 0x10]
mov byte [edi + edx], cl
inc dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
cmp ecx, 0x18
jb 0x1c5ce0
movzx ecx, word [eax]
mov edi, dword [ebp - 0x34]
test cx, cx
je 0x1c5d51
lea edx, [eax + 2]
mov edi, dword [ebp - 0x34]
nop
nop
nop
nop
nop
nop
nop
mov word [edi], cx
add edi, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x1c5d40
mov word [edi], 0
mov ecx, dword [ebp - 0x18]
movzx ecx, word [ecx]
test cx, cx
je 0x1c5d90
mov edx, dword [ebp - 0xec]
mov esi, dword [ebp - 0x30]
nop
nop
nop
nop
nop
nop
mov word [edi], cx
add edi, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x1c5d70
jmp 0x1c5d93
mov esi, dword [ebp - 0x30]
mov word [edi], 0
mov ecx, dword [ebp - 0x18]
jmp dword [0x1eccb8]
mov dword [ecx], 0x33623160
mov dword [ecx + 4], 0x2f7e2d7c
mov dword [ecx + 8], 0x2b7a2978
mov dword [ecx + 0xc], 0x278e2574
mov word [ecx + 0x10], 0x2120
mov edx, dword [ebp - 0xf0]
mov word [edx + 4], 0
mov dword [edx], 0
mov dword [ebp - 0x10], 0
mov edi, ecx
mov ecx, dword [ebp - 0x10]
cmp ecx, 0x17
ja 0x1c5e38
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x10]
movzx edx, byte [edi + edx]
mov esi, ecx
xor esi, 0xd6cbb70c
and ecx, 0xd6cbb70c
lea ecx, [esi + ecx*2]
lea esi, [ecx + edx]
and ecx, edx
mov edx, esi
not edx
and edx, ecx
add edx, ecx
not ecx
and ecx, esi
sub ecx, edx
mov dword [ebp - 0x68], ecx
mov ecx, dword [ebp - 0x68]
add cl, 0xc4
mov edx, dword [ebp - 0x10]
mov byte [edi + edx], cl
inc dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
cmp ecx, 0x18
jb 0x1c5df0
movzx edx, word [eax]
mov ecx, dword [ebp - 0x34]
test dx, dx
je 0x1c5e61
lea edi, [eax + 2]
mov ecx, dword [ebp - 0x34]
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [edi]
add edi, 2
test dx, dx
jne 0x1c5e50
mov word [ecx], 0
mov edx, dword [ebp - 0x18]
movzx edx, word [edx]
test dx, dx
je 0x1c5e91
mov edi, dword [ebp - 0xec]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [edi]
add edi, 2
test dx, dx
jne 0x1c5e80
mov word [ecx], 0
mov ecx, dword [ebp - 0x18]
jmp case.0x1c54b6.23
mov edx, dword [ebp - 0x80]
mov dword [edx], 0x41ed47f3
mov dword [edx + 4], 0x4dd043ed
mov dword [edx + 8], 0x49d34fdd
mov dword [edx + 0xc], 0xb5e44bd9
mov dword [edx + 0x10], 0xb112b728
mov dword [edx + 0x14], 0xbd19b309
mov dword [edx + 0x18], 0xb912bf2a
mov dword [edx + 0x1c], 0xa523bb29
mov dword [edx + 0x20], 0xa1c6a739
mov dword [edx + 0x24], 0xad0da317
mov dword [edx + 0x28], 0xa933af31
mov dword [edx + 0x2c], 0x9503ab0b
mov dword [edx + 0x30], 0x9100973f
mov dword [edx + 0x34], 0x9df29339
mov dword [edx + 0x38], 0x99019f21
mov dword [edx + 0x3c], 0x85079b3a
mov dword [edx + 0x40], 0x811b871f
mov dword [edx + 0x44], 0x8d2d831c
mov dword [edx + 0x48], 0x892a8f1b
mov dword [edx + 0x4c], 0xf5188b38
mov dword [edx + 0x50], 0xf158f765
mov dword [edx + 0x54], 0xfd66f35b
mov dword [edx + 0x58], 0xf963ff53
mov dword [edx + 0x5c], 0xe5a1fb5c
mov dword [edx + 0x60], 0xe1bfe7b9
mov dword [edx + 0x64], 0xedafe3bf
mov dword [edx + 0x68], 0xe9a0efa2
mov dword [edx + 0x6c], 0xd5b6ebb8
mov dword [edx + 0x70], 0xd18bd787
mov dword [edx + 0x74], 0xdd81d383
mov dword [edx + 0x78], 0xd972df8f
mov dword [edx + 0x7c], 0xc598db85
mov dword [edx + 0x80], 0xc19ec79c
mov dword [edx + 0x84], 0xcd92c383
mov dword [edx + 0x88], 0xc99dcf9c
mov dword [edx + 0x8c], 0x3596cb98
mov dword [edx + 0x90], 0x31643776
mov dword [edx + 0x94], 0x3d6c3373
mov dword [edx + 0x98], 0x39673f62
mov dword [edx + 0x9c], 0x259e3b66
mov word [edx + 0xa0], 0x2724
mov eax, dword [ebp - 0xd0]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x10]
cmp eax, 0xa7
ja 0x1c6052
nop
nop
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
movzx ecx, byte [edx + ecx]
lea edx, [eax + ecx]
add edx, 0x92824471
add eax, 0x92824471
and eax, ecx
mov ecx, edx
xor ecx, eax
add ecx, eax
not eax
and eax, edx
mov edx, dword [ebp - 0x80]
add eax, eax
sub eax, ecx
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x68]
mov ecx, eax
not ecx
and ecx, 0x35
and eax, 0xca
sub eax, ecx
mov ecx, dword [ebp - 0x10]
mov byte [edx + ecx], al
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, 0xa8
jb 0x1c6000
mov eax, edx
mov edi, dword [ebp - 0x7c]
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, dword [ebp - 0xcc]
mov edi, dword [ebp - 0xb0]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov esi, dword [ebp - 0xe4]
mov dword [esi], 0xf36bf105
mov dword [esi + 4], 0xef7ced0f
mov dword [esi + 8], 0xeb79e97f
mov dword [esi + 0xc], 0xe778e573
mov dword [esi + 0x10], 0xe306e16c
mov dword [esi + 0x14], 0x9f079d73
mov dword [esi + 0x18], 0x9b06990e
mov dword [esi + 0x1c], 0x97199503
mov dword [esi + 0x20], 0x93b29103
mov dword [esi + 0x24], 0x8f628d7a
mov dword [esi + 0x28], 0x8b49896c
mov dword [esi + 0x2c], 0x87148509
mov dword [esi + 0x30], 0x831f8112
mov dword [esi + 0x34], 0xbf32bd2a
mov dword [esi + 0x38], 0xbb27b956
mov dword [esi + 0x3c], 0xb725b526
mov dword [esi + 0x40], 0xb325b129
mov dword [esi + 0x44], 0xaf4aad3a
mov dword [esi + 0x48], 0xab33a947
mov dword [esi + 0x4c], 0xa73aa532
mov dword [esi + 0x50], 0xa32da137
mov dword [esi + 0x54], 0x5f7e5dcf
mov dword [esi + 0x58], 0x5bc759ad
mov dword [esi + 0x5c], 0x57c555c7
mov dword [esi + 0x60], 0x53cd51b1
mov dword [esi + 0x64], 0x4fd84dd5
mov dword [esi + 0x68], 0x4b6a49d7
mov dword [esi + 0x6c], 0x47cb45b7
mov dword [esi + 0x70], 0x43d141a2
mov dword [esi + 0x74], 0x7fed7df5
mov dword [esi + 0x78], 0x7be779f4
mov dword [esi + 0x7c], 0x779275e1
mov dword [esi + 0x80], 0x73e07180
mov dword [esi + 0x84], 0x6ff06dfb
mov dword [esi + 0x88], 0x6bfe69f1
mov dword [esi + 0x8c], 0x67f565f9
mov dword [esi + 0x90], 0x63956184
mov dword [esi + 0x94], 0x1f921d91
mov dword [esi + 0x98], 0x1b8d198c
mov dword [esi + 0x9c], 0x178d1583
mov dword [esi + 0xa0], 0x13db11f4
mov dword [esi + 0xa4], 0xfc10ddf
mov dword [esi + 0xa8], 0xbc909c5
mov dword [esi + 0xac], 0x7f805fa
mov dword [esi + 0xb0], 0x3ce01d0
mov dword [esi + 0xb4], 0x3fed3ded
mov dword [esi + 0xb8], 0x3beb39e9
mov dword [esi + 0xbc], 0x37aa35e5
mov dword [esi + 0xc0], 0x33f031e3
mov dword [esi + 0xc4], 0x2fe62de4
mov dword [esi + 0xc8], 0x2bfa29e9
mov dword [esi + 0xcc], 0x27f725f4
mov dword [esi + 0xd0], 0x23ee21f0
mov dword [esi + 0xd4], 0xdf0cdd1e
mov dword [esi + 0xd8], 0xdb14d919
mov dword [esi + 0xdc], 0xd719d51a
mov dword [esi + 0xe0], 0xd336d11e
mov word [esi + 0xe4], 0xcdcc
mov dword [esi + 0xe6], 0
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x10]
cmp eax, 0xe9
ja 0x1c62c8
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
movzx ecx, byte [esi + ecx]
mov edx, eax
xor edx, 0x597eeac
and eax, 0x597eeac
lea eax, [edx + eax*2]
lea edx, [eax + ecx]
and eax, ecx
mov ecx, edx
xor ecx, eax
add ecx, eax
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x68]
add al, 0xa4
mov ecx, dword [ebp - 0x10]
mov byte [esi + ecx], al
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, 0xea
jb 0x1c6280
mov eax, esi
mov ecx, 0x39
mov edi, dword [ebp - 0x78]
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, dword [ebp - 0xa8]
mov ecx, 1
mov edi, dword [ebp - 0xac]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov esi, dword [ebp - 0xe0]
mov dword [esi], 0x933b9125
mov dword [esi + 4], 0x9f0c9d3f
mov dword [esi + 8], 0x9b09990f
mov dword [esi + 0xc], 0x87288513
mov dword [esi + 0x10], 0x8326811c
mov dword [esi + 0x14], 0x8f208d3b
mov dword [esi + 0x18], 0x8b238926
mov dword [esi + 0x1c], 0xf75bf557
mov dword [esi + 0x20], 0xf3a3f154
mov dword [esi + 0x24], 0xffa8fdaf
mov dword [esi + 0x28], 0xfb5ef9a8
mov dword [esi + 0x2c], 0xe77be553
mov dword [esi + 0x30], 0xe376e17c
mov dword [esi + 0x34], 0xef79ed7b
mov dword [esi + 0x38], 0xeb4ee943
mov dword [esi + 0x3c], 0xd744d564
mov dword [esi + 0x40], 0xd37cd147
mov dword [esi + 0x44], 0xdf4add75
mov dword [esi + 0x48], 0xdb49d975
mov dword [esi + 0x4c], 0xc771c560
mov dword [esi + 0x50], 0xc35ec15d
mov dword [esi + 0x54], 0xcf59cd58
mov dword [esi + 0x58], 0xcb61c95f
mov dword [esi + 0x5c], 0x376f3590
mov dword [esi + 0x60], 0x336d3163
mov dword [esi + 0x64], 0x3f7d3d61
mov dword [esi + 0x68], 0x3b743976
mov dword [esi + 0x6c], 0x277a2574
mov dword [esi + 0x70], 0x23712171
mov dword [esi + 0x74], 0x2f7f2d7d
mov dword [esi + 0x78], 0x2b862979
mov dword [esi + 0x7c], 0x17541547
mov dword [esi + 0x80], 0x134a1148
mov dword [esi + 0x84], 0x1f4e1d5d
mov dword [esi + 0x88], 0x1b4b1948
mov dword [esi + 0x8c], 0x75a0554
mov dword [esi + 0x90], 0x3500142
mov dword [esi + 0x94], 0xf500d4d
mov dword [esi + 0x98], 0xb550956
mov dword [esi + 0x9c], 0x77d2752a
mov word [esi + 0xa0], 0x7170
mov dword [esi + 0xa2], 0
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x10]
cmp eax, 0xa5
ja 0x1c6498
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
movzx ecx, byte [esi + ecx]
mov edx, eax
xor edx, 0xa98771a4
and eax, 0x298771a4
lea eax, [edx + eax*2]
lea edx, [eax + ecx]
and eax, ecx
mov ecx, edx
xor ecx, eax
add ecx, eax
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x68]
add al, 0xcc
mov ecx, dword [ebp - 0x10]
mov byte [esi + ecx], al
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, 0xa6
jb 0x1c6450
mov eax, esi
mov edi, dword [ebp - 0x74]
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, dword [ebp - 0xa0]
mov edi, dword [ebp - 0xa4]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov esi, dword [ebp - 0xdc]
mov dword [esi], 0xe945eb57
mov dword [esi + 4], 0xed78ef4d
mov dword [esi + 8], 0xd147d37d
mov dword [esi + 0xc], 0xd57cd741
mov dword [esi + 0x10], 0xd966db40
mov dword [esi + 0x14], 0xdd74df69
mov dword [esi + 0x18], 0xc16dc376
mov dword [esi + 0x1c], 0xc56dc765
mov dword [esi + 0x20], 0xc99dcb78
mov dword [esi + 0x24], 0xcd9ccf9c
mov dword [esi + 0x28], 0x318e339c
mov dword [esi + 0x2c], 0x35ad3781
mov dword [esi + 0x30], 0x39963ba0
mov dword [esi + 0x34], 0x3daf3fa9
mov dword [esi + 0x38], 0x219e2391
mov dword [esi + 0x3c], 0x25b02790
mov dword [esi + 0x40], 0x29802bb5
mov dword [esi + 0x44], 0x2d822f87
mov dword [esi + 0x48], 0x11871387
mov dword [esi + 0x4c], 0x15a717ac
mov dword [esi + 0x50], 0x198e1b8f
mov dword [esi + 0x54], 0x1d8f1fb4
mov dword [esi + 0x58], 0x1af038d
mov dword [esi + 0x5c], 0x55907bc
mov dword [esi + 0x60], 0x9530b51
mov dword [esi + 0x64], 0xd4b0f53
mov dword [esi + 0x68], 0x71387346
mov dword [esi + 0x6c], 0x75227720
mov dword [esi + 0x70], 0x792f7b23
mov dword [esi + 0x74], 0x7d297f2f
mov dword [esi + 0x78], 0x61c6632b
mov dword [esi + 0x7c], 0x65206735
mov dword [esi + 0x80], 0x69326b3c
mov dword [esi + 0x84], 0x6d3e6f2f
mov dword [esi + 0x88], 0x5105533c
mov dword [esi + 0x8c], 0x55025700
mov dword [esi + 0x90], 0x590c5b12
mov dword [esi + 0x94], 0x5d045f1f
mov dword [esi + 0x98], 0x411b4306
mov dword [esi + 0x9c], 0x45fa471a
mov dword [esi + 0xa0], 0x4b44
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x10]
cmp eax, 0xa3
ja 0x1c664f
nop
nop
nop
nop
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
movzx ecx, byte [esi + ecx]
mov edx, eax
xor edx, 0x409308d7
and eax, 0xc09308d7
lea eax, [edx + eax*2]
mov edx, eax
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x68]
add al, 0xcd
mov ecx, dword [ebp - 0x10]
mov byte [esi + ecx], al
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, 0xa4
jb 0x1c6610
mov eax, esi
mov edi, dword [ebp - 0x70]
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, dword [ebp - 0x98]
mov edi, dword [ebp - 0x9c]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov esi, dword [ebp - 0xd4]
mov dword [esi], 0xb1e58fc3
mov dword [esi + 4], 0xb520b3d5
mov dword [esi + 8], 0xb923b725
mov dword [esi + 0xc], 0xbddcbb29
mov dword [esi + 0x10], 0xa1c2bf28
mov dword [esi + 0x14], 0xa5c4a3d1
mov dword [esi + 0x18], 0xa9cda7c2
mov dword [esi + 0x1c], 0xadcdabcd
mov dword [esi + 0x20], 0xd1fdafd0
mov dword [esi + 0x24], 0xd5fcd387
mov dword [esi + 0x28], 0xd9aad784
mov dword [esi + 0x2c], 0xdd4ddba9
mov dword [esi + 0x30], 0xc1b2df48
mov dword [esi + 0x34], 0xc553c351
mov dword [esi + 0x38], 0xc9bac7a9
mov dword [esi + 0x3c], 0xcd58cbb8
mov dword [esi + 0x40], 0xf1a8cf5d
mov dword [esi + 0x44], 0xf59ef39b
mov dword [esi + 0x48], 0xf963f793
mov dword [esi + 0x4c], 0xfd8bfb84
mov dword [esi + 0x50], 0xe16aff6b
mov dword [esi + 0x54], 0xe573e38c
mov dword [esi + 0x58], 0xe98be775
mov dword [esi + 0x5c], 0xedb1eb94
mov dword [esi + 0x60], 0x11b7efb9
mov dword [esi + 0x64], 0x15571347
mov dword [esi + 0x68], 0x19501752
mov dword [esi + 0x6c], 0x1d4e1b48
mov dword [esi + 0x70], 0x14b1f4f
mov dword [esi + 0x74], 0x5510353
mov dword [esi + 0x78], 0x9620757
mov dword [esi + 0x7c], 0xd480b5d
mov dword [esi + 0x80], 0x31560f54
mov dword [esi + 0x84], 0x35623373
mov dword [esi + 0x88], 0x39653764
mov dword [esi + 0x8c], 0x3d6e3b68
mov dword [esi + 0x90], 0x216c3f7e
mov dword [esi + 0x94], 0x25742363
mov dword [esi + 0x98], 0x297f2772
mov dword [esi + 0x9c], 0x2d562b7e
mov word [esi + 0xa0], 0x2f2c
mov dword [esi + 0xa2], 0
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x10]
cmp eax, 0xa5
ja 0x1c6807
nop
nop
nop
nop
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
movzx ecx, byte [esi + ecx]
mov edx, eax
xor edx, 0xba50049d
and eax, 0x3a50049d
lea eax, [edx + eax*2]
xor eax, ecx
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x68]
add al, 0xef
mov ecx, dword [ebp - 0x10]
mov byte [esi + ecx], al
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, 0xa6
jb 0x1c67d0
mov eax, esi
mov edx, dword [ebp - 0xd8]
mov edi, edx
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, dword [ebp - 0x90]
mov edi, dword [ebp - 0x94]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0xb8]
mov dword [ecx], eax
mov eax, dword [ebp - 0x78]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x74]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x70]
mov dword [ecx + 0xc], eax
mov dword [ecx + 0x10], edx
mov edx, dword [ebp - 0x80]
mov dword [edx], 0x41ed47f3
mov dword [edx + 4], 0x4dd043ed
mov dword [edx + 8], 0x49d34fdd
mov dword [edx + 0xc], 0xb5e44bd9
mov dword [edx + 0x10], 0xb112b728
mov dword [edx + 0x14], 0xbd19b309
mov dword [edx + 0x18], 0xb912bf2a
mov dword [edx + 0x1c], 0xa523bb29
mov dword [edx + 0x20], 0xa1c6a739
mov dword [edx + 0x24], 0xad0da317
mov dword [edx + 0x28], 0xa933af31
mov dword [edx + 0x2c], 0x9503ab0b
mov dword [edx + 0x30], 0x9100973f
mov dword [edx + 0x34], 0x9df29339
mov dword [edx + 0x38], 0x99019f21
mov dword [edx + 0x3c], 0x85079b3a
mov dword [edx + 0x40], 0x811b871f
mov dword [edx + 0x44], 0x8d2d831c
mov dword [edx + 0x48], 0x892a8f1b
mov dword [edx + 0x4c], 0xf5188b38
mov dword [edx + 0x50], 0xf158f765
mov dword [edx + 0x54], 0xfd66f35b
mov dword [edx + 0x58], 0xf963ff53
mov dword [edx + 0x5c], 0xe5a1fb5c
mov dword [edx + 0x60], 0xe1bfe7b9
mov dword [edx + 0x64], 0xedafe3bf
mov dword [edx + 0x68], 0xe9a0efa2
mov dword [edx + 0x6c], 0xd5b6ebb8
mov dword [edx + 0x70], 0xd18bd787
mov dword [edx + 0x74], 0xdd81d383
mov dword [edx + 0x78], 0xd972df8f
mov dword [edx + 0x7c], 0xc598db85
mov dword [edx + 0x80], 0xc19ec79c
mov dword [edx + 0x84], 0xcd92c383
mov dword [edx + 0x88], 0xc99dcf9c
mov dword [edx + 0x8c], 0x3596cb98
mov dword [edx + 0x90], 0x31643776
mov dword [edx + 0x94], 0x3d6c3373
mov dword [edx + 0x98], 0x39673f62
mov dword [edx + 0x9c], 0x259e3b66
mov word [edx + 0xa0], 0x2724
mov eax, dword [ebp - 0xd0]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x10]
cmp eax, 0xa7
ja 0x1c6a02
nop
nop
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
movzx ecx, byte [edx + ecx]
lea edx, [eax + ecx]
add edx, 0x92824471
add eax, 0x92824471
and eax, ecx
mov ecx, edx
xor ecx, eax
add ecx, eax
not eax
and eax, edx
mov edx, dword [ebp - 0x80]
add eax, eax
sub eax, ecx
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x68]
mov ecx, eax
not ecx
and ecx, 0x35
and eax, 0xca
sub eax, ecx
mov ecx, dword [ebp - 0x10]
mov byte [edx + ecx], al
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, 0xa8
jb 0x1c69b0
mov eax, edx
mov edi, dword [ebp - 0x7c]
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, dword [ebp - 0xcc]
mov edi, dword [ebp - 0xb0]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov esi, dword [ebp - 0xe4]
mov dword [esi], 0xf36bf105
mov dword [esi + 4], 0xef7ced0f
mov dword [esi + 8], 0xeb79e97f
mov dword [esi + 0xc], 0xe778e573
mov dword [esi + 0x10], 0xe306e16c
mov dword [esi + 0x14], 0x9f079d73
mov dword [esi + 0x18], 0x9b06990e
mov dword [esi + 0x1c], 0x97199503
mov dword [esi + 0x20], 0x93b29103
mov dword [esi + 0x24], 0x8f628d7a
mov dword [esi + 0x28], 0x8b49896c
mov dword [esi + 0x2c], 0x87148509
mov dword [esi + 0x30], 0x831f8112
mov dword [esi + 0x34], 0xbf32bd2a
mov dword [esi + 0x38], 0xbb27b956
mov dword [esi + 0x3c], 0xb725b526
mov dword [esi + 0x40], 0xb325b129
mov dword [esi + 0x44], 0xaf4aad3a
mov dword [esi + 0x48], 0xab33a947
mov dword [esi + 0x4c], 0xa73aa532
mov dword [esi + 0x50], 0xa32da137
mov dword [esi + 0x54], 0x5f7e5dcf
mov dword [esi + 0x58], 0x5bc759ad
mov dword [esi + 0x5c], 0x57c555c7
mov dword [esi + 0x60], 0x53cd51b1
mov dword [esi + 0x64], 0x4fd84dd5
mov dword [esi + 0x68], 0x4b6a49d7
mov dword [esi + 0x6c], 0x47cb45b7
mov dword [esi + 0x70], 0x43d141a2
mov dword [esi + 0x74], 0x7fed7df5
mov dword [esi + 0x78], 0x7be779f4
mov dword [esi + 0x7c], 0x779275e1
mov dword [esi + 0x80], 0x73e07180
mov dword [esi + 0x84], 0x6ff06dfb
mov dword [esi + 0x88], 0x6bfe69f1
mov dword [esi + 0x8c], 0x67f565f9
mov dword [esi + 0x90], 0x63956184
mov dword [esi + 0x94], 0x1f921d91
mov dword [esi + 0x98], 0x1b8d198c
mov dword [esi + 0x9c], 0x178d1583
mov dword [esi + 0xa0], 0x13db11f4
mov dword [esi + 0xa4], 0xfc10ddf
mov dword [esi + 0xa8], 0xbc909c5
mov dword [esi + 0xac], 0x7f805fa
mov dword [esi + 0xb0], 0x3ce01d0
mov dword [esi + 0xb4], 0x3fed3ded
mov dword [esi + 0xb8], 0x3beb39e9
mov dword [esi + 0xbc], 0x37aa35e5
mov dword [esi + 0xc0], 0x33f031e3
mov dword [esi + 0xc4], 0x2fe62de4
mov dword [esi + 0xc8], 0x2bfa29e9
mov dword [esi + 0xcc], 0x27f725f4
mov dword [esi + 0xd0], 0x23ee21f0
mov dword [esi + 0xd4], 0xdf0cdd1e
mov dword [esi + 0xd8], 0xdb14d919
mov dword [esi + 0xdc], 0xd719d51a
mov dword [esi + 0xe0], 0xd336d11e
mov word [esi + 0xe4], 0xcdcc
mov dword [esi + 0xe6], 0
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x10]
cmp eax, 0xe9
ja 0x1c6c78
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
movzx ecx, byte [esi + ecx]
mov edx, eax
xor edx, 0x597eeac
and eax, 0x597eeac
lea eax, [edx + eax*2]
lea edx, [eax + ecx]
and eax, ecx
mov ecx, edx
xor ecx, eax
add ecx, eax
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x68]
add al, 0xa4
mov ecx, dword [ebp - 0x10]
mov byte [esi + ecx], al
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, 0xea
jb 0x1c6c30
mov eax, esi
mov edi, dword [ebp - 0x78]
mov ecx, 0x39
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, dword [ebp - 0xa8]
mov ecx, 1
mov edi, dword [ebp - 0xac]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov esi, dword [ebp - 0xe0]
mov dword [esi], 0x933b9125
mov dword [esi + 4], 0x9f0c9d3f
mov dword [esi + 8], 0x9b09990f
mov dword [esi + 0xc], 0x87288513
mov dword [esi + 0x10], 0x8326811c
mov dword [esi + 0x14], 0x8f208d3b
mov dword [esi + 0x18], 0x8b238926
mov dword [esi + 0x1c], 0xf75bf557
mov dword [esi + 0x20], 0xf3a3f154
mov dword [esi + 0x24], 0xffa8fdaf
std
test al, 0xff
xor edx, edx
xor eax, eax
cmp edx, 0x14
setne al
mov ecx, dword [ebp - 0x18]
jmp dword [eax*4 + 0x1ecca4]
mov eax, dword [ebp - 0xbc]
mov esi, dword [eax]
mov dword [ebp - 0x68], 0x80878685
lea eax, [ebp - 0x64]
mov byte [eax + 2], 0
mov word [eax], 0
mov dword [ebp - 0x14], 0
mov eax, dword [ebp - 0x14]
cmp eax, 6
ja 0x1c7287
nop
nop
nop
nop
nop
nop
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
movzx ecx, byte [ebp + ecx - 0x68]
mov edx, eax
xor edx, 0xfa434561
and eax, 0xfa434561
lea eax, [edx + eax*2]
xor eax, ecx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
add al, 0x1b
mov ecx, dword [ebp - 0x14]
mov byte [ebp + ecx - 0x68], al
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp eax, 7
jb 0x1c7250
mov ecx, dword [0x1f1ba0]
test ecx, ecx
je 0x1c72c0
mov edx, dword [ebp - 0x68]
xor edi, edi
mov eax, dword [0x1f1ba4]
nop
nop
nop
nop
nop
cmp dword [eax + edi*8], 0x625b6034
je 0x1c72b0
inc edi
cmp ecx, edi
jne 0x1c72a0
jmp 0x1c72c0
mov eax, dword [eax + edi*8 + 4]
cmp eax, edx
jne 0x1c72f2
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, dword [ebp - 0x6c]
mov edi, dword [ebp - 0xb4]
jmp dword [0x1ecd14]
push esi
push 1
push dword [0x1f1ba8]
push eax
call fcn.001e1c60
add esp, 0x10
mov esi, dword [ebp - 0x6c]
mov edi, dword [ebp - 0xb4]
jmp dword [0x1ecd14]
mov ecx, esi
and ecx, 1
xor esi, 1
lea esi, [esi + ecx*2]
movzx ecx, word [eax + 2]
add eax, 2
test cx, cx
je 0x1c7365
cmp eax, edx
jae 0x1c7365
cmp cx, 0x7f
jbe 0x1c7320
movzx ecx, cx
cmp ecx, 0x7ff
ja 0x1c7360
mov ecx, esi
and ecx, 2
xor esi, 2
jmp 0x1c7328
add esi, 3
jmp 0x1c732b
lea eax, [esi + 1]
mov dword [ebp - 0x2c], eax
push eax
call fcn.001ac630
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x8c]
add esp, 4
mov ebx, eax
mov dword [ebp - 0x24], eax
mov eax, esi
mov dword [ebp - 0x28], esi
test esi, esi
jle 0x1c7443
mov ebx, dword [ebp - 0x24]
cmp ecx, edx
jae 0x1c7443
mov eax, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x24]
add eax, ebx
mov dword [ebp - 0x44], eax
add dword [ebp - 0x2c], ebx
add ecx, 2
nop
nop
nop
nop
nop
movzx edx, word [ecx - 2]
test dx, dx
je 0x1c7443
mov esi, ecx
cmp dx, 0x7f
ja 0x1c73d0
mov byte [ebx], dl
mov edi, 1
jmp 0x1c7430
mov eax, ebx
not eax
add eax, dword [ebp - 0x2c]
movzx ecx, dx
cmp eax, 2
jb 0x1c7400
cmp ecx, 0x7ff
ja 0x1c7400
mov eax, edx
shr eax, 6
add al, 0xc0
mov byte [ebx], al
and dl, 0x3f
or dl, 0x80
mov byte [ebx + 1], dl
mov edi, 2
jmp 0x1c7430
xor edi, edi
cmp eax, 3
jb 0x1c7430
mov eax, ecx
shr eax, 0xc
or al, 0xe0
mov byte [ebx], al
shr ecx, 6
and cl, 0x3f
or cl, 0x80
mov byte [ebx + 1], cl
and dl, 0x3f
or dl, 0x80
mov byte [ebx + 2], dl
mov edi, 3
nop
nop
nop
nop
nop
nop
add ebx, edi
cmp ebx, dword [ebp - 0x44]
jae 0x1c7443
lea ecx, [esi + 2]
cmp esi, dword [ebp - 0x1c]
jb 0x1c73b0
mov byte [ebx], 0
mov edx, dword [ebp - 0xc8]
mov dword [edx], 0xd5d6d707
mov dword [edx + 4], 0xd1e1eeeb
mov dword [edx + 8], 0xd4d8dee7
mov dword [edx + 0xc], 0x29d5fa19
mov dword [edx + 0x10], 0x24272620
mov dword [edx + 0x14], 0x2c2003e1
mov dword [edx + 0x18], 0x162a1412
mov dword [edx + 0x1c], 0x3d26ed25
mov word [edx + 0x20], 0xa738
mov dword [edx + 0x22], 0
mov byte [edx + 0x26], 0
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x10]
cmp eax, 0x26
ja 0x1c74f4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
movzx eax, byte [edx + eax]
mov edx, ecx
xor edx, 0x63e23d71
add ecx, ecx
and ecx, 0xc7c47ae2
mov esi, ecx
and esi, edx
xor ecx, edx
mov edx, dword [ebp - 0xc8]
lea ecx, [ecx + esi*2]
xor ecx, eax
mov dword [ebp - 0x68], ecx
mov eax, dword [ebp - 0x68]
add al, 0xcb
mov ecx, dword [ebp - 0x10]
mov byte [edx + ecx], al
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, 0x27
jb 0x1c74b0
mov ecx, dword [ebp + 8]
push dword [ebp - 0x28]
mov esi, dword [ebp - 0x24]
push esi
push edx
call fcn.001ad1b0
jmp dword [0x1ecd2c]
and al, 1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret