Function at 0x4d9610
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 0x5c0c66
mov eax, dword fs:[0]
push eax
sub esp, 0x92c
mov eax, dword [0x68cc00]
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 - 0x918], edx
cmp eax, 3
je 0x4d967c
cmp eax, 6
je 0x4d967c
cmp eax, 2
je 0x4d967c
cmp eax, 5
je 0x4d967c
cmp eax, 4
jne 0x4d9680
mov byte [ebp + 8], 1
cmp eax, 8
jne 0x4d9832
test ecx, ecx
je 0x4d9826
push 0x290
lea eax, [ebp - 0x3a0]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea ecx, [ebp - 0x3a0]
call fcn.004de6d0
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.004d9300
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.004d9230
lea ecx, [edi + 0x14]
mov byte [ebp - 4], 2
mov dword [ebp - 0x108], 1
call fcn.00402f80
push eax
lea eax, [edi + 0x8c]
push eax
lea ecx, [ebp - 0xfc]
call fcn.00435260
lea ecx, [edi + 0x14]
call fcn.00402f80
push dword [ebp - 0x918]
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.004d9610
call fcn.0040de50
cmp byte [edi + 0xac], 0
mov byte [ebp - 0x918], al
je 0x4d97a5
lea eax, [ebp - 0x40]
push eax
push dword [edi + 0xb4]
push dword [edi + 0xb0]
push dword [ebp - 0x918]
call fcn.0040e6f0
push 8
lea eax, [ebp - 0x38]
push 0
push eax
call fcn.0040de90
add esp, 0x1c
jmp 0x4d97b0
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.004dd360
lea ecx, [ebp - 0x908]
call fcn.004d93f0
lea ecx, [ebp - 0xa4]
mov dword [ebp - 0x110], vtable._ckSymSettings.0
call fcn.00434c90
lea ecx, [ebp - 0xc0]
call fcn.00434c90
lea ecx, [ebp - 0xdc]
call fcn.00434c90
lea ecx, [ebp - 0xfc]
call fcn.00434c90
lea ecx, [ebp - 0x3a0]
mov dword [ebp - 4], 0xffffffff
call fcn.004de750
mov esi, dword [ebp - 0x930]
jmp 0x4d9832
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 0x4d9859
mov eax, 0x100
mov dword [edi + 0x10], 0x100
mov dword [ebp - 0x91c], eax
jmp 0x4d9884
cmp eax, 0x81
jl 0x4d9873
mov dword [edi + 0x10], 0xc0
mov dword [ebp - 0x91c], 0xc0
jmp 0x4d9884
mov dword [edi + 0x10], 0x80
mov dword [ebp - 0x91c], 0x80
xorps xmm0, xmm0
add edi, 0x14
mov ecx, edi
movups xmmword [ebp - 0x30], xmm0
movups xmmword [ebp - 0x20], xmm0
call fcn.00438c00
test eax, eax
je 0x4d98e6
mov ecx, edi
call fcn.00402f80
test eax, eax
je 0x4d98e6
mov ecx, edi
call fcn.00402f80
mov ecx, edi
cmp eax, 0x20
jbe 0x4d98cc
call fcn.00438c00
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x30], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [ebp - 0x20], xmm0
jmp 0x4d98e6
call fcn.00402f80
push eax
mov ecx, edi
call fcn.00438c00
push eax
lea eax, [ebp - 0x30]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov edi, dword [ebp - 0x91c]
mov eax, edi
sub eax, 0x80
je 0x4d991e
sub eax, 0x40
je 0x4d9912
sub eax, 0x40
je 0x4d9906
xor al, al
jmp 0x4dade1
mov dword [esi + 0x28c], 0xe
jmp 0x4d9928
mov dword [esi + 0x28c], 0xc
jmp 0x4d9928
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 0x4d9933
mov ecx, dword [ebp - 0x930]
mov ecx, dword [ecx + 0x28c]
cmp ecx, 0xa
jne 0x4d9e9f
mov edx, dword [eax + 0xc]
mov ecx, edx
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [eax + 8]
mov edi, dword [ecx*4 + str.cwko0]
mov ecx, edx
shr ecx, 8
xor edi, 1
movzx ecx, cl
shl edi, 8
xor edi, dword [ecx*4 + str.cwko0]
movzx ecx, dl
shl edi, 8
xor edi, dword [ecx*4 + str.cwko0]
mov ecx, edx
mov edx, dword [eax + 4]
shr ecx, 0x18
shl edi, 8
xor edi, dword [ecx*4 + str.cwko0]
xor edi, dword [eax]
xor edx, edi
mov dword [eax + 0x10], edi
xor esi, edx
mov dword [ebp - 0x918], edx
mov dword [eax + 0x14], edx
mov edx, dword [eax + 0xc]
xor edx, esi
mov dword [eax + 0x18], esi
mov ecx, edx
mov dword [ebp - 0x910], edx
shr ecx, 0x10
movzx ecx, cl
mov dword [eax + 0x1c], edx
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 - 0x910]
movzx ecx, cl
mov dword [ebp - 0x90c], edx
shl dword [ebp - 0x90c], 8
mov edx, dword [ebp - 0x90c]
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x910]
shr ecx, 0x18
mov dword [ebp - 0x90c], edx
shl dword [ebp - 0x90c], 8
mov edx, dword [ebp - 0x90c]
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, edx
mov dword [ebp - 0x90c], edx
xor ecx, edi
mov edi, ecx
mov dword [ebp - 0x90c], ecx
xor edi, dword [ebp - 0x918]
mov dword [eax + 0x20], ecx
mov edx, edi
mov ecx, dword [ebp - 0x910]
xor edx, esi
xor ecx, edx
mov dword [eax + 0x24], edi
mov dword [ebp - 0x910], ecx
mov dword [eax + 0x2c], ecx
shr ecx, 0x10
movzx ecx, cl
mov dword [eax + 0x28], edx
mov esi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x910]
xor esi, 4
shr ecx, 8
movzx ecx, cl
shl esi, 8
xor esi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x910]
shl esi, 8
movzx ecx, cl
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 - 0x90c]
mov dword [ebp - 0x918], esi
mov dword [eax + 0x30], esi
xor esi, edi
mov dword [ebp - 0x914], esi
mov dword [eax + 0x34], esi
xor esi, edx
mov edx, esi
mov dword [eax + 0x38], esi
xor edx, dword [ebp - 0x910]
mov ecx, edx
mov dword [eax + 0x3c], edx
shr ecx, 0x10
movzx ecx, cl
mov edi, dword [ecx*4 + str.cwko0]
mov ecx, edx
shr ecx, 8
xor edi, 8
movzx ecx, cl
shl edi, 8
xor edi, dword [ecx*4 + str.cwko0]
shl edi, 8
movzx ecx, dl
xor edi, dword [ecx*4 + str.cwko0]
mov ecx, edx
shr ecx, 0x18
shl edi, 8
xor edi, dword [ecx*4 + str.cwko0]
xor edi, dword [ebp - 0x918]
mov ecx, dword [ebp - 0x914]
xor ecx, edi
mov dword [ebp - 0x918], edi
mov dword [ebp - 0x914], ecx
mov dword [eax + 0x44], ecx
mov dword [eax + 0x40], edi
mov edi, ecx
xor edi, esi
mov ecx, edi
mov dword [eax + 0x48], edi
xor ecx, edx
mov dword [ebp - 0x90c], ecx
mov edx, ecx
mov dword [eax + 0x4c], ecx
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [ecx*4 + str.cwko0]
mov ecx, edx
shr ecx, 8
xor esi, 0x10
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
shl esi, 8
xor esi, dword [ecx*4 + str.cwko0]
xor esi, dword [ebp - 0x918]
mov ecx, dword [ebp - 0x914]
xor ecx, esi
mov dword [eax + 0x50], esi
mov edx, ecx
mov dword [ebp - 0x914], ecx
mov dword [eax + 0x54], ecx
xor edx, edi
mov ecx, dword [ebp - 0x90c]
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]
mov ecx, dword [ebp - 0x90c]
movzx ecx, cl
shl edi, 8
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]
mov ecx, dword [ebp - 0x914]
xor edi, esi
xor ecx, edi
mov dword [eax + 0x60], edi
mov esi, ecx
mov dword [ebp - 0x914], ecx
mov dword [eax + 0x64], ecx
xor esi, edx
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 - 0x914]
xor edx, edi
xor ecx, edx
mov dword [ebp - 0x918], edx
mov dword [ebp - 0x914], ecx
mov dword [eax + 0x74], ecx
mov dword [eax + 0x70], edx
mov edx, ecx
mov ecx, dword [ebp - 0x90c]
xor edx, esi
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 edi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x90c]
xor edi, 0xffffff80
shr ecx, 8
movzx ecx, cl
shl edi, 8
xor edi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x90c]
movzx ecx, cl
shl edi, 8
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 - 0x918]
mov ecx, dword [ebp - 0x914]
xor ecx, edi
mov dword [eax + 0x80], edi
mov dword [ebp - 0x914], ecx
mov dword [eax + 0x84], ecx
xor ecx, edx
mov edx, ecx
mov dword [ebp - 0x918], ecx
xor edx, dword [ebp - 0x90c]
mov dword [eax + 0x88], ecx
mov ecx, edx
shr ecx, 0x10
movzx ecx, cl
mov dword [eax + 0x8c], edx
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, edi
mov edi, ecx
mov dword [ebp - 0x90c], ecx
xor edi, dword [ebp - 0x914]
mov dword [eax + 0x90], ecx
mov dword [ebp - 0x91c], edi
mov dword [eax + 0x94], edi
xor edi, dword [ebp - 0x918]
mov ecx, edi
mov esi, dword [ebp - 0x91c]
xor ecx, edx
mov dword [eax + 0x98], edi
mov dword [ebp - 0x910], ecx
mov dword [eax + 0x9c], ecx
shr ecx, 0x10
movzx ecx, cl
mov edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x910]
xor edx, 0x36
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 - 0x90c]
xor esi, edx
mov dword [eax + 0xa0], edx
mov dword [eax + 0xa4], esi
xor esi, edi
mov dword [eax + 0xa8], esi
xor esi, dword [ebp - 0x910]
mov dword [eax + 0xac], esi
add eax, 0xa0
jmp 0x4dabcd
cmp ecx, 0xc
jne 0x4da3f7
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 - 0x918], edx
mov dword [eax + 0x18], edx
mov edx, dword [eax + 8]
xor edx, ecx
mov dword [ebp - 0x914], ecx
xor esi, edx
mov dword [eax + 0x1c], ecx
mov dword [ebp - 0x910], 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 - 0x91c], 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 - 0x91c]
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 - 0x91c]
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 - 0x918]
mov edx, dword [ebp - 0x914]
xor edx, ecx
mov dword [ebp - 0x90c], ecx
mov dword [ebp - 0x914], edx
mov dword [eax + 0x34], edx
xor edx, dword [ebp - 0x910]
mov dword [ebp - 0x918], 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 - 0x91c]
mov dword [ebp - 0x910], ecx
mov dword [eax + 0x44], ecx
shr ecx, 0x10
movzx ecx, cl
mov edi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x910]
xor edi, 4
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 ecx, dword [ebp - 0x914]
xor ecx, edi
mov dword [ebp - 0x91c], edi
mov dword [ebp - 0x914], ecx
mov dword [eax + 0x4c], ecx
mov dword [eax + 0x48], edi
mov edi, ecx
xor edi, dword [ebp - 0x918]
mov ecx, edi
mov dword [eax + 0x50], edi
xor ecx, edx
mov dword [ebp - 0x918], ecx
mov edx, ecx
mov dword [eax + 0x54], ecx
xor edx, esi
mov ecx, dword [ebp - 0x910]
xor ecx, edx
mov dword [eax + 0x58], edx
mov dword [ebp - 0x910], ecx
mov dword [eax + 0x5c], ecx
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x910]
xor esi, 8
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 - 0x91c]
mov ecx, dword [ebp - 0x914]
xor ecx, esi
mov dword [ebp - 0x91c], esi
mov dword [ebp - 0x914], ecx
mov dword [eax + 0x64], ecx
xor ecx, edi
mov edi, ecx
mov dword [ebp - 0x920], ecx
xor edi, dword [ebp - 0x918]
mov dword [eax + 0x68], ecx
mov ecx, edi
xor ecx, edx
mov dword [eax + 0x60], esi
mov edx, ecx
mov dword [ebp - 0x918], ecx
xor edx, dword [ebp - 0x910]
mov dword [eax + 0x70], ecx
mov ecx, edx
shr ecx, 0x10
mov dword [eax + 0x6c], edi
mov dword [eax + 0x74], edx
movzx ecx, cl
mov ecx, dword [ecx*4 + str.cwko0]
xor ecx, 0x10
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]
mov dword [ebp - 0x90c], esi
shl dword [ebp - 0x90c], 8
mov esi, dword [ebp - 0x90c]
movzx ecx, dl
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 esi, dword [ebp - 0x914]
xor esi, ecx
mov dword [ebp - 0x90c], ecx
mov dword [eax + 0x78], ecx
mov dword [ebp - 0x914], esi
mov dword [eax + 0x7c], esi
xor esi, dword [ebp - 0x920]
mov dword [ebp - 0x91c], esi
mov dword [eax + 0x80], esi
xor esi, edi
mov edi, esi
mov dword [eax + 0x84], esi
xor edi, dword [ebp - 0x918]
mov ecx, edi
mov dword [eax + 0x88], edi
xor ecx, edx
mov dword [ebp - 0x910], ecx
mov dword [eax + 0x8c], ecx
shr ecx, 0x10
movzx ecx, cl
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 - 0x90c]
mov ecx, dword [ebp - 0x914]
xor ecx, edx
mov dword [eax + 0x90], edx
mov dword [ebp - 0x914], ecx
mov dword [eax + 0x94], ecx
mov ecx, dword [ebp - 0x91c]
xor ecx, dword [ebp - 0x914]
xor esi, ecx
mov dword [ebp - 0x91c], ecx
mov dword [eax + 0x98], ecx
xor edi, esi
mov ecx, dword [ebp - 0x910]
xor ecx, edi
mov dword [ebp - 0x920], esi
mov dword [ebp - 0x910], ecx
mov dword [eax + 0xa4], ecx
shr ecx, 0x10
movzx ecx, cl
mov dword [eax + 0x9c], esi
mov dword [ebp - 0x918], edi
mov dword [eax + 0xa0], edi
mov esi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x910]
xor esi, 0x40
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, edx
mov dword [ebp - 0x90c], esi
mov dword [eax + 0xa8], esi
xor esi, dword [ebp - 0x914]
mov edi, esi
mov dword [eax + 0xac], esi
xor edi, dword [ebp - 0x91c]
mov ecx, edi
mov dword [eax + 0xb0], edi
xor ecx, dword [ebp - 0x920]
mov dword [ebp - 0x920], ecx
mov dword [eax + 0xb4], ecx
xor ecx, dword [ebp - 0x918]
mov dword [ebp - 0x918], ecx
mov dword [eax + 0xb8], ecx
xor ecx, dword [ebp - 0x910]
mov dword [ebp - 0x910], ecx
mov dword [eax + 0xbc], ecx
shr ecx, 0x10
movzx ecx, cl
mov edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x910]
xor edx, 0xffffff80
shl edx, 8
shr ecx, 8
movzx ecx, cl
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x910]
shl edx, 8
movzx ecx, cl
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x910]
shl edx, 8
shr ecx, 0x18
xor edx, dword [ecx*4 + str.cwko0]
xor edx, dword [ebp - 0x90c]
mov dword [eax + 0xc0], edx
xor edx, esi
mov esi, dword [ebp - 0x910]
mov dword [eax + 0xc4], edx
xor edx, edi
mov dword [eax + 0xc8], edx
xor edx, dword [ebp - 0x920]
mov dword [eax + 0xcc], edx
xor edx, dword [ebp - 0x918]
xor esi, edx
mov dword [eax + 0xd0], edx
mov dword [eax + 0xd4], esi
add eax, 0xc0
jmp 0x4dabcd
cmp ecx, 0xe
jne 0x4dabcd
mov ecx, dword [eax + 0x1c]
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [eax + 0x14]
mov edi, dword [eax + 0x18]
mov edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [eax + 0x1c]
xor edx, 1
shr ecx, 8
movzx ecx, cl
shl edx, 8
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [eax + 0x1c]
movzx ecx, cl
shl edx, 8
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [eax + 0x1c]
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 - 0x920], edx
mov dword [ebp - 0x91c], ecx
mov dword [eax + 0x24], ecx
mov dword [eax + 0x20], edx
mov edx, dword [eax + 8]
xor edx, ecx
mov ecx, dword [eax + 0xc]
xor ecx, edx
mov dword [ebp - 0x918], edx
mov dword [ebp - 0x914], ecx
mov dword [eax + 0x2c], ecx
shr ecx, 0x18
mov dword [eax + 0x28], edx
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]
xor esi, edx
mov dword [ebp - 0x924], edx
mov dword [eax + 0x30], edx
xor edi, esi
mov edx, dword [eax + 0x1c]
xor edx, edi
mov dword [eax + 0x34], esi
mov ecx, edx
mov dword [ebp - 0x910], edx
shr ecx, 0x10
movzx ecx, cl
mov dword [eax + 0x3c], edx
mov dword [eax + 0x38], 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 - 0x910]
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 dword [ebp - 0x90c], edx
mov ecx, dword [ebp - 0x910]
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 - 0x920]
mov edx, dword [ebp - 0x91c]
xor edx, ecx
mov dword [ebp - 0x90c], ecx
mov dword [eax + 0x40], ecx
mov ecx, edx
xor ecx, dword [ebp - 0x918]
mov dword [ebp - 0x91c], edx
mov dword [ebp - 0x920], ecx
mov dword [eax + 0x44], edx
mov edx, dword [ebp - 0x914]
xor edx, ecx
mov dword [eax + 0x48], ecx
mov ecx, edx
mov dword [ebp - 0x914], edx
shr ecx, 0x18
mov dword [eax + 0x4c], edx
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 - 0x924]
mov dword [ebp - 0x924], edx
mov dword [eax + 0x50], edx
xor edx, esi
mov esi, edx
mov dword [ebp - 0x928], edx
xor esi, edi
mov dword [eax + 0x54], edx
mov edx, dword [ebp - 0x910]
xor edx, esi
mov dword [eax + 0x58], esi
mov ecx, edx
mov dword [ebp - 0x910], edx
shr ecx, 0x10
movzx ecx, cl
mov dword [eax + 0x5c], edx
mov edi, dword [ecx*4 + str.cwko0]
mov ecx, edx
xor edi, 4
shr ecx, 8
shl edi, 8
movzx ecx, cl
xor edi, dword [ecx*4 + str.cwko0]
shl edi, 8
movzx ecx, dl
xor edi, dword [ecx*4 + str.cwko0]
mov ecx, edx
mov edx, dword [ebp - 0x914]
shl edi, 8
shr ecx, 0x18
xor edi, dword [ecx*4 + str.cwko0]
xor edi, dword [ebp - 0x90c]
mov dword [ebp - 0x92c], edi
mov dword [eax + 0x60], edi
xor edi, dword [ebp - 0x91c]
mov dword [ebp - 0x918], edi
mov dword [eax + 0x64], edi
xor edi, dword [ebp - 0x920]
xor edx, edi
mov dword [eax + 0x68], edi
mov dword [ebp - 0x914], edx
mov dword [eax + 0x6c], edx
mov ecx, edx
shr ecx, 0x18
mov ecx, dword [ecx*4 + str.cwko0]
shl ecx, 8
mov dword [ebp - 0x90c], ecx
mov ecx, edx
mov edx, dword [ebp - 0x90c]
shr ecx, 0x10
movzx ecx, cl
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x914]
shr ecx, 8
movzx ecx, cl
mov dword [ebp - 0x90c], edx
shl dword [ebp - 0x90c], 8
mov edx, dword [ebp - 0x90c]
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x914]
movzx ecx, cl
mov dword [ebp - 0x90c], edx
shl dword [ebp - 0x90c], 8
mov edx, dword [ebp - 0x90c]
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, edx
mov dword [ebp - 0x90c], edx
xor ecx, dword [ebp - 0x924]
mov dword [ebp - 0x90c], ecx
mov dword [eax + 0x70], ecx
xor ecx, dword [ebp - 0x928]
mov edx, ecx
mov dword [ebp - 0x928], ecx
mov dword [eax + 0x74], ecx
xor edx, esi
mov ecx, edx
mov dword [eax + 0x78], edx
xor ecx, dword [ebp - 0x910]
mov dword [ebp - 0x91c], ecx
mov dword [eax + 0x7c], ecx
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x91c]
xor esi, 8
shr ecx, 8
movzx ecx, cl
shl esi, 8
xor esi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x91c]
movzx ecx, cl
shl esi, 8
xor esi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x91c]
shr ecx, 0x18
shl esi, 8
xor esi, dword [ecx*4 + str.cwko0]
xor esi, dword [ebp - 0x92c]
mov ecx, dword [ebp - 0x918]
xor ecx, esi
mov dword [ebp - 0x92c], esi
mov dword [ebp - 0x918], ecx
mov dword [eax + 0x84], ecx
mov dword [eax + 0x80], esi
mov esi, ecx
xor esi, edi
mov ecx, esi
mov dword [eax + 0x88], esi
xor ecx, dword [ebp - 0x914]
mov dword [ebp - 0x910], ecx
mov dword [eax + 0x8c], ecx
shr ecx, 0x18
mov edi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x910]
shr ecx, 0x10
movzx ecx, cl
shl edi, 8
xor edi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x910]
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]
xor edi, dword [ebp - 0x90c]
mov dword [ebp - 0x924], edi
mov dword [eax + 0x90], edi
xor edi, dword [ebp - 0x928]
mov ecx, edi
mov dword [eax + 0x94], edi
xor ecx, edx
mov dword [ebp - 0x928], ecx
mov dword [eax + 0x98], ecx
xor ecx, dword [ebp - 0x91c]
mov dword [ebp - 0x914], ecx
mov dword [eax + 0x9c], ecx
shr ecx, 0x10
movzx ecx, cl
mov edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x914]
xor edx, 0x10
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]
mov ecx, dword [ebp - 0x914]
shr ecx, 0x18
shl edx, 8
xor edx, dword [ecx*4 + str.cwko0]
xor edx, dword [ebp - 0x92c]
mov ecx, dword [ebp - 0x910]
mov dword [ebp - 0x92c], edx
mov dword [eax + 0xa0], edx
xor edx, dword [ebp - 0x918]
mov dword [ebp - 0x918], edx
mov dword [eax + 0xa4], edx
xor edx, esi
xor ecx, edx
mov dword [eax + 0xa8], edx
mov dword [ebp - 0x910], ecx
mov dword [eax + 0xac], ecx
shr ecx, 0x18
mov esi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x910]
shr ecx, 0x10
movzx ecx, cl
shl esi, 8
xor esi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x910]
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]
xor esi, dword [ebp - 0x924]
mov ecx, dword [ebp - 0x914]
mov dword [ebp - 0x924], esi
mov dword [eax + 0xb0], esi
xor esi, edi
mov edi, esi
mov dword [ebp - 0x920], esi
xor edi, dword [ebp - 0x928]
xor ecx, edi
mov dword [eax + 0xb4], esi
mov dword [ebp - 0x914], ecx
mov dword [eax + 0xbc], ecx
shr ecx, 0x10
movzx ecx, cl
mov dword [eax + 0xb8], edi
mov ecx, dword [ecx*4 + str.cwko0]
xor ecx, 0x20
shl ecx, 8
mov dword [ebp - 0x90c], ecx
mov ecx, dword [ebp - 0x914]
mov esi, dword [ebp - 0x90c]
shr ecx, 8
movzx ecx, cl
xor esi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x914]
movzx ecx, cl
mov dword [ebp - 0x90c], esi
shl dword [ebp - 0x90c], 8
mov esi, dword [ebp - 0x90c]
xor esi, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x914]
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 - 0x92c]
mov esi, dword [ebp - 0x918]
xor esi, ecx
mov dword [ebp - 0x90c], ecx
mov dword [eax + 0xc0], ecx
mov dword [ebp - 0x918], esi
mov dword [eax + 0xc4], esi
xor esi, edx
mov edx, esi
mov dword [ebp - 0x92c], esi
xor edx, dword [ebp - 0x910]
mov ecx, edx
mov dword [eax + 0xc8], esi
shr ecx, 0x18
mov dword [ebp - 0x928], edx
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, dword [ebp - 0x920]
mov dword [ebp - 0x920], ecx
mov dword [eax + 0xd4], ecx
xor ecx, edi
mov dword [ebp - 0x910], ecx
mov dword [eax + 0xd8], ecx
xor ecx, dword [ebp - 0x914]
mov dword [ebp - 0x91c], ecx
mov dword [eax + 0xdc], ecx
shr ecx, 0x10
movzx ecx, cl
mov dword [eax + 0xd0], esi
mov edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x91c]
xor edx, 0x40
shr ecx, 8
movzx ecx, cl
shl edx, 8
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x91c]
movzx ecx, cl
shl edx, 8
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x91c]
shr ecx, 0x18
shl edx, 8
xor edx, dword [ecx*4 + str.cwko0]
xor edx, dword [ebp - 0x90c]
mov dword [eax + 0xe0], edx
xor edx, dword [ebp - 0x918]
mov dword [eax + 0xe4], edx
xor edx, dword [ebp - 0x92c]
mov dword [eax + 0xe8], edx
xor edx, dword [ebp - 0x928]
mov ecx, edx
mov dword [ebp - 0x918], edx
shr ecx, 0x18
mov dword [eax + 0xec], edx
mov edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x918]
shr ecx, 0x10
shl edx, 8
movzx ecx, cl
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x918]
shr ecx, 8
shl edx, 8
movzx ecx, cl
xor edx, dword [ecx*4 + str.cwko0]
mov ecx, dword [ebp - 0x918]
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 - 0x920]
mov dword [eax + 0xf4], edx
xor edx, dword [ebp - 0x910]
mov dword [eax + 0xf8], edx
xor edx, dword [ebp - 0x91c]
mov dword [eax + 0xfc], edx
add eax, 0xe0
cmp byte [0x690c48], 0
jne 0x4dac2c
xor esi, esi
nop dword [eax + eax]
mov edx, dword [esi + str.cwko0]
mov ecx, dword [edx*4 + 0x619768]
mov dword [esi + 0x68fc48], ecx
mov ecx, dword [edx*4 + 0x619b68]
mov dword [esi + 0x690048], ecx
mov ecx, dword [edx*4 + 0x619f68]
mov dword [esi + 0x690448], ecx
mov ecx, dword [edx*4 + 0x61a368]
mov dword [esi + 0x690848], ecx
add esi, 4
cmp esi, 0x400
jl 0x4dabe0
mov byte [0x690c48], 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 - 0x918], 1
jle 0x4dad88
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 + 0x690048]
xor edx, dword [ecx*4 + 0x690448]
mov ecx, esi
shr ecx, 0x18
xor edx, dword [ecx*4 + 0x68fc48]
mov ecx, esi
movzx ecx, cl
xor edx, dword [ecx*4 + 0x690848]
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 + 0x690048]
xor edx, dword [ecx*4 + 0x690448]
mov ecx, esi
shr ecx, 0x18
xor edx, dword [ecx*4 + 0x68fc48]
mov ecx, esi
movzx ecx, cl
xor edx, dword [ecx*4 + 0x690848]
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 + 0x690048]
xor edx, dword [ecx*4 + 0x690448]
mov ecx, esi
shr ecx, 0x18
xor edx, dword [ecx*4 + 0x68fc48]
mov ecx, esi
movzx ecx, cl
xor edx, dword [ecx*4 + 0x690848]
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 + 0x690048]
xor edx, dword [ecx*4 + 0x690448]
mov ecx, esi
shr ecx, 0x18
xor edx, dword [ecx*4 + 0x68fc48]
mov ecx, esi
movzx ecx, cl
xor edx, dword [ecx*4 + 0x690848]
mov ecx, dword [ebp - 0x918]
mov dword [edi + 0xc], edx
inc ecx
mov edx, dword [ebp - 0x930]
add edi, 0x10
mov dword [ebp - 0x918], ecx
cmp ecx, dword [edx + 0x28c]
jl 0x4dac70
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 0x4daddf
mov esi, dword [ebp - 0x938]
mov eax, dword [esi + 8]
cmp eax, 3
je 0x4dadbc
cmp eax, 4
jne 0x4daddf
push dword [edx + 0x80]
lea ecx, [esi + 0x34]
call fcn.00402f80
push eax
lea ecx, [esi + 0x34]
call fcn.00438c00
push eax
lea ecx, [edi + 0x484]
call fcn.00593cb0
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.005af618
mov esp, ebp
pop ebp
ret 0x10