Function at 0x574940
Capabilities:
Encode data using xor
Encrypt data using aes
Reference aes constants
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x636d26
mov eax, dword fs:[0]
push eax
sub esp, 0x92c
mov eax, dword [0x717f80]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x930], esi
mov edi, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
mov dword [ebp - 0x938], edi
mov eax, dword [edi + 8]
mov dword [ebp - 0x934], ecx
mov dword [ebp - 0x91c], edx
cmp eax, 3
je 0x5749ac
cmp eax, 6
je 0x5749ac
cmp eax, 2
je 0x5749ac
cmp eax, 5
je 0x5749ac
cmp eax, 4
jne 0x5749b0
mov byte [ebp + 8], 1
cmp eax, 8
jne 0x574b62
test ecx, ecx
je 0x574b56
push 0x290
lea eax, [ebp - 0x3a0]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea ecx, [ebp - 0x3a0]
call fcn.0057b720
push 0xd0
lea eax, [ebp - 0x110]
mov dword [ebp - 4], 0
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea ecx, [ebp - 0x110]
call fcn.00574400
push 0x568
lea eax, [ebp - 0x908]
mov byte [ebp - 4], 1
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea ecx, [ebp - 0x908]
call fcn.005744d0
lea ecx, [edi + 0x14]
mov byte [ebp - 4], 2
mov dword [ebp - 0x108], 1
call fcn.0046e290
push eax
lea eax, [edi + 0x8c]
push eax
lea ecx, [ebp - 0xfc]
call fcn.0049f210
lea ecx, [edi + 0x14]
call fcn.0046e290
push dword [ebp - 0x91c]
shl eax, 3
lea ecx, [ebp - 0x3a0]
mov dword [ebp - 0x100], eax
lea eax, [ebp - 0x908]
push eax
lea eax, [ebp - 0x110]
mov dword [ebp - 0x104], 3
push eax
push 1
call fcn.00574940
call fcn.004777d0
cmp byte [edi + 0xac], 0
mov byte [ebp - 0x91c], al
je 0x574ad5
lea eax, [ebp - 0x40]
push eax
push dword [edi + 0xb4]
push dword [edi + 0xb0]
push dword [ebp - 0x91c]
call fcn.00478070
push 8
lea eax, [ebp - 0x38]
push 0
push eax
call fcn.00477810
add esp, 0x1c
jmp 0x574ae0
movups xmm0, xmmword [edi + 0xb8]
movups xmmword [ebp - 0x40], xmm0
mov eax, dword [ebp - 0x934]
lea ecx, [ebp - 0x3a0]
add eax, 0x558
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.00578940
lea ecx, [ebp - 0x908]
call fcn.005746d0
lea ecx, [ebp - 0xa4]
mov dword [ebp - method._ckSymSettings.virtual_0], vtable._ckSymSettings.0
call fcn.0049ecf0
lea ecx, [ebp - 0xc0]
call fcn.0049ecf0
lea ecx, [ebp - 0xdc]
call fcn.0049ecf0
lea ecx, [ebp - 0xfc]
call fcn.0049ecf0
lea ecx, [ebp - 0x3a0]
mov dword [ebp - 4], 0xffffffff
call fcn.0057b7a0
mov esi, dword [ebp - 0x930]
jmp 0x574b62
mov eax, dword [edx]
mov ecx, edx
push str.No_context_for_XTS_mode_
call dword [eax + 0x14]
mov al, byte [ebp + 8]
mov byte [esi + 0x88], al
mov eax, dword [edi + 0x10]
cmp eax, 0xc1
jl 0x574b89
mov eax, 0x100
mov dword [edi + 0x10], 0x100
mov dword [ebp - 0x918], eax
jmp 0x574bb4
cmp eax, 0x81
jl 0x574ba3
mov dword [edi + 0x10], 0xc0
mov dword [ebp - 0x918], 0xc0
jmp 0x574bb4
mov dword [edi + 0x10], 0x80
mov dword [ebp - 0x918], 0x80
xorps xmm0, xmm0
add edi, 0x14
mov ecx, edi
movups xmmword [ebp - 0x30], xmm0
movups xmmword [ebp - 0x20], xmm0
call fcn.004a2ca0
test eax, eax
je 0x574c16
mov ecx, edi
call fcn.0046e290
test eax, eax
je 0x574c16
mov ecx, edi
call fcn.0046e290
mov ecx, edi
cmp eax, 0x20
jbe 0x574bfc
call fcn.004a2ca0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x30], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [ebp - 0x20], xmm0
jmp 0x574c16
call fcn.0046e290
push eax
mov ecx, edi
call fcn.004a2ca0
push eax
lea eax, [ebp - 0x30]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov edi, dword [ebp - 0x918]
mov eax, edi
sub eax, 0x80
je 0x574c4e
sub eax, 0x40
je 0x574c42
sub eax, 0x40
je 0x574c36
xor al, al
jmp 0x576111
mov dword [esi + 0x28c], 0xe
jmp 0x574c58
mov dword [esi + 0x28c], 0xc
jmp 0x574c58
mov dword [esi + 0x28c], 0xa
lea eax, [esi + 0x8c]
shr edi, 5
xor esi, esi
movzx edx, byte [ebp + esi*4 - 0x30]
movzx ecx, byte [ebp + esi*4 - 0x2f]
shl edx, 8
or edx, ecx
movzx ecx, byte [ebp + esi*4 - 0x2e]
shl edx, 8
or edx, ecx
movzx ecx, byte [ebp + esi*4 - 0x2d]
shl edx, 8
or edx, ecx
mov dword [eax + esi*4], edx
inc esi
cmp esi, edi
jl 0x574c63
mov ecx, dword [ebp - 0x930]
mov ecx, dword [ecx + 0x28c]
cmp ecx, 0xa
jne 0x5751b7
mov edx, dword [eax + 0xc]
mov ecx, edx
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [ecx*4 + str.cwko0]
mov ecx, edx
shr ecx, 8
xor esi, 1
movzx ecx, cl
shl esi, 8
xor esi, dword [ecx*4 + str.cwko0]
movzx ecx, dl
shl esi, 8
xor esi, dword [ecx*4 + str.cwko0]
mov ecx, edx
shr ecx, 0x18
mov edx, dword [eax + 8]
shl esi, 8
xor esi, dword [ecx*4 + str.cwko0]
xor esi, dword [eax]
mov ecx, dword [eax + 4]
xor ecx, esi
mov dword [eax + 0x10], esi
xor edx, ecx
mov dword [ebp - 0x914], ecx
mov dword [eax + 0x14], ecx
mov ecx, dword [eax + 0xc]
xor ecx, edx
mov dword [eax + 0x18], edx
mov dword [ebp - 0x910], ecx
mov dword [eax + 0x1c], ecx
shr ecx, 0x10
movzx ecx, cl
mov edi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x910]
xor edi, 2
shr ecx, 8
movzx ecx, cl
shl edi, 8
xor edi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x910]
movzx ecx, cl
shl edi, 8
xor edi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x910]
shr ecx, 0x18
shl edi, 8
xor edi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x910]
xor edi, esi
mov esi, dword [ebp - 0x914]
xor esi, edi
mov dword [eax + 0x20], edi
mov dword [ebp - 0x914], esi
mov dword [eax + 0x24], esi
xor esi, edx
xor ecx, esi
mov dword [eax + 0x28], esi
mov dword [ebp - 0x910], ecx
mov dword [eax + 0x2c], ecx
shr ecx, 0x10
movzx ecx, cl
mov edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x910]
xor edx, 4
shr ecx, 8
movzx ecx, cl
shl edx, 8
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x910]
movzx ecx, cl
shl edx, 8
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x910]
shr ecx, 0x18
shl edx, 8
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x914]
xor edx, edi
mov dword [ebp - 0x91c], edx
mov dword [eax + 0x30], edx
xor ecx, edx
mov edx, ecx
mov dword [ebp - 0x914], ecx
mov dword [eax + 0x34], ecx
xor edx, esi
mov ecx, edx
mov dword [eax + 0x38], edx
xor ecx, dword [ebp - 0x910]
mov dword [ebp - 0x918], ecx
mov dword [eax + 0x3c], ecx
shr ecx, 0x10
movzx ecx, cl
mov edi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x918]
xor edi, 8
shr ecx, 8
movzx ecx, cl
shl edi, 8
xor edi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x918]
movzx ecx, cl
shl edi, 8
xor edi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x918]
shr ecx, 0x18
shl edi, 8
xor edi, dword [ecx*4 + str.cwko0]
xor edi, dword [ebp - 0x91c]
mov ecx, dword [ebp - 0x914]
xor ecx, edi
mov dword [eax + 0x40], edi
mov esi, ecx
mov dword [ebp - 0x914], ecx
mov dword [eax + 0x44], ecx
xor esi, edx
mov ecx, esi
mov dword [eax + 0x48], esi
xor ecx, dword [ebp - 0x918]
mov dword [ebp - 0x90c], ecx
mov dword [eax + 0x4c], ecx
shr ecx, 0x10
movzx ecx, cl
mov edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x90c]
xor edx, 0x10
shr ecx, 8
movzx ecx, cl
shl edx, 8
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x90c]
movzx ecx, cl
shl edx, 8
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x90c]
shr ecx, 0x18
shl edx, 8
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x914]
xor edx, edi
xor ecx, edx
mov dword [ebp - 0x91c], edx
mov dword [ebp - 0x914], ecx
mov dword [eax + 0x54], ecx
mov dword [eax + 0x50], edx
mov edx, ecx
mov ecx, dword [ebp - 0x90c]
xor edx, esi
xor ecx, edx
mov dword [eax + 0x58], edx
mov dword [ebp - 0x90c], ecx
mov dword [eax + 0x5c], ecx
shr ecx, 0x10
movzx ecx, cl
mov edi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x90c]
xor edi, 0x20
shr ecx, 8
movzx ecx, cl
shl edi, 8
xor edi, dword [ecx*4 + str.cwko0]
shl edi, 8
mov ecx, dword [ebp - 0x90c]
movzx ecx, cl
xor edi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x90c]
shr ecx, 0x18
shl edi, 8
xor edi, dword [ecx*4 + str.cwko0]
xor edi, dword [ebp - 0x91c]
mov ecx, dword [ebp - 0x914]
xor ecx, edi
mov dword [eax + 0x60], edi
mov esi, ecx
mov dword [ebp - 0x914], ecx
xor esi, edx
mov dword [eax + 0x64], ecx
mov ecx, dword [ebp - 0x90c]
xor ecx, esi
mov dword [eax + 0x68], esi
mov dword [ebp - 0x90c], ecx
mov dword [eax + 0x6c], ecx
shr ecx, 0x10
movzx ecx, cl
mov edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x90c]
xor edx, 0x40
shr ecx, 8
movzx ecx, cl
shl edx, 8
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x90c]
movzx ecx, cl
shl edx, 8
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x90c]
shr ecx, 0x18
shl edx, 8
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x90c]
xor edx, edi
mov edi, dword [ebp - 0x914]
xor edi, edx
mov dword [ebp - 0x91c], edx
mov dword [eax + 0x70], edx
mov edx, edi
xor edx, esi
mov dword [eax + 0x74], edi
xor ecx, edx
mov dword [eax + 0x78], edx
mov dword [ebp - 0x90c], ecx
mov dword [eax + 0x7c], ecx
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x90c]
xor esi, 0xffffff80
shr ecx, 8
movzx ecx, cl
shl esi, 8
xor esi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x90c]
movzx ecx, cl
shl esi, 8
xor esi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x90c]
shr ecx, 0x18
shl esi, 8
xor esi, dword [ecx*4 + str.cwko0]
xor esi, dword [ebp - 0x91c]
mov dword [ebp - 0x91c], esi
mov dword [eax + 0x80], esi
xor esi, edi
mov edi, esi
mov dword [ebp - 0x918], esi
xor edi, edx
mov dword [eax + 0x84], esi
mov edx, edi
mov dword [eax + 0x88], edi
xor edx, dword [ebp - 0x90c]
mov ecx, edx
mov dword [eax + 0x8c], edx
shr ecx, 0x10
movzx ecx, cl
mov ecx, dword [ecx*4 + str.cwko0]
xor ecx, 0x1b
shl ecx, 8
mov dword [ebp - 0x90c], ecx
mov ecx, edx
mov esi, dword [ebp - 0x90c]
shr ecx, 8
movzx ecx, cl
xor esi, dword [ecx*4 + str.cwko0]
movzx ecx, dl
mov dword [ebp - 0x90c], esi
shl dword [ebp - 0x90c], 8
mov esi, dword [ebp - 0x90c]
xor esi, dword [ecx*4 + str.cwko0]
mov ecx, edx
shr ecx, 0x18
mov dword [ebp - 0x90c], esi
shl dword [ebp - 0x90c], 8
mov esi, dword [ebp - 0x90c]
xor esi, dword [ecx*4 + str.cwko0]
mov ecx, esi
mov dword [ebp - 0x90c], esi
xor ecx, dword [ebp - 0x91c]
mov dword [ebp - 0x90c], ecx
mov dword [eax + 0x90], ecx
xor ecx, dword [ebp - 0x918]
mov esi, ecx
mov dword [ebp - 0x91c], ecx
mov dword [eax + 0x94], ecx
xor esi, edi
mov ecx, esi
mov edi, dword [ebp - 0x91c]
xor ecx, edx
mov dword [eax + 0x98], esi
mov dword [ebp - 0x918], ecx
mov dword [eax + 0x9c], ecx
shr ecx, 0x10
movzx ecx, cl
mov edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x918]
xor edx, 0x36
shr ecx, 8
movzx ecx, cl
shl edx, 8
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x918]
movzx ecx, cl
shl edx, 8
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x918]
shr ecx, 0x18
shl edx, 8
xor edx, dword [ecx*4 + str.cwko0]
xor edx, dword [ebp - 0x90c]
xor edi, edx
mov dword [eax + 0xa0], edx
mov dword [eax + 0xa4], edi
xor edi, esi
mov dword [eax + 0xa8], edi
xor edi, dword [ebp - 0x918]
mov dword [eax + 0xac], edi
add eax, 0xa0
jmp 0x575efe
cmp ecx, 0xc
jne 0x575721
mov ecx, dword [eax + 0x14]
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [eax + 0xc]
mov edi, dword [eax + 0x10]
mov edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [eax + 0x14]
xor edx, 1
shr ecx, 8
movzx ecx, cl
shl edx, 8
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [eax + 0x14]
movzx ecx, cl
shl edx, 8
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [eax + 0x14]
shr ecx, 0x18
shl edx, 8
xor edx, dword [ecx*4 + str.cwko0]
xor edx, dword [eax]
mov ecx, dword [eax + 4]
xor ecx, edx
mov dword [ebp - 0x91c], edx
mov dword [eax + 0x18], edx
mov edx, dword [eax + 8]
xor edx, ecx
mov dword [ebp - 0x910], ecx
xor esi, edx
mov dword [eax + 0x1c], ecx
mov dword [ebp - 0x914], edx
xor edi, esi
mov dword [eax + 0x20], edx
mov edx, dword [eax + 0x14]
xor edx, edi
mov dword [eax + 0x24], esi
mov ecx, edx
mov dword [ebp - 0x918], edx
shr ecx, 0x10
movzx ecx, cl
mov dword [eax + 0x2c], edx
mov dword [eax + 0x28], edi
mov ecx, dword [ecx*4 + str.cwko0]
xor ecx, 2
shl ecx, 8
mov dword [ebp - 0x90c], ecx
mov ecx, edx
mov edx, dword [ebp - 0x90c]
shr ecx, 8
movzx ecx, cl
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x918]
mov dword [ebp - 0x90c], edx
shl dword [ebp - 0x90c], 8
mov edx, dword [ebp - 0x90c]
movzx ecx, cl
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x918]
mov dword [ebp - 0x90c], edx
shl dword [ebp - 0x90c], 8
mov edx, dword [ebp - 0x90c]
shr ecx, 0x18
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, edx
mov dword [ebp - 0x90c], edx
xor ecx, dword [ebp - 0x91c]
mov edx, dword [ebp - 0x910]
xor edx, ecx
mov dword [ebp - 0x90c], ecx
mov dword [ebp - 0x910], edx
mov dword [eax + 0x34], edx
xor edx, dword [ebp - 0x914]
mov dword [ebp - 0x91c], edx
mov dword [eax + 0x38], edx
xor edx, esi
mov esi, edx
mov dword [eax + 0x30], ecx
xor esi, edi
mov dword [eax + 0x3c], edx
mov dword [eax + 0x40], esi
mov ecx, esi
xor ecx, dword [ebp - 0x918]
mov dword [ebp - 0x914], ecx
mov dword [eax + 0x44], ecx
shr ecx, 0x10
movzx ecx, cl
mov edi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x914]
xor edi, 4
shr ecx, 8
movzx ecx, cl
shl edi, 8
xor edi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x914]
movzx ecx, cl
shl edi, 8
xor edi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x914]
shr ecx, 0x18
shl edi, 8
xor edi, dword [ecx*4 + str.cwko0]
xor edi, dword [ebp - 0x90c]
mov ecx, dword [ebp - 0x910]
xor ecx, edi
mov dword [ebp - 0x918], edi
mov dword [ebp - 0x910], ecx
mov dword [eax + 0x4c], ecx
mov dword [eax + 0x48], edi
mov edi, ecx
xor edi, dword [ebp - 0x91c]
mov ecx, edi
mov dword [eax + 0x50], edi
xor ecx, edx
mov edx, ecx
mov dword [ebp - 0x90c], ecx
mov dword [eax + 0x54], ecx
xor edx, esi
mov ecx, dword [ebp - 0x914]
xor ecx, edx
mov dword [eax + 0x58], edx
mov dword [ebp - 0x914], ecx
mov dword [eax + 0x5c], ecx
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x914]
xor esi, 8
shr ecx, 8
movzx ecx, cl
shl esi, 8
xor esi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x914]
movzx ecx, cl
shl esi, 8
xor esi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x914]
shr ecx, 0x18
shl esi, 8
xor esi, dword [ecx*4 + str.cwko0]
xor esi, dword [ebp - 0x918]
mov ecx, dword [ebp - 0x910]
xor ecx, esi
mov dword [eax + 0x60], esi
mov dword [ebp - 0x910], ecx
mov dword [eax + 0x64], ecx
xor ecx, edi
mov dword [ebp - 0x91c], ecx
mov edi, ecx
xor ecx, dword [ebp - 0x90c]
mov dword [ebp - 0x918], ecx
mov dword [eax + 0x6c], ecx
xor ecx, edx
mov dword [ebp - 0x91c], ecx
mov dword [eax + 0x70], ecx
xor ecx, dword [ebp - 0x914]
mov dword [ebp - 0x90c], ecx
mov dword [eax + 0x74], ecx
shr ecx, 0x10
movzx ecx, cl
mov dword [eax + 0x68], edi
mov edx, dword [ecx*4 + str.cwko0]
xor edx, 0x10
mov ecx, dword [ebp - 0x90c]
shr ecx, 8
movzx ecx, cl
shl edx, 8
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x90c]
movzx ecx, cl
shl edx, 8
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x90c]
shr ecx, 0x18
shl edx, 8
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x910]
xor edx, esi
xor ecx, edx
mov esi, dword [ebp - 0x91c]
xor edi, ecx
mov dword [ebp - 0x910], ecx
mov dword [eax + 0x7c], ecx
mov ecx, dword [ebp - 0x918]
xor ecx, edi
mov dword [eax + 0x80], edi
xor esi, ecx
mov dword [ebp - 0x918], ecx
mov dword [eax + 0x84], ecx
mov ecx, dword [ebp - 0x90c]
xor ecx, esi
mov dword [ebp - 0x91c], esi
mov dword [ebp - 0x90c], ecx
mov dword [eax + 0x8c], ecx
shr ecx, 0x10
movzx ecx, cl
mov dword [eax + 0x88], esi
mov dword [eax + 0x78], edx
mov esi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x90c]
xor esi, 0x20
shr ecx, 8
movzx ecx, cl
shl esi, 8
xor esi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x90c]
movzx ecx, cl
shl esi, 8
xor esi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x90c]
shr ecx, 0x18
shl esi, 8
xor esi, dword [ecx*4 + str.cwko0]
xor esi, edx
mov edx, dword [ebp - 0x90c]
mov dword [ebp - 0x914], esi
mov dword [eax + 0x90], esi
xor esi, dword [ebp - 0x910]
mov dword [ebp - 0x920], esi
mov dword [eax + 0x94], esi
xor esi, edi
mov edi, esi
mov dword [eax + 0x98], esi
xor edi, dword [ebp - 0x918]
mov ecx, edi
mov dword [eax + 0x9c], edi
xor ecx, dword [ebp - 0x91c]
xor edx, ecx
mov dword [ebp - 0x91c], ecx
mov dword [eax + 0xa0], ecx
mov ecx, edx
shr ecx, 0x10
movzx ecx, cl
mov dword [ebp - 0x90c], edx
mov dword [eax + 0xa4], edx
mov ecx, dword [ecx*4 + str.cwko0]
xor ecx, 0x40
shl ecx, 8
mov dword [ebp - 0x910], ecx
mov ecx, edx
mov edx, dword [ebp - 0x910]
shr ecx, 8
movzx ecx, cl
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x90c]
mov dword [ebp - 0x910], edx
shl dword [ebp - 0x910], 8
mov edx, dword [ebp - 0x910]
movzx ecx, cl
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x90c]
mov dword [ebp - 0x910], edx
shl dword [ebp - 0x910], 8
mov edx, dword [ebp - 0x910]
shr ecx, 0x18
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, edx
mov dword [ebp - 0x910], edx
xor ecx, dword [ebp - 0x914]
mov dword [ebp - 0x910], ecx
mov dword [eax + 0xa8], ecx
xor ecx, dword [ebp - 0x920]
mov dword [ebp - 0x918], ecx
mov dword [eax + 0xac], ecx
xor ecx, esi
mov esi, ecx
mov dword [ebp - 0x920], ecx
mov dword [eax + 0xb0], ecx
xor esi, edi
mov edi, esi
mov dword [eax + 0xb4], esi
xor edi, dword [ebp - 0x91c]
mov ecx, edi
mov dword [eax + 0xb8], edi
xor ecx, dword [ebp - 0x90c]
mov dword [ebp - 0x914], ecx
mov dword [eax + 0xbc], ecx
shr ecx, 0x10
movzx ecx, cl
mov edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x914]
xor edx, 0xffffff80
shl edx, 8
shr ecx, 8
movzx ecx, cl
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x914]
shl edx, 8
movzx ecx, cl
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x914]
shl edx, 8
shr ecx, 0x18
xor edx, dword [ecx*4 + str.cwko0]
xor edx, dword [ebp - 0x910]
xor dword [ebp - 0x918], edx
mov dword [eax + 0xc0], edx
mov edx, dword [ebp - 0x918]
mov dword [eax + 0xc4], edx
xor edx, dword [ebp - 0x920]
mov dword [eax + 0xc8], edx
xor edx, esi
mov dword [eax + 0xcc], edx
xor edx, edi
mov dword [eax + 0xd0], edx
mov dword [ebp - 0x918], edx
mov edx, dword [ebp - 0x914]
xor edx, dword [ebp - 0x918]
mov dword [eax + 0xd4], edx
add eax, 0xc0
jmp 0x575efe
cmp ecx, 0xe
jne 0x575efe
mov edx, dword [eax + 0x1c]
mov ecx, edx
shr ecx, 0x10
movzx ecx, cl
mov edi, dword [eax + 0x14]
mov esi, dword [ecx*4 + str.cwko0]
mov ecx, edx
shr ecx, 8
xor esi, 1
movzx ecx, cl
shl esi, 8
xor esi, dword [ecx*4 + str.cwko0]
movzx ecx, dl
shl esi, 8
xor esi, dword [ecx*4 + str.cwko0]
mov ecx, edx
mov edx, dword [eax + 4]
shr ecx, 0x18
shl esi, 8
xor esi, dword [ecx*4 + str.cwko0]
xor esi, dword [eax]
mov ecx, dword [eax + 0xc]
xor edx, esi
mov dword [ebp - 0x91c], edx
mov dword [eax + 0x24], edx
mov dword [ebp - 0x920], esi
mov dword [eax + 0x20], esi
mov esi, dword [eax + 8]
xor esi, edx
xor ecx, esi
mov dword [eax + 0x28], esi
mov dword [ebp - 0x914], ecx
mov dword [eax + 0x2c], ecx
shr ecx, 0x18
mov edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x914]
shr ecx, 0x10
movzx ecx, cl
shl edx, 8
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x914]
shr ecx, 8
movzx ecx, cl
shl edx, 8
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x914]
movzx ecx, cl
shl edx, 8
xor edx, dword [ecx*4 + str.cwko0]
xor edx, dword [eax + 0x10]
mov ecx, dword [eax + 0x18]
xor edi, edx
xor ecx, edi
mov dword [ebp - 0x90c], edx
mov dword [eax + 0x30], edx
mov edx, dword [eax + 0x1c]
xor edx, ecx
mov dword [ebp - 0x924], ecx
mov dword [eax + 0x38], ecx
mov ecx, edx
shr ecx, 0x10
movzx ecx, cl
mov dword [ebp - 0x918], edx
mov dword [eax + 0x3c], edx
mov dword [eax + 0x34], edi
mov ecx, dword [ecx*4 + str.cwko0]
xor ecx, 2
shl ecx, 8
mov dword [ebp - 0x910], ecx
mov ecx, edx
mov edx, dword [ebp - 0x910]
shr ecx, 8
movzx ecx, cl
xor edx, dword [ecx*4 + str.cwko0]
mov dword [ebp - 0x910], edx
mov edx, dword [ebp - 0x918]
shl dword [ebp - 0x910], 8
movzx ecx, dl
mov edx, dword [ebp - 0x910]
xor edx, dword [ecx*4 + str.cwko0]
mov dword [ebp - 0x910], edx
mov ecx, dword [ebp - 0x918]
shl dword [ebp - 0x910], 8
shr ecx, 0x18
mov edx, dword [ebp - 0x910]
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, edx
mov dword [ebp - 0x910], edx
xor ecx, dword [ebp - 0x920]
mov dword [ebp - 0x910], ecx
mov dword [eax + 0x40], ecx
xor ecx, dword [ebp - 0x91c]
mov dword [ebp - 0x91c], ecx
mov edx, ecx
mov dword [eax + 0x44], ecx
xor edx, esi
mov ecx, dword [ebp - 0x914]
xor ecx, edx
mov dword [eax + 0x48], edx
mov dword [ebp - 0x914], ecx
mov dword [eax + 0x4c], ecx
shr ecx, 0x18
mov esi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x914]
shr ecx, 0x10
movzx ecx, cl
shl esi, 8
xor esi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x914]
shr ecx, 8
movzx ecx, cl
shl esi, 8
xor esi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x914]
movzx ecx, cl
shl esi, 8
xor esi, dword [ecx*4 + str.cwko0]
xor esi, dword [ebp - 0x90c]
mov ecx, dword [ebp - 0x918]
mov dword [ebp - 0x920], esi
mov dword [eax + 0x50], esi
xor esi, edi
mov edi, esi
mov dword [ebp - 0x928], esi
xor edi, dword [ebp - 0x924]
xor ecx, edi
mov dword [eax + 0x54], esi
mov dword [ebp - 0x918], ecx
mov dword [eax + 0x5c], ecx
shr ecx, 0x10
movzx ecx, cl
mov dword [eax + 0x58], edi
mov ecx, dword [ecx*4 + str.cwko0]
xor ecx, 4
shl ecx, 8
mov dword [ebp - 0x90c], ecx
mov ecx, dword [ebp - 0x918]
mov esi, dword [ebp - 0x90c]
shr ecx, 8
movzx ecx, cl
xor esi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x918]
mov dword [ebp - 0x90c], esi
shl dword [ebp - 0x90c], 8
mov esi, dword [ebp - 0x90c]
movzx ecx, cl
xor esi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x918]
mov dword [ebp - 0x90c], esi
shl dword [ebp - 0x90c], 8
mov esi, dword [ebp - 0x90c]
shr ecx, 0x18
xor esi, dword [ecx*4 + str.cwko0]
mov ecx, esi
mov dword [ebp - 0x90c], esi
xor ecx, dword [ebp - 0x910]
mov esi, dword [ebp - 0x91c]
xor esi, ecx
mov dword [ebp - 0x90c], ecx
mov dword [eax + 0x60], ecx
mov dword [ebp - 0x91c], esi
mov dword [eax + 0x64], esi
xor esi, edx
mov edx, dword [ebp - 0x914]
xor edx, esi
mov dword [ebp - 0x924], esi
mov ecx, edx
mov dword [ebp - 0x914], edx
shr ecx, 0x18
mov dword [eax + 0x6c], edx
mov dword [eax + 0x68], esi
mov edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x914]
shr ecx, 0x10
movzx ecx, cl
shl edx, 8
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x914]
shr ecx, 8
movzx ecx, cl
shl edx, 8
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x914]
movzx ecx, cl
shl edx, 8
xor edx, dword [ecx*4 + str.cwko0]
xor edx, dword [ebp - 0x920]
mov dword [ebp - 0x920], edx
mov dword [eax + 0x70], edx
xor edx, dword [ebp - 0x928]
mov esi, edx
mov dword [ebp - 0x928], edx
xor esi, edi
mov dword [eax + 0x74], edx
mov ecx, esi
mov dword [eax + 0x78], esi
xor ecx, dword [ebp - 0x918]
mov dword [ebp - 0x910], ecx
mov dword [eax + 0x7c], ecx
shr ecx, 0x10
movzx ecx, cl
mov edi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x910]
xor edi, 8
shr ecx, 8
movzx ecx, cl
shl edi, 8
xor edi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x910]
movzx ecx, cl
shl edi, 8
xor edi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x910]
shr ecx, 0x18
shl edi, 8
xor edi, dword [ecx*4 + str.cwko0]
xor edi, dword [ebp - 0x90c]
mov dword [ebp - 0x92c], edi
mov dword [eax + 0x80], edi
xor edi, dword [ebp - 0x91c]
mov dword [ebp - 0x90c], edi
mov dword [eax + 0x84], edi
xor edi, dword [ebp - 0x924]
mov edx, edi
mov dword [eax + 0x88], edi
xor edx, dword [ebp - 0x914]
mov ecx, edx
mov dword [ebp - 0x918], edx
shr ecx, 0x18
mov dword [eax + 0x8c], edx
mov ecx, dword [ecx*4 + str.cwko0]
shl ecx, 8
mov dword [ebp - 0x914], ecx
mov ecx, edx
mov edx, dword [ebp - 0x914]
shr ecx, 0x10
movzx ecx, cl
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x918]
mov dword [ebp - 0x914], edx
shl dword [ebp - 0x914], 8
shr ecx, 8
movzx ecx, cl
mov edx, dword [ebp - 0x914]
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x918]
movzx ecx, cl
mov dword [ebp - 0x914], edx
shl dword [ebp - 0x914], 8
mov edx, dword [ebp - 0x914]
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, edx
mov dword [ebp - 0x914], edx
xor ecx, dword [ebp - 0x920]
mov dword [ebp - 0x914], ecx
mov dword [eax + 0x90], ecx
xor ecx, dword [ebp - 0x928]
mov edx, ecx
mov dword [ebp - 0x928], ecx
mov dword [eax + 0x94], ecx
xor edx, esi
mov ecx, edx
mov dword [eax + 0x98], edx
xor ecx, dword [ebp - 0x910]
mov dword [ebp - 0x910], ecx
mov dword [eax + 0x9c], ecx
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x910]
xor esi, 0x10
shr ecx, 8
movzx ecx, cl
shl esi, 8
xor esi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x910]
movzx ecx, cl
shl esi, 8
xor esi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x910]
shr ecx, 0x18
shl esi, 8
xor esi, dword [ecx*4 + str.cwko0]
xor esi, dword [ebp - 0x92c]
mov ecx, dword [ebp - 0x90c]
xor ecx, esi
mov dword [ebp - 0x92c], esi
mov dword [ebp - 0x90c], ecx
mov dword [eax + 0xa4], ecx
mov dword [eax + 0xa0], esi
mov esi, ecx
mov ecx, dword [ebp - 0x918]
xor esi, edi
xor ecx, esi
mov dword [eax + 0xa8], esi
mov dword [ebp - 0x918], ecx
mov dword [eax + 0xac], ecx
shr ecx, 0x18
mov edi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x918]
shr ecx, 0x10
movzx ecx, cl
shl edi, 8
xor edi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x918]
shr ecx, 8
movzx ecx, cl
shl edi, 8
xor edi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x918]
movzx ecx, cl
shl edi, 8
xor edi, dword [ecx*4 + str.cwko0]
xor edi, dword [ebp - 0x914]
mov dword [ebp - 0x924], edi
mov dword [eax + 0xb0], edi
xor edi, dword [ebp - 0x928]
mov ecx, edi
mov dword [eax + 0xb4], edi
xor ecx, edx
mov edx, dword [ebp - 0x910]
mov dword [ebp - 0x928], ecx
xor edx, ecx
mov dword [eax + 0xb8], ecx
mov ecx, edx
mov dword [ebp - 0x910], edx
shr ecx, 0x10
movzx ecx, cl
mov dword [eax + 0xbc], edx
mov edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x910]
xor edx, 0x20
shr ecx, 8
movzx ecx, cl
shl edx, 8
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x910]
movzx ecx, cl
shl edx, 8
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x910]
shr ecx, 0x18
shl edx, 8
xor edx, dword [ecx*4 + str.cwko0]
xor edx, dword [ebp - 0x92c]
mov ecx, dword [ebp - 0x90c]
xor ecx, edx
mov dword [ebp - 0x92c], edx
mov dword [ebp - 0x90c], ecx
mov dword [eax + 0xc4], ecx
xor ecx, esi
mov dword [ebp - 0x920], ecx
mov dword [eax + 0xc8], ecx
mov dword [eax + 0xc0], edx
mov edx, ecx
xor edx, dword [ebp - 0x918]
mov ecx, edx
mov dword [ebp - 0x91c], edx
shr ecx, 0x18
mov dword [eax + 0xcc], edx
mov esi, dword [ecx*4 + str.cwko0]
mov ecx, edx
shr ecx, 0x10
movzx ecx, cl
shl esi, 8
xor esi, dword [ecx*4 + str.cwko0]
mov ecx, edx
shr ecx, 8
movzx ecx, cl
shl esi, 8
xor esi, dword [ecx*4 + str.cwko0]
movzx ecx, dl
shl esi, 8
xor esi, dword [ecx*4 + str.cwko0]
xor esi, dword [ebp - 0x924]
mov ecx, esi
mov dword [ebp - 0x924], esi
xor ecx, edi
mov dword [eax + 0xd0], esi
mov edi, ecx
mov dword [ebp - 0x914], ecx
xor edi, dword [ebp - 0x928]
mov dword [eax + 0xd4], ecx
mov ecx, edi
xor ecx, dword [ebp - 0x910]
mov dword [ebp - 0x918], ecx
mov dword [eax + 0xdc], ecx
shr ecx, 0x10
movzx ecx, cl
mov dword [eax + 0xd8], edi
mov edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x918]
xor edx, 0x40
shr ecx, 8
movzx ecx, cl
shl edx, 8
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x918]
movzx ecx, cl
shl edx, 8
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x918]
shr ecx, 0x18
shl edx, 8
xor edx, dword [ecx*4 + str.cwko0]
xor edx, dword [ebp - 0x92c]
mov ecx, dword [ebp - 0x90c]
xor ecx, edx
mov dword [eax + 0xe0], edx
mov dword [eax + 0xe4], ecx
xor ecx, dword [ebp - 0x920]
mov dword [eax + 0xe8], ecx
xor ecx, dword [ebp - 0x91c]
mov dword [eax + 0xec], ecx
mov dword [ebp - 0x90c], ecx
shr ecx, 0x18
mov edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x90c]
shr ecx, 0x10
shl edx, 8
movzx ecx, cl
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x90c]
shr ecx, 8
shl edx, 8
movzx ecx, cl
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x90c]
shl edx, 8
movzx ecx, cl
xor edx, dword [ecx*4 + str.cwko0]
xor edx, esi
mov dword [eax + 0xf0], edx
xor edx, dword [ebp - 0x914]
mov dword [eax + 0xf4], edx
xor edx, edi
mov dword [eax + 0xf8], edx
xor edx, dword [ebp - 0x918]
mov dword [eax + 0xfc], edx
add eax, 0xe0
cmp byte [0x7dc600], 0
jne 0x575f5c
xor esi, esi
nop dword [eax]
mov edx, dword [esi + str.cwko0]
mov ecx, dword [edx*4 + 0x6945b0]
mov dword [esi + 0x7db600], ecx
mov ecx, dword [edx*4 + 0x6949b0]
mov dword [esi + 0x7dba00], ecx
mov ecx, dword [edx*4 + 0x694db0]
mov dword [esi + 0x7dbe00], ecx
mov ecx, dword [edx*4 + 0x6951b0]
mov dword [esi + 0x7dc200], ecx
add esi, 4
cmp esi, 0x400
jl 0x575f10
mov byte [0x7dc600], 1
mov edx, dword [ebp - 0x930]
mov ecx, dword [eax]
lea edi, [edx + 0x18c]
mov dword [edi], ecx
mov ecx, dword [eax + 4]
mov dword [edi + 4], ecx
mov ecx, dword [eax + 8]
mov dword [edi + 8], ecx
mov ecx, dword [eax + 0xc]
add eax, 0x10
mov dword [edi + 0xc], ecx
add edi, 0x10
cmp dword [edx + 0x28c], 1
mov dword [ebp - 0x91c], 1
jle 0x5760b8
nop dword [eax + eax]
mov ecx, dword [eax - 0x20]
mov esi, dword [eax - 0x20]
shr ecx, 0x10
movzx edx, cl
mov ecx, esi
shr ecx, 8
movzx ecx, cl
mov edx, dword [edx*4 + 0x7dba00]
xor edx, dword [ecx*4 + 0x7dbe00]
mov ecx, esi
shr ecx, 0x18
xor edx, dword [ecx*4 + 0x7db600]
mov ecx, esi
movzx ecx, cl
xor edx, dword [ecx*4 + 0x7dc200]
mov dword [edi], edx
mov ecx, dword [eax - 0x1c]
mov esi, dword [eax - 0x1c]
shr ecx, 0x10
movzx edx, cl
mov ecx, esi
shr ecx, 8
movzx ecx, cl
mov edx, dword [edx*4 + 0x7dba00]
xor edx, dword [ecx*4 + 0x7dbe00]
mov ecx, esi
shr ecx, 0x18
xor edx, dword [ecx*4 + 0x7db600]
mov ecx, esi
movzx ecx, cl
xor edx, dword [ecx*4 + 0x7dc200]
mov dword [edi + 4], edx
mov ecx, dword [eax - 0x18]
mov esi, dword [eax - 0x18]
shr ecx, 0x10
movzx edx, cl
mov ecx, esi
shr ecx, 8
movzx ecx, cl
mov edx, dword [edx*4 + 0x7dba00]
xor edx, dword [ecx*4 + 0x7dbe00]
mov ecx, esi
shr ecx, 0x18
xor edx, dword [ecx*4 + 0x7db600]
mov ecx, esi
movzx ecx, cl
xor edx, dword [ecx*4 + 0x7dc200]
mov dword [edi + 8], edx
mov ecx, dword [eax - 0x14]
mov esi, dword [eax - 0x14]
add eax, 0xfffffff0
shr ecx, 0x10
movzx edx, cl
mov ecx, esi
shr ecx, 8
movzx ecx, cl
mov edx, dword [edx*4 + 0x7dba00]
xor edx, dword [ecx*4 + 0x7dbe00]
mov ecx, esi
shr ecx, 0x18
xor edx, dword [ecx*4 + 0x7db600]
mov ecx, esi
movzx ecx, cl
xor edx, dword [ecx*4 + 0x7dc200]
mov ecx, dword [ebp - 0x91c]
mov dword [edi + 0xc], edx
inc ecx
mov edx, dword [ebp - 0x930]
add edi, 0x10
mov dword [ebp - 0x91c], ecx
cmp ecx, dword [edx + 0x28c]
jl 0x575fa0
mov ecx, dword [eax - 0x20]
mov dword [edi], ecx
mov ecx, dword [eax - 0x1c]
mov dword [edi + 4], ecx
mov ecx, dword [eax - 0x18]
mov dword [edi + 8], ecx
mov eax, dword [eax - 0x14]
mov dword [edi + 0xc], eax
mov edi, dword [ebp - 0x934]
test edi, edi
je 0x57610f
mov esi, dword [ebp - 0x938]
mov eax, dword [esi + 8]
cmp eax, 3
je 0x5760ec
cmp eax, 4
jne 0x57610f
push dword [edx + 0x80]
lea ecx, [esi + 0x34]
call fcn.0046e290
push eax
lea ecx, [esi + 0x34]
call fcn.004a2ca0
push eax
lea ecx, [edi + 0x484]
call fcn.0060e750
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00622073
mov esp, ebp
pop ebp
ret 0x10