Function at 0x40ee20
Capabilities:
Encode data using base64
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x56c900
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x7e0
push ebx
push esi
push edi
mov ebx, vtable.Xenesis2::Foundation::Memory::xEncryptData_int_.0
push 1
mov dword [esp + 0x50], ebx
call fcn.004ce8c0
mov ecx, eax
call fcn.0040af50
push 1
lea ecx, [esp + 0x14]
push ecx
xor edi, edi
push eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x1c], edi
call fcn.004ce8c0
mov esi, eax
call fcn.0040aeb0
mov dword [esp + 0x7f4], edi
push 1
mov dword [esp + 0x94], ebx
call fcn.004ce8c0
mov ecx, eax
call fcn.0040af50
push 1
lea edx, [esp + 0x14]
push edx
push eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0x1c], edi
call fcn.004ce8c0
mov esi, eax
call fcn.0040aeb0
mov byte [esp + 0x7f4], 1
push 1
mov dword [esp + 0x84], ebx
call fcn.004ce8c0
mov ecx, eax
call fcn.0040af50
push 1
lea ecx, [esp + 0x14]
push ecx
push eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x1c], edi
call fcn.004ce8c0
mov esi, eax
call fcn.0040aeb0
mov byte [esp + 0x7f4], 2
push 1
mov dword [esp + 0x7c], ebx
call fcn.004ce8c0
mov ecx, eax
call fcn.0040af50
push 1
lea edx, [esp + 0x14]
push edx
push eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x1c], edi
call fcn.004ce8c0
mov esi, eax
call fcn.0040aeb0
mov byte [esp + 0x7f4], 3
push 1
mov dword [esp + 0x58], ebx
call fcn.004ce8c0
mov ecx, eax
call fcn.0040af50
push 1
lea ecx, [esp + 0x14]
push ecx
push eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x1c], edi
call fcn.004ce8c0
mov esi, eax
call fcn.0040aeb0
mov byte [esp + 0x7f4], 4
mov ebx, dword [0x887734]
mov eax, dword [ebx + 0x77410]
cmp eax, edi
mov dword [esp + 0x24], edi
je 0x40f00b
push eax
push 1
lea edx, [esp + 0x24]
push 1
push edx
mov byte [esp + 0x2c], 0
call fcn.00555095
mov eax, dword [0x887734]
mov ecx, dword [eax + 0x77410]
mov edx, dword [0x8876d4]
push ecx
push 4
add edx, 4
push 1
push edx
call fcn.00555095
mov eax, dword [0x887734]
mov ecx, dword [eax + 0x77410]
push ecx
push 4
lea edx, [ebp + 8]
push 1
push edx
call fcn.00555095
mov eax, dword [0x887734]
mov ecx, dword [eax + 0x77410]
push ecx
push 2
lea edx, [ebp + 0xc]
push 1
push edx
call fcn.00555095
mov eax, dword [0x887734]
mov ecx, dword [eax + 0x77410]
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 0x10]
add esp, 0x40
push ecx
push edx
push 1
push eax
call fcn.00555095
mov ebx, dword [0x887734]
add esp, 0x10
xor eax, eax
mov ecx, 0x41
lea edi, [esp + 0x6e0]
rep stosd dword es:[edi], eax
movzx eax, word [ebp + 0xc]
cmp eax, 0x200f
jg 0x4102ab
je 0x410264
cmp eax, 0x1060
jg 0x40f9d3
je 0x40f977
sub eax, 0x1013
cmp eax, 0x3d
ja case.0x40f056.4116
movzx ecx, byte [eax + 0x4122f0]
jmp dword [ecx*4 + 0x4122d0]
mov esi, dword [ebp + 0x10]
mov dx, word [esi]
add esi, 2
test dx, dx
mov word [ebx + 0x1a588], dx
mov dword [esp + 0x2c], 0
jbe 0x40f0e8
mov dword [esp + 0x18], 0x1a308
mov eax, dword [esp + 0x18]
lea edi, [eax + ebx - 0xa0]
mov eax, dword [esi]
call fcn.00417c30
mov ecx, dword [0x887734]
mov ebx, dword [esp + 0x18]
mov eax, dword [esi + 4]
add esi, 4
lea edi, [ebx + ecx]
call fcn.00417c30
mov edx, dword [0x887734]
mov eax, dword [esi + 4]
add esi, 4
lea edi, [ebx + edx + 0xa0]
call fcn.00417c30
mov eax, dword [esp + 0x2c]
add ebx, 8
mov dword [esp + 0x18], ebx
mov ebx, dword [0x887734]
movzx ecx, word [ebx + 0x1a588]
add esi, 4
inc eax
cmp eax, ecx
mov dword [esp + 0x2c], eax
jl 0x40f082
mov dx, word [esi]
add esi, 2
test dx, dx
mov word [ebx + 0x1a58a], dx
mov dword [esp + 0x18], esi
mov dword [esp + 0x2c], 0
jbe case.0x40f056.4116
mov dword [esp + 0x24], 0x19f48
mov eax, dword [esp + 0x18]
mov edi, dword [eax]
cmp edi, 0x13
jle 0x40f122
mov edi, 0x13
mov edx, dword [esp + 0x24]
mov eax, dword [edx + ebx + 4]
push 1
lea ecx, [esp + 0x14]
push ecx
push eax
mov dword [esp + 0x1c], edi
call fcn.004ce8c0
mov esi, eax
call fcn.0040aeb0
mov ebx, dword [esp + 0x18]
mov eax, dword [ebx + 4]
mov edx, dword [0x887734]
add ebx, 4
push 1
lea ecx, [esp + 0x14]
mov dword [esp + 0x14], eax
mov eax, dword [edx + edi*8 + 0x19fec]
push ecx
push eax
call fcn.004ce8c0
mov esi, eax
call fcn.0040aeb0
mov eax, dword [ebx + 4]
mov edx, dword [0x887734]
add ebx, 4
push 1
lea ecx, [esp + 0x14]
mov dword [esp + 0x14], eax
mov eax, dword [edx + edi*8 + 0x1a08c]
push ecx
push eax
call fcn.004ce8c0
mov esi, eax
call fcn.0040aeb0
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x24]
add ebx, 4
mov dword [esp + 0x18], ebx
mov ebx, dword [0x887734]
movzx ecx, word [ebx + 0x1a58a]
inc eax
add esi, 8
cmp eax, ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], esi
jl 0x40f112
jmp case.0x40f056.4116
mov edx, dword [ebp + 0x10]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esp + 0x5c], eax
mov eax, dword [edx + 8]
mov dword [esp + 0x60], ecx
mov ecx, dword [edx + 0xc]
lea edx, [esp + 0x5c]
push edx
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], ecx
call fcn.0054c1f0
jmp 0x41204e
mov ecx, dword [ebp + 0x10]
mov ax, word [ecx]
test ax, ax
je 0x40f326
movzx eax, ax
add ecx, 2
test eax, eax
mov dword [esp + 0x18], ecx
jle 0x40f3be
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x18]
mov ecx, eax
mov edx, dword [ecx]
mov dword [esp + 0x5c], edx
mov edx, dword [ecx + 4]
mov dword [esp + 0x60], edx
mov edx, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov dword [esp + 0x64], edx
add eax, 0x10
mov dword [esp + 0x68], ecx
mov edx, eax
mov ecx, dword [edx]
mov dword [esp + 0x38], ecx
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
add eax, 0xc
push str.GET_ID_in_eve__
mov byte [esp + 0x70], 0
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], edx
mov byte [esp + 0x48], 0
mov dword [esp + 0x1c], eax
call fcn.004d2e60
add esp, 4
lea esi, [esp + 0x5c]
lea edi, [esp + 0x38]
mov eax, ebx
call fcn.0042c4f0
mov ecx, dword [0x887734]
mov eax, edi
push eax
add ecx, 0x7744c
push ecx
call fcn.0055a0a6
add esp, 8
test eax, eax
jne 0x40f2ca
mov eax, dword [0x887ac0]
mov edx, esi
push edx
mov edx, 0x10
call fcn.00449a20
push eax
call fcn.00449a60
mov eax, dword [0x887734]
mov byte [eax + 0x7744c], 0
mov edx, dword [0x887734]
lea ecx, [esp + 0x38]
push ecx
add edx, 0x77644
push edx
call fcn.0055a0a6
add esp, 8
test eax, eax
jne 0x40f311
lea eax, [esp + 0x5c]
push eax
mov eax, dword [0x887ac0]
mov edx, 0x10
call fcn.00449a20
push eax
call fcn.00449a60
mov ebx, dword [0x887734]
mov byte [ebx + 0x77644], 0
jmp 0x40f317
mov ebx, dword [0x887734]
dec dword [esp + 0x24]
jne 0x40f223
jmp 0x40f3be
mov eax, dword [ebp + 0x10]
movzx eax, word [eax + 0xe]
mov ecx, dword [0x887aa0]
mov ecx, dword [ecx*4 + 0x8876a8]
mov edx, dword [ecx]
push eax
mov eax, dword [0x887ac0]
movzx eax, word [eax + 0x40a0]
push eax
call dword [edx + 0x10]
mov esi, dword [0x887734]
add esi, 0x77a40
push 0x36
xor cl, cl
call fcn.00414250
mov eax, dword [0x887aa0]
add esp, 4
cmp eax, 4
jne 0x40f3be
push 1
push 0x2a
mov eax, 0x90bee0
call fcn.004d07e0
push 1
push 0x29
mov eax, 0x90bee0
call fcn.004d07e0
push 0
push 0x5e5a48
push 0x5e4138
push 0
call fcn.004cecd0
mov ebx, 0x2d
mov edi, eax
call fcn.004032b0
push eax
call fcn.00554aa1
add esp, 0x14
test eax, eax
je 0x40f3be
mov esi, eax
call fcn.005083c0
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x10]
push ecx
push 0x903658
call fcn.00404f60
jmp case.0x40f056.4116
mov eax, dword [ebp + 0x10]
mov ebx, dword [eax]
add eax, 4
mov dword [esp + 0x18], eax
cmp dword [0x887aa0], 0xb
mov dword [esp + 0x24], ebx
jne 0x40f3fe
test ebx, ebx
jg case.0x40f056.4116
cmp ebx, 0xfffffffd
je case.0x40f056.4116
xor eax, eax
mov byte [esp + 0x2e0], 0
mov ecx, 0xff
lea edi, [esp + 0x2e1]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push 0x1770
push 0x88a3dc
stosb byte es:[edi], al
call fcn.004475f0
mov edx, eax
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40f430
lea edi, [esp + 0x2e0]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40f441
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
lea eax, [ebx + 4]
cmp eax, 4
rep movsb byte es:[edi], byte [esi]
ja case.default.0x40f465
jmp dword [eax*4 + 0x412330]
push 0x1772
push 0x88a3dc
call fcn.004475f0
mov edx, eax
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40f480
lea edi, [esp + 0x2e0]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40f491
jmp 0x40f589
push 0x1773
push 0x88a3dc
call fcn.004475f0
mov edx, eax
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40f4b0
lea edi, [esp + 0x2e0]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40f4c1
jmp 0x40f589
push 0x1774
push 0x88a3dc
call fcn.004475f0
mov edx, eax
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40f4e0
lea edi, [esp + 0x2e0]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40f4f1
jmp 0x40f589
push 0x1775
push 0x88a3dc
call fcn.004475f0
mov edx, eax
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40f510
lea edi, [esp + 0x2e0]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40f521
jmp 0x40f589
push 0x1776
push 0x88a3dc
call fcn.004475f0
mov edx, eax
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40f540
lea edi, [esp + 0x2e0]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40f551
jmp 0x40f589
push 0x1771
push 0x88a3dc
call fcn.004475f0
mov edx, eax
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40f570
lea edi, [esp + 0x2e0]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40f581
mov ebx, dword [esp + 0x18]
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov al, byte [ebx]
and ecx, 3
cmp al, 0x20
rep movsb byte es:[edi], byte [esi]
je 0x40f6be
push 0x1777
push 0x88a3dc
call fcn.004475f0
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40f5b8
lea edi, [esp + 0x2e0]
sub eax, edx
dec edi
lea esp, [esp]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40f5d0
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov al, byte [ebx]
and ecx, 3
cmp al, 0x54
rep movsb byte es:[edi], byte [esi]
jne 0x40f62e
cmp byte [ebx + 1], 0x48
jne 0x40f62e
push 0x177a
push 0x88a3dc
call fcn.004475f0
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40f605
lea edi, [esp + 0x2e0]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40f616
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp byte [ebx], 0x46
jne 0x40f6be
cmp byte [ebx + 1], 0x4d
jne 0x40f679
push 0x1778
push 0x88a3dc
call fcn.004475f0
mov edx, eax
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40f650
lea edi, [esp + 0x2e0]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40f661
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp byte [ebx], 0x46
jne 0x40f6be
cmp byte [ebx + 1], 0x44
jne 0x40f6be
push 0x1779
push 0x88a3dc
call fcn.004475f0
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40f695
lea edi, [esp + 0x2e0]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40f6a6
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov al, byte [ebx + 2]
add ebx, 2
test al, al
mov dword [esp + 0x18], ebx
je 0x40f816
push 0x177b
push 0x88a3dc
call fcn.004475f0
mov esi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40f6e1
lea edi, [esp + 0x2e0]
sub eax, esi
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40f6f2
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ebx, dword [esp + 0x18]
mov edx, dword [ebx]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor eax, eax
mov ecx, 0x3f
lea edi, [esp + 0xe1]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [esp + 0xe0]
push eax
mov dword [esp + 0xe4], edx
call fcn.00554d7e
mov cx, word [ebx + 4]
lea edx, [esp + 0xe4]
push edx
mov esi, eax
mov byte [esp + 0xea], 0
mov word [esp + 0xe8], cx
call fcn.00554d7e
mov edi, eax
mov ax, word [ebx + 6]
lea ecx, [esp + 0xe8]
push ecx
mov word [esp + 0xec], ax
call fcn.00554d7e
mov edx, dword [esp + 0x24]
mov ebx, eax
mov ax, word [edx + 8]
lea ecx, [esp + 0xec]
push ecx
mov word [esp + 0xf0], ax
call fcn.00554d7e
mov edx, dword [esp + 0x28]
mov dword [esp + 0x20], eax
mov ax, word [edx + 0xa]
lea ecx, [esp + 0xf0]
push ecx
mov word [esp + 0xf4], ax
call fcn.00554d7e
mov edx, dword [esp + 0x24]
add esp, 0x14
push eax
push edx
push ebx
push edi
push esi
push 0x177c
push 0x88a3dc
call fcn.004475f0
push eax
lea eax, [esp + 0xf8]
push eax
call fcn.00553270
lea eax, [esp + 0xfc]
add esp, 0x1c
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40f7e8
lea edi, [esp + 0x2e0]
sub eax, ecx
mov esi, ecx
dec edi
jmp 0x40f800
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40f800
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x18]
mov ebx, dword [ecx + 0xc]
test ebx, ebx
je 0x40f8d9
push 0x177e
push 0x88a3dc
call fcn.004475f0
mov esi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40f836
lea edi, [esp + 0x2e0]
sub eax, esi
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40f847
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor edx, edx
mov ecx, 0xe10
mov eax, ebx
div ecx
mov edi, 0x3c
mov esi, eax
mov ecx, edx
xor edx, edx
mov eax, ebx
div edi
mov eax, 0x88888889
push edx
mul ecx
shr edx, 5
push edx
push esi
push 0x177f
push 0x88a3dc
call fcn.004475f0
push eax
lea edx, [esp + 0xf0]
push edx
call fcn.00553270
lea eax, [esp + 0xf4]
add esp, 0x14
mov ecx, eax
lea ecx, [ecx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40f8b0
lea edi, [esp + 0x2e0]
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40f8c3
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x24]
test eax, eax
jg 0x40f8fa
cmp eax, 0xfffffffd
je 0x40f8fa
mov al, 1
lea esi, [esp + 0x2e0]
push eax
call fcn.00414320
jmp 0x41204e
xor al, al
lea esi, [esp + 0x2e0]
push eax
call fcn.00414320
jmp 0x41204e
mov eax, dword [ebp + 0x10]
mov esi, dword [eax]
test esi, esi
lea edi, [ebx + 0x776ec]
je 0x40f943
mov al, 1
call fcn.00417e70
mov edi, dword [0x887734]
mov eax, esi
imul eax, dword [0x5e421c]
add edi, 0x776f4
call fcn.00417c30
jmp case.0x40f056.4116
xor al, al
call fcn.00417e70
mov edi, dword [0x887734]
add edi, 0x776f4
xor eax, eax
call fcn.00417c30
jmp case.0x40f056.4116
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx]
lea edi, [ebx + 0x1a5b4]
call fcn.00417c30
jmp case.0x40f056.4116
mov edx, dword [ebp + 0x10]
mov eax, dword [edx]
lea edi, [ebx + 0x24120]
call fcn.00417c30
mov ecx, dword [0x887734]
add ecx, 0x24120
call fcn.0042e300
cmp eax, 1
jne 0x40f9ab
push 0x46
xor cl, cl
call fcn.004140f0
jmp 0x41204e
mov ecx, dword [0x887734]
add ecx, 0x24120
call fcn.0042e300
cmp eax, 3
jne case.0x40f056.4116
push 0x52
xor cl, cl
call fcn.004140f0
jmp 0x41204e
cmp eax, 0x1ffa
jg 0x40fe78
je 0x40fe40
sub eax, 0x1079
je 0x40fe25
sub eax, 0x18
je 0x40fa0d
sub eax, 0xf67
jne case.0x40f056.4116
push 0x45
mov cl, 1
call fcn.004140f0
jmp 0x41204e
mov eax, dword [ebp + 0x10]
cmp byte [eax], 0
jne 0x40fdf2
mov ecx, dword [0x887aa0]
cmp ecx, 9
jne 0x40fa86
mov esi, dword [0x887ac0]
push 0x3200
call fcn.004489e0
mov eax, dword [0x887ac0]
mov esi, dword [eax + 0x4098]
mov ecx, dword [0x887734]
mov dl, byte [ecx + 0x244c8]
mov byte [eax + esi + 0x98], dl
mov esi, dword [eax + 0x4098]
inc esi
mov dword [eax + 0x4098], esi
mov cl, byte [ecx + 0x244c9]
mov edx, esi
mov byte [eax + edx + 0x98], cl
mov edx, dword [eax + 0x4098]
inc edx
push eax
mov dword [eax + 0x4098], edx
call fcn.00448b70
jmp case.0x40f056.4116
cmp ecx, 0xd
jne 0x40faf8
mov esi, dword [0x887ac0]
push 0x3200
call fcn.004489e0
mov eax, dword [0x887ac0]
mov esi, dword [eax + 0x4098]
mov ecx, dword [0x887734]
mov dl, byte [ecx + 0x244c8]
mov byte [eax + esi + 0x98], dl
mov edi, dword [eax + 0x4098]
inc edi
mov dword [eax + 0x4098], edi
mov cl, byte [ecx + 0x244c9]
mov edx, edi
mov byte [edx + eax + 0x98], cl
mov esi, dword [eax + 0x4098]
inc esi
push eax
mov dword [eax + 0x4098], esi
call fcn.00448b70
push 3
call fcn.00413d00
jmp 0x41204e
lea esi, [eax + 2]
mov al, byte [esi]
cmp al, 0xfe
je 0x40fb05
cmp al, 0x10
jbe 0x40fb42
cmp al, 0xff
je 0x40fb42
mov word [ebx + 0x244c8], 0xffff
xor esi, esi
jmp 0x40fb20
mov ebx, dword [0x887734]
lea esp, [esp]
lea edi, [esi + ebx + 0x1a5cc]
xor eax, eax
call fcn.00417c30
add esi, 8
cmp esi, 0x30
jl 0x40fb16
push 0xd
call fcn.00413d00
jmp 0x41204e
inc esi
mov byte [ebx + 0x244c8], al
mov al, byte [esi]
cmp al, 0xfe
je 0x40fb53
cmp al, 0x10
jbe 0x40fb92
cmp al, 0xff
je 0x40fb92
mov word [ebx + 0x244c8], 0xffff
xor esi, esi
jmp 0x40fb70
mov ebx, dword [0x887734]
lea ebx, [ebx]
lea edi, [esi + ebx + 0x1a5cc]
xor eax, eax
call fcn.00417c30
add esi, 8
cmp esi, 0x30
jl 0x40fb64
push 0xd
call fcn.00413d00
jmp 0x41204e
mov byte [ebx + 0x244c9], al
mov al, 7
inc esi
mov byte [esp + 0x38], 1
mov byte [esp + 0x39], 2
mov byte [esp + 0x3a], 6
mov byte [esp + 0x3b], al
mov byte [esp + 0x3c], 0xa
mov byte [esp + 0x3d], 0xb
mov byte [esp + 0x10], 0
mov byte [esp + 0x11], 1
mov byte [esp + 0x12], 2
mov byte [esp + 0x13], 3
mov byte [esp + 0x14], al
mov byte [esp + 0x15], 0xf
mov dword [esp + 0x18], 0
mov dword [esp + 0x2c], 0x1a5cc
jmp 0x40fbf0
mov ebx, dword [0x887734]
lea ecx, [ecx]
mov ecx, dword [esp + 0x18]
movzx eax, byte [esi]
lea edi, [ebx + ecx*8 + 0x1a5cc]
call fcn.00417c30
mov edx, dword [0x887734]
mov eax, dword [esp + 0x18]
lea ecx, [edx + eax*8 + 0x1a5cc]
inc esi
call fcn.0042e300
cmp eax, 0xff
mov ebx, dword [esp + 0x2c]
jne 0x40fc77
mov ecx, dword [esp + 0x18]
mov edx, dword [0x887734]
movzx eax, byte [esi]
inc ecx
add ebx, 8
lea edi, [edx + ecx*8 + 0x1a5cc]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x2c], ebx
call fcn.00417c30
inc esi
xor edi, edi
lea ecx, [ecx]
mov eax, dword [0x887734]
lea ecx, [ebx + eax]
call fcn.0042e300
movzx ecx, byte [esp + edi + 0x38]
cmp eax, ecx
je 0x40fc6c
inc edi
cmp edi, 6
jl 0x40fc50
cmp edi, 6
je 0x40fcbe
mov ebx, dword [esp + 0x2c]
jmp 0x40fca2
xor edi, edi
lea esp, [esp]
mov edx, dword [0x887734]
lea ecx, [ebx + edx]
call fcn.0042e300
movzx ecx, byte [esp + edi + 0x10]
cmp eax, ecx
je 0x40fc9d
inc edi
cmp edi, 6
jl 0x40fc80
cmp edi, 6
je 0x40fcbe
mov edx, dword [esp + 0x18]
add ebx, 8
inc edx
cmp ebx, 0x1a5fc
mov dword [esp + 0x18], edx
mov dword [esp + 0x2c], ebx
jl 0x40fbe7
cmp dword [esp + 0x18], 6
je 0x40fd46
push 0xd
call fcn.00413d00
add esp, 4
lea ecx, [esp + 0x54]
mov byte [esp + 0x7f4], 3
call fcn.00417bc0
lea ecx, [esp + 0x78]
mov byte [esp + 0x7f4], 2
call fcn.00417bc0
lea ecx, [esp + 0x80]
mov byte [esp + 0x7f4], 1
call fcn.00417bc0
lea ecx, [esp + 0x90]
mov byte [esp + 0x7f4], 0
call fcn.00417bc0
lea ecx, [esp + 0x4c]
mov dword [esp + 0x7f4], 0xffffffff
call fcn.00417bc0
mov ecx, dword [esp + 0x7ec]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor esi, esi
jmp 0x40fd50
mov eax, dword [0x887734]
lea ecx, [esi + eax + 0x1a5cc]
lea edi, [esi + eax + 0x1a5fc]
call fcn.00417be0
add esi, 8
cmp esi, 0x30
jl 0x40fd50
mov eax, dword [0x887aa0]
cmp eax, 2
je 0x40fd7f
cmp eax, 0xd
jne 0x40fd93
push 3
mov dword [0x5e4238], 0xffffffff
call fcn.00413d00
add esp, 4
mov esi, dword [0x887ac0]
push 0x3200
call fcn.004489e0
mov eax, dword [0x887ac0]
mov esi, dword [eax + 0x4098]
mov ecx, dword [0x887734]
mov dl, byte [ecx + 0x244c8]
mov byte [eax + esi + 0x98], dl
mov esi, dword [eax + 0x4098]
inc esi
mov dword [eax + 0x4098], esi
mov cl, byte [ecx + 0x244c9]
mov edx, esi
mov byte [edx + eax + 0x98], cl
mov edx, dword [eax + 0x4098]
inc edx
push eax
mov dword [eax + 0x4098], edx
call fcn.00448b70
jmp 0x40fe0d
push 0
push 0xc3502
push 0x88a3dc
call fcn.004475f0
mov esi, eax
call fcn.00414320
add esp, 4
mov edx, dword [0x887aa0]
push 0
push edx
mov eax, 0x90bee0
call fcn.004d07e0
jmp case.0x40f056.4116
mov eax, dword [ebp + 0x10]
cmp word [eax], 0
jne case.0x40f056.4116
push 0x47
xor cl, cl
call fcn.004140f0
jmp 0x41204e
mov ecx, dword [ebp + 0x10]
mov eax, 0x88888889
mul dword [ecx]
shr edx, 5
push edx
lea edx, [esp + 0x6e4]
push str._:__dMinute
push edx
call fcn.00553270
push 0x5b
lea esi, [esp + 0x6f0]
xor cl, cl
call fcn.00414250
add esp, 0x10
jmp case.0x40f056.4116
sub eax, 0x2001
je 0x40ffe3
sub eax, 0xd
jne case.0x40f056.4116
mov eax, dword [0x887aa0]
cmp eax, 3
jne 0x40fea4
cmp dword [0x88759c], 3
je 0x40feba
jmp case.0x40f056.4116
cmp eax, 7
jne case.0x40f056.4116
cmp dword [0x88759c], 4
jne case.0x40f056.4116
push str.Recv_Channel_Insert_n
call fcn.004d2e60
mov eax, dword [ebp + 0x10]
mov cl, byte [eax]
movzx esi, cl
mov ecx, esi
imul ecx, ecx, 0xd
mov byte [esi + ebx + 0x1ff6d], 1
add ecx, ebx
add esp, 4
inc eax
mov dword [esp + 0x10], ecx
add ecx, 0x2006d
mov edx, eax
mov edi, dword [edx]
mov dword [ecx], edi
mov edi, dword [edx + 4]
mov dword [ecx + 4], edi
mov edx, dword [edx + 8]
mov dword [ecx + 8], edx
mov ecx, dword [esp + 0x10]
add eax, 0xc
mov byte [ecx + 0x20079], 0
cmp byte [eax], 0
sete cl
movzx edx, cl
inc eax
mov dword [ebx + esi*4 + 0x21d70], edx
mov edx, dword [eax]
lea ecx, [ebx + esi*8]
add ecx, esi
mov dword [ecx + 0x22570], edx
mov edx, dword [eax + 4]
mov dword [ecx + 0x22574], edx
mov dl, byte [ecx + 0x22577]
add eax, 8
test dl, dl
jns 0x40ff4e
mov dl, byte [ecx + 0x22576]
test dl, dl
js 0x40ff4e
mov byte [ecx + 0x22577], 0
mov byte [ecx + 0x22578], 0
mov cx, word [eax]
add cx, 5
mov word [ebx + esi*2 + 0x22e70], cx
mov dx, word [eax + 2]
add eax, 2
add dx, 5
mov word [ebx + esi*2 + 0x23070], dx
mov cx, word [eax + 2]
add eax, 2
add cx, 5
mov word [ebx + esi*2 + 0x23670], cx
mov dx, word [eax + 2]
add eax, 2
push 0
mov word [ebx + esi*2 + 0x23870], dx
mov dl, byte [ebx + 0x1ff6c]
push 0x5e5a64
inc dl
push 0x5e4138
push 0
mov byte [ebx + 0x1ff6c], dl
call fcn.004cecd0
mov ebx, 0x24
mov edi, eax
call fcn.004032b0
push eax
call fcn.00554aa1
add esp, 0x14
test eax, eax
je case.0x40f056.4116
mov ecx, eax
call fcn.00503290
jmp case.0x40f056.4116
mov esi, dword [ebp + 0x10]
cmp word [esi], 0
jne case.0x40f056.4116
push str.Recv_JoinChannel__n
call fcn.004d2e60
add esp, 4
mov edx, ebx
mov dword [ebx + 0x241dc], 0xffffffff
call fcn.00422050
call fcn.004217f0
mov eax, 0x90a278
call fcn.00453050
movzx eax, word [esi + 2]
mov ebx, dword [0x887734]
add esi, 2
add esi, 3
mov dword [ebx + 0x1ff68], eax
mov cl, byte [esi]
mov al, cl
inc esi
test al, al
mov byte [ebx + 0x1ff6c], cl
mov dword [esp + 0x24], 0
jbe 0x41013b
mov edi, edi
mov al, byte [esi]
movzx eax, al
mov edx, eax
imul edx, edx, 0xd
mov byte [eax + ebx + 0x1ff6d], 1
lea ecx, [edx + ebx]
inc esi
mov dword [esp + 0x10], ecx
add ecx, 0x2006d
mov edx, esi
mov edi, dword [edx]
mov dword [ecx], edi
mov edi, dword [edx + 4]
mov dword [ecx + 4], edi
mov edx, dword [edx + 8]
mov dword [ecx + 8], edx
mov ecx, dword [esp + 0x10]
add esi, 0xc
mov byte [ecx + 0x20079], 0
mov dl, byte [esi]
xor ecx, ecx
test dl, dl
sete cl
inc esi
lea edx, [ebx + eax*8]
add esi, 8
mov dword [ebx + eax*4 + 0x21d70], ecx
lea ecx, [eax + edx]
mov edx, dword [esi - 8]
mov dword [ecx + 0x22570], edx
mov edx, dword [esi - 4]
mov dword [ecx + 0x22574], edx
mov dl, byte [ecx + 0x22577]
test dl, dl
jns 0x4100d7
mov dl, byte [ecx + 0x22576]
test dl, dl
js 0x4100d7
mov byte [ecx + 0x22577], 0
mov byte [ecx + 0x22578], 0
mov cx, word [esi]
add cx, 5
mov word [ebx + eax*2 + 0x22e70], cx
mov dx, word [esi + 2]
add esi, 2
add dx, 5
add esi, 2
mov word [ebx + eax*2 + 0x23070], dx
mov cx, word [esi]
add cx, 5
add esi, 2
mov word [ebx + eax*2 + 0x23670], cx
mov dx, word [esi]
mov word [ebx + eax*2 + 0x23870], dx
mov eax, dword [esp + 0x24]
movzx ecx, byte [ebx + 0x1ff6c]
add esi, 2
inc eax
cmp eax, ecx
mov dword [esp + 0x24], eax
jl 0x410050
movzx edx, byte [ebx + 0x1ff6c]
imul edx, edx, 0x1a
mov eax, 0xfffffffa
sub eax, edx
mov edx, dword [ebp + 8]
add edx, eax
xor eax, eax
mov byte [esp + 0x2e0], 0
mov ecx, 0xff
lea edi, [esp + 0x2e1]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov dword [ebp + 8], edx
mov ecx, dword [ebp + 8]
stosb byte es:[edi], al
xor edx, edx
xor eax, eax
test ecx, ecx
mov dword [esp + 0x24], edx
jle 0x4101dd
mov edi, edi
mov cl, byte [edx + esi]
cmp cl, 0xa
jne 0x4101c9
lea eax, [esp + 0x2e0]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x410192
push 0
push 0
lea ecx, [esp + 0x2e8]
push ecx
push 0
push 0
push 2
sub eax, edx
push ebx
call fcn.004218d0
mov edx, dword [esp + 0x24]
mov ecx, 0x100
xor eax, eax
lea edi, [esp + 0x2e0]
rep stosd dword es:[edi], eax
jmp 0x4101d1
mov byte [esp + eax + 0x2e0], cl
inc eax
mov ecx, dword [ebp + 8]
inc edx
cmp edx, ecx
mov dword [esp + 0x24], edx
jl 0x410180
lea eax, [esp + 0x2e0]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4101e7
push 0
push 0
sub eax, edx
lea edx, [esp + 0x2e8]
push edx
push 0
push 0
push 2
push ebx
call fcn.004218d0
cmp dword [0x887aa0], 3
jne case.0x40f056.4116
push 0
push 0x5e5a88
push 0x5e4138
push 0
call fcn.004cecd0
mov ebx, 0x1f
mov edi, eax
call fcn.004032b0
push eax
call fcn.00554aa1
mov edi, eax
add esp, 0x14
test edi, edi
je case.0x40f056.4116
call fcn.005068d0
mov eax, dword [0x887734]
mov esi, dword [eax + 0x1ff68]
add esi, 0x78
call fcn.00506970
jmp case.0x40f056.4116
mov eax, dword [0x887aa0]
cmp eax, 3
jne 0x41027c
cmp dword [0x88759c], 3
je 0x410292
jmp case.0x40f056.4116
cmp eax, 4
jne case.0x40f056.4116
cmp dword [0x88759c], 4
jne case.0x40f056.4116
mov ecx, dword [ebp + 0x10]
movzx edx, byte [ecx]
mov byte [edx + ebx + 0x1ff6d], 0
dec byte [ebx + 0x1ff6c]
jmp case.0x40f056.4116
cmp eax, 0x5101
jg 0x411693
je 0x4115ef
cmp eax, 0x4410
jg 0x411546
je 0x410b3e
sub eax, 0x3010
je 0x410784
sub eax, 0x10
je 0x41033d
sub eax, 0x3e0
jne case.0x40f056.4116
mov eax, dword [ebp + 0x10]
movzx eax, byte [eax]
lea edi, [ebx + 0x1a680]
call fcn.00417c30
mov ecx, dword [0x887734]
add ecx, 0x1a680
call fcn.0042e300
mov ecx, eax
mov eax, dword [0x887734]
cmp byte [ecx + eax + 0x244e2], 3
jne case.0x40f056.4116
lea ecx, [eax + 0x1a680]
call fcn.0042e300
mov edx, dword [0x887734]
mov byte [eax + edx + 0x244e2], 1
jmp case.0x40f056.4116
mov esi, dword [ebp + 0x10]
movzx eax, byte [esi]
lea ecx, [ebx + 0x2603c]
call fcn.0041a190
movzx edi, byte [esi]
mov al, byte [edi + ebx + 0x25fd4]
test al, al
je 0x41037c
mov byte [edi + ebx + 0x25fd4], 0
mov eax, dword [ebx + edi*4 + 0x778a0]
push eax
mov ecx, 0x75e40c
call fcn.00536380
mov ebx, dword [0x887734]
mov al, byte [edi + ebx + 0x25fcc]
test al, al
je 0x4103a7
mov byte [edi + ebx + 0x25fcc], 0
mov ecx, dword [ebx + edi*4 + 0x77880]
push ecx
mov ecx, 0x75e40c
call fcn.00536380
mov ebx, dword [0x887734]
mov eax, dword [0x887aa0]
cmp eax, 3
jne 0x4105a7
mov cl, byte [ebx + 0x24285]
mov al, byte [0x887afa]
dec cl
cmp al, 1
mov byte [ebx + 0x24285], cl
movzx edx, byte [esi]
mov byte [edx + ebx + 0x244e2], 0
jne 0x4103e9
movzx eax, byte [esi]
lea edi, [ebx + eax*8 + 0x290d4]
or eax, 0xffffffff
call fcn.00417c30
mov ebx, dword [0x887aa0]
movzx edx, byte [esi]
cmp ebx, 0xb
sete cl
mov eax, 0x90a278
push ecx
push edx
call fcn.00453190
mov ebx, dword [0x887734]
mov eax, dword [ebx + 0x76ae4]
test eax, eax
je 0x410591
mov dword [esp + 0x2c], 0
jle 0x410591
jmp 0x410430
mov eax, dword [esp + 0x2c]
lea ecx, [ebx + 0x76ae0]
call fcn.00419f30
mov edi, dword [eax]
mov esi, dword [0x887734]
mov edx, edi
mov dword [esp + 0x10], edi
call fcn.00421fa0
test al, al
je 0x410574
mov ecx, edi
call fcn.0042cbe0
mov ebx, 0xc303
mov esi, 0x90a278
call fcn.00452a80
mov eax, dword [0x90adec]
mov esi, dword [0x8876d4]
mov edx, edi
mov byte [eax + 0x90abec], dl
mov eax, dword [0x90adec]
inc eax
mov dword [0x90adec], eax
add esi, 0x127c
mov ecx, 0x10
lea edi, [eax + 0x90abec]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [0x90adec]
add ecx, 0x40
cmp edx, 0xe
mov dword [0x90adec], ecx
jne 0x410527
mov ecx, dword [0x887734]
mov ecx, dword [ecx + 0x27064]
add ecx, 0x2a4
call fcn.0052c2f0
test al, al
jne 0x4104ed
mov edx, dword [0x887734]
mov edi, dword [edx + 0x27064]
add edi, 0x2a4
mov al, 1
call fcn.00417e70
mov eax, dword [0x887734]
mov edi, dword [eax + 0x27064]
push 0
call fcn.0046baf0
mov ecx, dword [0x90adec]
mov word [ecx + 0x90abec], ax
mov ecx, dword [0x90adec]
mov eax, dword [0x887734]
add ecx, 2
push 0
mov dword [0x90adec], ecx
call fcn.00424890
push 0x90a278
or ecx, 0xffffffff
call fcn.00452c60
mov edi, dword [0x887734]
mov esi, dword [esp + 0x2c]
add edi, 0x76ae0
mov ebx, 1
mov edx, esi
call fcn.00418b30
mov ebx, dword [0x887734]
mov eax, dword [ebx + 0x76ae4]
dec esi
test eax, eax
mov dword [esp + 0x2c], esi
jne 0x41057a
push 0xc302
mov esi, 0x90a278
call fcn.00453350
mov ebx, dword [0x887734]
mov eax, dword [esp + 0x2c]
mov ecx, dword [ebx + 0x76ae4]
inc eax
cmp eax, ecx
mov dword [esp + 0x2c], eax
jl 0x410430
mov eax, dword [0x887aa0]
cmp eax, 3
jne 0x4105a7
cmp dword [0x88759c], eax
je case.0x40f056.4116
mov dl, byte [ebx + 0x24285]
mov esi, dword [ebp + 0x10]
dec dl
cmp eax, 9
mov byte [ebx + 0x24285], dl
movzx edx, byte [esi]
mov byte [edx + ebx + 0x244e2], 0
jne 0x4105e3
cmp byte [0x887afa], 1
jne 0x4105e3
movzx eax, byte [esi]
lea edi, [ebx + eax*8 + 0x290d4]
or eax, 0xffffffff
call fcn.00417c30
mov ebx, dword [0x887aa0]
movzx edx, byte [esi]
cmp ebx, 0xb
sete cl
mov eax, 0x90a278
push ecx
push edx
call fcn.00453190
mov ecx, dword [0x887734]
mov eax, dword [ecx + 0x76ae4]
test eax, eax
je case.0x40f056.4116
xor edx, edx
test eax, eax
mov dword [esp + 0x2c], edx
jle case.0x40f056.4116
add ecx, 0x76ae0
mov eax, edx
call fcn.00419f30
mov edi, dword [eax]
mov esi, dword [0x887734]
mov edx, edi
mov dword [esp + 0x10], edi
call fcn.00421fa0
test al, al
je 0x410762
mov ecx, edi
call fcn.0042cbe0
mov ebx, 0xc303
mov esi, 0x90a278
call fcn.00452a80
mov eax, dword [0x90adec]
mov esi, dword [0x8876d4]
mov edx, edi
mov byte [eax + 0x90abec], dl
mov eax, dword [0x90adec]
inc eax
mov dword [0x90adec], eax
add esi, 0x127c
mov ecx, 0x10
lea edi, [eax + 0x90abec]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [0x90adec]
add ecx, 0x40
cmp edx, 0xe
mov dword [0x90adec], ecx
jne 0x410715
mov ecx, dword [0x887734]
mov ecx, dword [ecx + 0x27064]
add ecx, 0x2a4
call fcn.0052c2f0
test al, al
jne 0x4106db
mov edx, dword [0x887734]
mov edi, dword [edx + 0x27064]
add edi, 0x2a4
mov al, 1
call fcn.00417e70
mov eax, dword [0x887734]
mov edi, dword [eax + 0x27064]
push 0
call fcn.0046baf0
mov ecx, dword [0x90adec]
mov word [ecx + 0x90abec], ax
mov ecx, dword [0x90adec]
mov eax, dword [0x887734]
add ecx, 2
push 0
mov dword [0x90adec], ecx
call fcn.00424890
push 0x90a278
or ecx, 0xffffffff
call fcn.00452c60
mov edi, dword [0x887734]
mov esi, dword [esp + 0x2c]
add edi, 0x76ae0
mov ebx, 1
mov edx, esi
call fcn.00418b30
mov edx, dword [0x887734]
mov eax, dword [edx + 0x76ae4]
dec esi
test eax, eax
mov dword [esp + 0x2c], esi
jne 0x410762
push 0xc302
mov esi, 0x90a278
call fcn.00453350
mov edx, dword [esp + 0x2c]
mov ecx, dword [0x887734]
mov eax, dword [ecx + 0x76ae4]
inc edx
cmp edx, eax
mov dword [esp + 0x2c], edx
jl 0x410620
jmp case.0x40f056.4116
mov eax, dword [0x887aa0]
cmp eax, 3
je 0x4107b9
cmp eax, 9
jne 0x41079c
cmp dword [0x88759c], 9
jmp 0x4107a8
cmp eax, 0xb
jne 0x4107aa
cmp dword [0x88759c], 0xb
je 0x4107b9
push str._n_n_n_n
call fcn.004d2e60
jmp 0x41204e
mov eax, 0x90a278
call fcn.004530a0
push str.Recv_Room_Insert_n
call fcn.004d2e60
mov esi, dword [ebp + 0x10]
mov al, byte [esi]
mov edi, dword [0x887734]
movzx ebx, al
add esp, 4
lea ecx, [edi + 0x2603c]
mov eax, ebx
inc esi
call fcn.0041a170
mov ecx, esi
mov edx, dword [ecx]
lea eax, [ebx + ebx*4]
shl eax, 2
mov dword [esp + 0x10], eax
lea eax, [eax + edi + 0x242fd]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov ecx, dword [ecx + 8]
mov edx, dword [esp + 0x10]
mov byte [edx + edi + 0x24309], 0
mov dword [eax + 8], ecx
mov al, byte [esi + 0xc]
add esi, 0xc
test al, al
sete cl
mov byte [ebx + edi + 0x2439d], cl
mov eax, dword [esi + 1]
inc esi
mov dword [edi + ebx*4 + 0x243a8], eax
mov dx, word [esi + 4]
mov word [edi + ebx*2 + 0x243e8], dx
add esi, 4
mov eax, dword [esi + 2]
add esi, 2
mov dword [edi + ebx*4 + 0x243c8], eax
mov dx, word [esi + 4]
mov word [edi + ebx*2 + 0x243f8], dx
add esi, 4
mov al, byte [esi + 2]
add esi, 2
mov byte [edi + ebx*2 + 0x244ca], al
mov dl, byte [esi + 1]
mov byte [edi + ebx*2 + 0x244cb], dl
inc esi
mov al, byte [esi + 1]
inc esi
mov byte [ebx + edi + 0x244da], al
mov byte [ebx + edi + 0x244e2], 1
mov eax, dword [esi + 1]
inc esi
lea edx, [edi + ebx*8 + 0x20268]
mov dword [ebx + edx + 0x404d], eax
mov eax, dword [esi + 4]
mov dword [ebx + edx + 0x4051], eax
lea edx, [edi + ebx*8]
lea eax, [ebx + edx]
mov dl, byte [eax + 0x22577]
test dl, dl
mov byte [esp + 0x23], cl
mov byte [eax + 0x242bd], 0
jns 0x4108d6
mov dl, byte [eax + 0x22576]
test dl, dl
js 0x4108d6
mov byte [eax + 0x22577], 0
mov ax, word [esi + 8]
add esi, 8
add ax, 5
mov word [edi + ebx*2 + 0x244ea], ax
mov dx, word [esi + 2]
add esi, 2
add dx, 5
add esi, 2
mov word [edi + ebx*2 + 0x244fa], dx
mov ax, word [esi]
add ax, 5
add esi, 2
mov word [edi + ebx*2 + 0x2451a], ax
mov dx, word [esi]
mov word [edi + ebx*2 + 0x2450a], dx
mov dl, byte [edi + 0x24285]
add esi, 2
inc dl
mov byte [edi + 0x24285], dl
movzx eax, word [esi]
mov dword [esp + 0x10], eax
add esi, 2
xor eax, eax
jmp 0x410940
mov cl, byte [esp + 0x23]
nop
cmp eax, 3
jne 0x410955
lea ecx, [ebx*4 + 0x12204]
mov word [edi + ecx*2 + 6], 0x8000
jmp 0x41096a
neg cl
lea edx, [eax + ebx*4 + 0x12204]
sbb ecx, ecx
and ecx, 0x8000
mov word [edi + edx*2], cx
lea ecx, [eax + ebx*4 + 0x9112]
inc eax
cmp eax, 4
mov dword [edi + ecx*4], 0
jl 0x41093b
mov eax, dword [esp + 0x10]
test eax, eax
jle 0x410abc
mov dword [esp + 0x2c], eax
mov edi, edi
mov ecx, dword [esi]
cmp ecx, 0x31999
mov dword [esp + 0x24], ecx
jle 0x410a65
cmp ecx, 0x34000
jge 0x410a65
lea ecx, [esp + 0x2e0]
call fcn.00412740
mov byte [esp + 0x7f4], 8
mov edx, dword [esp + 0x24]
mov eax, dword [0x887734]
push edx
push eax
mov al, 1
lea edi, [esp + 0x2e8]
call fcn.00429540
movzx eax, byte [esp + 0x2e9]
dec eax
je 0x410a1c
dec eax
jne 0x410a49
mov eax, dword [0x887734]
mov edx, dword [esp + 0x24]
lea ecx, [ebx + 0x2445]
shl ecx, 4
mov dword [ecx + eax], edx
cmp dword [0x887aa0], 3
mov byte [ebx + eax + 0x25fd4], 1
je 0x410a49
push ebx
push eax
call fcn.0042d540
jmp 0x410a49
mov eax, dword [0x887734]
mov edx, dword [esp + 0x24]
mov ecx, ebx
shl ecx, 4
mov dword [ecx + eax + 0x2444c], edx
cmp dword [0x887aa0], 3
mov byte [ebx + eax + 0x25fcc], 1
je 0x410a49
push ebx
push eax
call fcn.0042d420
lea ecx, [esp + 0x2e0]
mov byte [esp + 0x7f4], 4
call fcn.00412cb0
mov edi, dword [0x887734]
jmp 0x410aaa
mov eax, ecx
sar eax, 0x10
and al, 0xf
and ecx, 0x7fff
cmp al, 3
jne 0x410a8a
or ecx, 0x8000
lea eax, [ebx*4 + 0x12204]
mov word [edi + eax*2 + 6], cx
jmp 0x410aaa
mov dl, byte [esp + 0x23]
neg dl
sbb edx, edx
and edx, 0x8000
or edx, ecx
movzx ecx, al
lea eax, [ebx*4 + 0x12204]
add ecx, eax
mov word [edi + ecx*2], dx
mov eax, dword [esp + 0x2c]
add esi, 4
dec eax
mov dword [esp + 0x2c], eax
jne 0x410990
mov al, byte [esi]
push 1
lea edx, [esp + 0x20]
mov byte [esp + 0x20], al
mov eax, dword [edi + ebx*8 + 0x25f90]
push edx
push eax
call fcn.004ce8c0
mov esi, eax
call fcn.0040aeb0
call fcn.00554f6c
cdq
mov ecx, 6
idiv ecx
mov ecx, dword [0x887734]
mov eax, dword [ecx + ebx*4 + 0x243c8]
mov esi, ebx
mov dword [ecx + ebx*4 + 0x25fdc], edx
xor edx, edx
mov dx, word [ecx + ebx*2 + 0x243f8]
push edx
push eax
mov ax, word [ecx + ebx*2 + 0x243e8]
mov ecx, dword [ecx + ebx*4 + 0x243a8]
mov edx, 0x90a278
call fcn.00453110
mov eax, dword [0x8876cc]
test eax, eax
je case.0x40f056.4116
mov ecx, ebx
call fcn.004f9010
jmp case.0x40f056.4116
lea ecx, [ebx + 0x26fc8]
call fcn.0052c2f0
test al, al
jne 0x41151d
mov edi, dword [0x887734]
add edi, 0x26fc8
mov al, 1
call fcn.00417e70
mov ecx, dword [ebp + 0x10]
mov al, byte [ecx]
mov ecx, dword [0x887734]
test al, al
setne dl
mov byte [ecx + 0x26fd8], al
mov byte [ecx + 0x26fd9], dl
lea ecx, [esp + 0x10]
call fcn.00417ae0
lea ecx, [esp + 0x38]
mov byte [esp + 0x7f4], 9
call fcn.00417ae0
mov eax, 0xeeaeaec0
lea ecx, [esp + 0x10]
mov byte [esp + 0x7f4], 0xa
call fcn.00417de0
mov eax, 0xeeaeaec0
lea ecx, [esp + 0x38]
call fcn.00417de0
mov ecx, dword [0x887734]
add ecx, 0x24298
call fcn.0042e300
cmp eax, 3
jne 0x410c08
mov eax, dword [0x887734]
mov cl, byte [eax + 0x26fd8]
test cl, cl
lea ecx, [eax + 0x4f0a0]
je 0x410bef
lea ecx, [eax + 0x4f0a8]
call fcn.0042e300
mov ecx, 0x5e5724
mov esi, eax
call fcn.0042e300
cmp esi, eax
jl 0x410c9a
mov ecx, dword [0x887734]
add ecx, 0x26060
call fcn.0042e300
dec eax
cmp eax, 7
ja case.default.0x410c23
jmp dword [eax*4 + 0x412344]
mov eax, 0xeeaeaea4
lea ecx, [esp + 0x10]
call fcn.00417de0
mov eax, 0xeeaeaec3
jmp 0x410c91
mov eax, 0xeeaeae56
lea ecx, [esp + 0x10]
call fcn.00417de0
mov eax, 0xeeaeaec6
jmp 0x410c91
mov eax, 0xeeaeae08
lea ecx, [esp + 0x10]
call fcn.00417de0
mov eax, 0xeeaeaec9
jmp 0x410c91
mov eax, 0xeeaeafec
lea ecx, [esp + 0x10]
call fcn.00417de0
mov eax, 0xeeaeaecc
jmp 0x410c91
mov eax, 0xeeaeaec0
lea ecx, [esp + 0x10]
call fcn.00417de0
mov eax, 0xeeaeaec0
lea ecx, [esp + 0x38]
call fcn.00417de0
mov eax, dword [0x887734]
xor ebx, ebx
mov esi, 0x26de0
mov dword [esp + 0x24], 0x26440
mov edi, edi
mov cl, byte [ebx + eax + 0x262d5]
test cl, cl
je 0x410d42
mov cl, byte [ebx + eax + 0x262ee]
cmp cl, byte [eax + 0x26fd8]
jne 0x410d42
mov edi, ebx
call fcn.0040b6f0
mov edx, dword [0x887734]
mov eax, dword [esp + 0x24]
lea ecx, [eax + edx]
call fcn.0042e300
mov ecx, 0x5e5724
mov edi, eax
call fcn.0042e300
lea ecx, [esp + 0x10]
add edi, eax
call fcn.0042e300
imul edi, eax
mov ecx, 0x5e5724
call fcn.0042e300
mov ecx, eax
mov eax, edi
cdq
idiv ecx
mov edx, dword [0x887734]
lea edi, [esi + edx - 0x40]
push eax
call fcn.00417d40
lea ecx, [esp + 0x38]
call fcn.0042e300
push eax
mov eax, dword [0x887734]
lea edi, [esi + eax]
call fcn.00417d40
mov eax, dword [0x887734]
mov ecx, dword [esp + 0x24]
add ecx, 0x40
inc ebx
add esi, 8
cmp ecx, 0x26640
mov dword [esp + 0x24], ecx
jl 0x410cb0
mov byte [esp + 0x7f4], 9
mov ecx, dword [esp + 0x3c]
push 1
push ecx
call fcn.004ce8c0
mov edi, eax
call fcn.0040afb0
mov byte [esp + 0x7f4], 4
mov edx, dword [esp + 0x14]
push 1
push edx
call fcn.004ce8c0
mov edi, eax
call fcn.0040afb0
mov ecx, dword [0x887734]
add ecx, 0x776cc
lea edi, [esp + 0x5c]
call fcn.00417b60
mov byte [esp + 0x7f4], 0xb
mov ecx, dword [0x887734]
add ecx, 0x776d4
lea edi, [esp + 0x2c]
call fcn.00417b60
mov byte [esp + 0x7f4], 0xc
mov eax, dword [0x887734]
movzx ebx, byte [eax + 0x242a0]
cmp ebx, 0xffff
je 0x410e16
mov edi, 0x90b7fc
call fcn.0040b2a0
push eax
lea edi, [esp + 0x60]
call fcn.00417d40
mov ecx, dword [0x887734]
movzx ebx, byte [ecx + 0x242a0]
mov edi, 0x90b7fc
call fcn.0040b300
push eax
lea edi, [esp + 0x30]
call fcn.00417d40
mov eax, dword [0x887734]
call fcn.0042ded0
mov dword [esp + 0x18], 0
mov ebx, 0x26de0
lea ecx, [ecx]
mov edx, dword [esp + 0x18]
mov eax, dword [0x887734]
mov cl, byte [edx + eax + 0x262d5]
test cl, cl
je 0x411333
mov eax, dword [ebx + eax - 0x3c]
mov dword [esp + 0x10], eax
call fcn.004ce8c0
mov edi, eax
lea esi, [edi + 0x34]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov al, byte [edi + 0x30]
test al, al
push esi
je 0x410e71
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x410ea1
mov eax, dword [edi + 0x2c]
mov ecx, dword [esp + 0x14]
mov edx, dword [edi + 0x24]
mov edi, dword [edi + 0x1c]
xor eax, ecx
mov ecx, eax
shr ecx, 3
mov dword [esp + 0x14], edi
mov edi, dword [edx + ecx*4]
mov ecx, dword [esp + 0x14]
xor edi, dword [ecx + eax*4]
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test edi, edi
jle 0x410ee8
mov edx, dword [0x887734]
lea ecx, [ebx + edx - 0x40]
call fcn.0042e300
lea ecx, [esp + 0x2c]
mov edi, eax
call fcn.0042e300
imul edi, eax
mov ecx, dword [0x887734]
mov eax, 0x51eb851f
imul edi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
lea edi, [ebx + ecx - 0x40]
call fcn.00417d40
mov edi, dword [esp + 0x18]
call fcn.0040b6f0
mov edx, dword [0x887734]
mov eax, dword [ebx + edx + 4]
mov dword [esp + 0x10], eax
call fcn.004ce8c0
mov edi, eax
lea esi, [edi + 0x34]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov al, byte [edi + 0x30]
test al, al
push esi
je 0x410f17
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x410f43
mov eax, dword [edi + 0x2c]
mov ecx, dword [esp + 0x14]
mov edx, dword [edi + 0x24]
mov edi, dword [edi + 0x1c]
xor eax, ecx
mov ecx, eax
shr ecx, 3
mov dword [esp + 0x14], edi
mov edi, dword [edx + ecx*4]
mov ecx, dword [esp + 0x14]
xor edi, dword [ecx + eax*4]
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test edi, edi
jle 0x410f7f
mov edx, dword [0x887734]
lea ecx, [ebx + edx]
call fcn.0042e300
lea ecx, [esp + 0x5c]
mov edi, eax
call fcn.0042e300
imul edi, eax
mov ecx, dword [0x887734]
mov eax, 0x51eb851f
imul edi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
lea edi, [ebx + ecx]
call fcn.00417d40
mov edx, dword [0x887734]
mov eax, dword [ebx + edx - 0x3c]
mov dword [esp + 0x10], eax
call fcn.004ce8c0
mov edi, eax
lea esi, [edi + 0x34]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov al, byte [edi + 0x30]
test al, al
push esi
je 0x410fae
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x410fde
mov eax, dword [edi + 0x2c]
mov ecx, dword [esp + 0x14]
mov edx, dword [edi + 0x24]
mov edi, dword [edi + 0x1c]
xor eax, ecx
mov ecx, eax
shr ecx, 3
mov dword [esp + 0x14], edi
mov edi, dword [edx + ecx*4]
mov ecx, dword [esp + 0x14]
xor edi, dword [ecx + eax*4]
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test edi, edi
jle 0x41103f
mov edx, dword [0x887734]
lea ecx, [ebx + edx - 0x40]
call fcn.0042e300
mov ecx, dword [0x887734]
add ecx, 0x1ff5c
mov esi, eax
call fcn.0042e300
imul esi, eax
mov ecx, dword [0x887734]
mov eax, 0x51eb851f
imul esi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebx + ecx - 0x3c]
mov dword [esp + 0x10], eax
push 1
lea eax, [esp + 0x14]
push eax
push edx
call fcn.004ce8c0
mov esi, eax
call fcn.0040aeb0
mov edi, dword [esp + 0x18]
call fcn.0040b6f0
mov eax, dword [0x887734]
mov ecx, dword [ebx + eax + 4]
mov dword [esp + 0x10], ecx
call fcn.004ce8c0
mov edi, eax
lea esi, [edi + 0x34]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov al, byte [edi + 0x30]
test al, al
push esi
je 0x41106d
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x41109d
mov eax, dword [edi + 0x2c]
mov edx, dword [esp + 0x14]
mov ecx, dword [edi + 0x24]
mov edi, dword [edi + 0x1c]
xor eax, edx
mov edx, eax
shr edx, 3
mov dword [esp + 0x14], edi
mov edi, dword [ecx + edx*4]
mov edx, dword [esp + 0x14]
xor edi, dword [edx + eax*4]
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test edi, edi
jle 0x4110f3
mov eax, dword [0x887734]
lea ecx, [ebx + eax]
call fcn.0042e300
mov ecx, dword [0x887734]
add ecx, 0x1ff54
mov esi, eax
call fcn.0042e300
imul esi, eax
mov eax, 0x51eb851f
imul esi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x887734]
push 1
lea ecx, [esp + 0x14]
mov dword [esp + 0x14], eax
mov eax, dword [ebx + edx + 4]
push ecx
push eax
call fcn.004ce8c0
mov esi, eax
call fcn.0040aeb0
mov ecx, dword [0x887734]
mov edx, dword [ebx + ecx - 0xb48]
mov dword [esp + 0x10], edx
call fcn.004ce8c0
mov edi, eax
lea esi, [edi + 0x34]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov al, byte [edi + 0x30]
test al, al
push esi
je 0x411125
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x411155
mov eax, dword [edi + 0x2c]
mov ecx, dword [esp + 0x14]
mov edx, dword [edi + 0x24]
mov edi, dword [edi + 0x1c]
xor eax, ecx
mov ecx, eax
shr ecx, 3
mov ecx, dword [edx + ecx*4]
xor ecx, dword [edi + eax*4]
mov dword [esp + 0x14], ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov al, byte [esp + 0x10]
test al, al
je 0x411333
xor esi, esi
push esi
lea edi, [esp + 0x28]
call fcn.00417b20
push esi
lea edi, [esp + 0x3c]
mov byte [esp + 0x7f8], 0xd
call fcn.00417b20
mov byte [esp + 0x7f4], 0xe
mov eax, dword [0x887734]
lea ecx, [ebx + eax - 0xb4c]
call fcn.0052c2f0
and al, 3
cmp al, 3
jne 0x4111aa
mov eax, 0xf
lea edi, [esp + 0x24]
call fcn.00417c30
mov eax, 0x1e
jmp 0x41120f
mov ecx, dword [0x887734]
lea ecx, [ebx + ecx - 0xb4c]
call fcn.0052c2f0
test al, 2
je 0x4111d5
mov eax, 5
lea edi, [esp + 0x24]
call fcn.00417c30
mov eax, 0xa
jmp 0x41120f
mov edx, dword [0x887734]
lea ecx, [ebx + edx - 0xb4c]
call fcn.0052c2f0
test al, 1
lea edi, [esp + 0x24]
je 0x411200
mov eax, 0xa
call fcn.00417c30
mov eax, 0x14
jmp 0x41120f
mov eax, 1
call fcn.00417c30
mov eax, 1
lea edi, [esp + 0x38]
call fcn.00417c30
mov eax, dword [0x887734]
lea ecx, [ebx + eax - 0x40]
call fcn.0042e300
lea ecx, [esp + 0x24]
mov edi, eax
call fcn.0042e300
imul edi, eax
mov eax, 0x51eb851f
imul edi
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [0x887734]
push ecx
lea edi, [ebx + edx - 0x40]
call fcn.00417d40
mov edi, dword [esp + 0x18]
call fcn.0040b6f0
mov eax, dword [0x887734]
lea ecx, [ebx + eax]
call fcn.0042e300
lea ecx, [esp + 0x38]
mov edi, eax
call fcn.0042e300
imul edi, eax
mov eax, 0x51eb851f
imul edi
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [0x887734]
push ecx
lea edi, [ebx + edx]
call fcn.00417d40
mov ecx, dword [0x887734]
lea eax, [esp + 0x10]
push eax
lea ecx, [ebx + ecx - 0x40]
mov dword [esp + 0x14], esi
call fcn.00408750
test al, al
je 0x4112c6
mov edx, dword [0x887734]
lea edi, [ebx + edx - 0x40]
xor eax, eax
call fcn.00417c30
mov ecx, dword [0x887734]
lea eax, [esp + 0x10]
push eax
add ecx, ebx
mov dword [esp + 0x14], esi
call fcn.00408750
test al, al
je 0x4112f0
mov edx, dword [0x887734]
lea edi, [ebx + edx]
xor eax, eax
call fcn.00417c30
mov byte [esp + 0x7f4], 0xd
mov eax, dword [esp + 0x3c]
push 1
mov esi, vtable.Xenesis2::Foundation::Memory::xEncryptData_int_.0
push eax
mov dword [esp + 0x40], esi
call fcn.004ce8c0
mov edi, eax
call fcn.0040afb0
mov byte [esp + 0x7f4], 0xc
mov ecx, dword [esp + 0x28]
push 1
push ecx
mov dword [esp + 0x2c], esi
call fcn.004ce8c0
mov edi, eax
call fcn.0040afb0
mov edx, dword [esp + 0x18]
inc edx
add ebx, 8
cmp ebx, 0x26e20
mov dword [esp + 0x18], edx
jl 0x410e30
mov edx, dword [0x887734]
mov ebx, dword [edx + 0x1a678]
call fcn.004ce8c0
mov esi, eax
lea edi, [esi + 0x34]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov al, byte [esi + 0x30]
test al, al
push edi
je 0x411382
mov edi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov dword [esp + 0x3c], 1
call edi
jmp 0x4113a8
mov eax, dword [esi + 0x2c]
mov edx, dword [esi + 0x24]
mov esi, dword [esi + 0x1c]
xor eax, ebx
mov ecx, eax
shr ecx, 3
mov ecx, dword [edx + ecx*4]
xor ecx, dword [esi + eax*4]
mov dword [esp + 0x3c], ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov edi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [0x887734]
mov ecx, dword [eax + 0x1a684]
mov dword [esp + 0x10], ecx
call fcn.004ce8c0
mov esi, eax
lea ebx, [esi + 0x34]
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov al, byte [esi + 0x30]
test al, al
push ebx
je 0x4113d7
mov esi, 1
jmp 0x4113f9
mov eax, dword [esi + 0x2c]
mov edx, dword [esp + 0x14]
mov ecx, dword [esi + 0x24]
mov esi, dword [esi + 0x1c]
xor eax, edx
mov edx, eax
shr edx, 3
mov dword [esp + 0x14], esi
mov esi, dword [ecx + edx*4]
mov edx, dword [esp + 0x14]
xor esi, dword [edx + eax*4]
call edi
cmp dword [esp + 0x38], esi
jne 0x4114e7
mov eax, dword [0x887734]
mov ecx, dword [eax + 0x2429c]
mov dword [esp + 0x10], ecx
call fcn.004ce8c0
mov esi, eax
lea ebx, [esi + 0x34]
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov al, byte [esi + 0x30]
test al, al
push ebx
je 0x411431
call edi
jmp 0x41145a
mov eax, dword [esi + 0x2c]
mov edx, dword [esp + 0x14]
mov ecx, dword [esi + 0x24]
mov esi, dword [esi + 0x1c]
xor eax, edx
mov edx, eax
shr edx, 3
mov dword [esp + 0x14], esi
mov esi, dword [ecx + edx*4]
mov edx, dword [esp + 0x14]
xor esi, dword [edx + eax*4]
call edi
cmp esi, 3
je 0x411473
mov ecx, dword [0x887734]
add ecx, 0x26fc0
call fcn.0052c2f0
cmp al, 1
jne 0x4114e7
mov eax, dword [0x887734]
mov ebx, dword [eax + 0x26fd4]
call fcn.004ce8c0
mov esi, eax
lea eax, [esi + 0x34]
push eax
mov dword [esp + 0x28], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov al, byte [esi + 0x30]
test al, al
je 0x4114a3
mov ecx, dword [esp + 0x24]
push ecx
call edi
jmp 0x4114e7
mov eax, dword [esi + 0x2c]
mov ecx, dword [esi + 0x24]
mov esi, dword [esi + 0x1c]
xor eax, ebx
mov edx, eax
shr edx, 3
mov ebx, dword [ecx + edx*4]
xor ebx, dword [esi + eax*4]
mov edx, dword [esp + 0x24]
push edx
call edi
test bl, bl
jne 0x4114e7
cmp dword [0x887aa0], 0xb
jne 0x4114e2
mov ecx, dword [0x8876d4]
add ecx, 0x11c8
call fcn.0052c2f0
cmp al, 1
je 0x4114e7
call fcn.00415820
mov byte [esp + 0x7f4], 0xb
mov eax, dword [esp + 0x30]
push 1
push eax
call fcn.004ce8c0
mov edi, eax
call fcn.0040afb0
mov byte [esp + 0x7f4], 4
mov ecx, dword [esp + 0x60]
push 1
push ecx
call fcn.004ce8c0
mov edi, eax
call fcn.0040afb0
mov eax, dword [0x887734]
mov ecx, dword [eax + 0x26fbc]
push 1
lea edx, [esp + 0x20]
push edx
push ecx
mov byte [esp + 0x28], 1
call fcn.004ce8c0
mov esi, eax
call fcn.0040aeb0
jmp case.0x40f056.4116
cmp eax, 0x4501
je 0x4115d7
cmp eax, 0x5001
jne case.0x40f056.4116
mov edx, dword [ebp + 0x10]
cmp word [edx], 0
jne case.0x40f056.4116
mov eax, dword [0x887aa0]
mov ecx, dword [eax*4 + 0x8876a8]
mov esi, dword [ecx]
push 6
push 3
push 0x1004
push 0x88a3dc
call fcn.004475f0
mov edx, dword [0x887aa0]
mov ecx, dword [edx*4 + 0x8876a8]
push eax
call dword [esi + 0x2c]
push 0
push 0x5e5a2c
push 0x5e4138
push 0
call fcn.004cecd0
mov ebx, 0xc7
mov edi, eax
call fcn.004032b0
push eax
call fcn.00554aa1
add esp, 0x14
test eax, eax
je case.0x40f056.4116
mov esi, eax
call fcn.0050dd80
jmp case.0x40f056.4116
mov eax, dword [ebp + 0x10]
lea ecx, [eax + 1]
mov al, byte [eax]
push ecx
push 0x90a278
call fcn.004534a0
jmp case.0x40f056.4116
xor eax, eax
mov byte [esp + 0xe0], 0
mov ecx, 0x7f
lea edi, [esp + 0xe1]
rep stosd dword es:[edi], eax
mov ecx, dword [ebp + 8]
stosw word es:[edi], ax
xor edx, edx
xor esi, esi
test ecx, ecx
stosb byte es:[edi], al
mov eax, 6
jle 0x411671
mov edi, edi
mov ecx, dword [ebp + 0x10]
mov cl, byte [esi + ecx]
cmp cl, 0xd
je 0x411669
cmp cl, 0xa
jne 0x411661
mov edx, dword [0x887aa0]
mov ecx, dword [edx*4 + 0x8876a8]
mov edx, dword [ecx]
push eax
push 2
lea eax, [esp + 0xe8]
push eax
call dword [edx + 0x2c]
xor eax, eax
mov ecx, 0x80
lea edi, [esp + 0xe0]
rep stosd dword es:[edi], eax
xor edx, edx
jmp 0x411669
mov byte [esp + edx + 0xe0], cl
inc edx
mov ecx, dword [ebp + 8]
inc esi
cmp esi, ecx
jl 0x411620
mov ecx, dword [0x887aa0]
mov ecx, dword [ecx*4 + 0x8876a8]
mov edx, dword [ecx]
push eax
push 2
lea eax, [esp + 0xe8]
push eax
call dword [edx + 0x2c]
jmp case.0x40f056.4116
cmp eax, 0x6101
jg 0x411f88
je 0x411f57
sub eax, 0x6001
je 0x411861
sub eax, 4
je 0x411734
sub eax, 0x2d
jne case.0x40f056.4116
mov eax, dword [ebp + 0x10]
xor ecx, ecx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], ecx
mov edx, eax
mov ecx, dword [edx]
mov dword [esp + 0x5c], ecx
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
add eax, 0xc
mov dword [esp + 0x60], ecx
mov ecx, dword [eax]
add eax, 4
mov dword [esp + 0x64], edx
mov dl, byte [eax]
movzx eax, byte [eax + 1]
mov dword [esp + 0x6c], ecx
lea ecx, [esp + 0x5c]
push ecx
add ebx, 0x24138
mov byte [esp + 0x74], dl
mov dword [esp + 0x78], eax
call fcn.004189e0
mov edx, dword [0x887734]
mov byte [edx + 0x24148], 1
jmp case.0x40f056.4116
push str.Get_Gift_message_in_root_n
call fcn.004d2e60
add esp, 4
lea edi, [ebx + 0x19edc]
mov al, 1
call fcn.00417e70
xor eax, eax
mov ecx, 0x28
lea edi, [esp + 0xe0]
rep stosd dword es:[edi], eax
mov eax, dword [ebp + 0x10]
mov edx, dword [eax + 4]
mov ecx, dword [eax]
lea esi, [eax + 4]
mov al, byte [esi + 4]
add esi, 4
mov dword [esp + 0xf8], ecx
inc esi
mov ecx, esi
mov dword [esp + 0xe0], edx
mov edx, dword [ecx]
mov byte [esp + 0xfc], al
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [esp + 0xe8], eax
add esi, 0xc
mov dword [esp + 0xe4], edx
mov edx, dword [esi]
lea eax, [esp + 0x10]
push eax
mov dword [esp + 0xf0], ecx
mov dword [esp + 0x14], edx
add esi, 4
call fcn.005535c7
mov cx, word [eax + 0x14]
mov dl, byte [eax + 0x10]
mov al, byte [eax + 0xc]
add cx, 0x76c
mov word [esp + 0xf6], cx
movzx ecx, byte [esi]
add esp, 4
inc dl
mov byte [esp + 0xf4], dl
mov edx, ecx
shr ecx, 2
inc esi
mov byte [esp + 0xf5], al
lea edi, [esp + 0xfd]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [0x887734]
mov edx, dword [esi + 0x2412c]
xor ecx, ecx
test edx, edx
jle 0x411837
mov ebx, dword [esp + 0xe0]
xor edi, edi
cmp ecx, dword [esi + 0x2412c]
jae 0x411857
mov eax, dword [esi + 0x24128]
add eax, edi
cmp dword [eax], ebx
je 0x41184b
inc ecx
add edi, 0xa0
cmp ecx, edx
jl 0x411818
lea eax, [esp + 0xe0]
push eax
add esi, 0x24128
push esi
call fcn.00418990
mov byte [0x887a97], 1
jmp case.0x40f056.4116
push 0x80070057
call fcn.004010c0
mov eax, dword [ebp + 0x10]
mov cx, word [eax]
test cx, cx
je 0x411876
cmp cx, 0x20
je case.0x40f056.4116
lea esi, [eax + 2]
movzx eax, word [esi]
lea edi, [ebx + 0x4cfac]
call fcn.00417c30
mov ecx, eax
call fcn.0042e300
add esi, 2
test eax, eax
jle 0x411f13
mov dword [esp + 0x10], eax
lea ecx, [ecx]
mov ecx, dword [esi]
mov eax, dword [esi + 4]
add esi, 4
lea edi, [esp + 0x4c]
or bl, 0xff
mov dword [esp + 0x2c], ecx
call fcn.00417c30
mov ecx, eax
call fcn.0042e300
mov al, byte [esi + 4]
add esi, 4
mov dl, byte [esi + 1]
test al, al
setne byte [esp + 0x23]
inc esi
mov al, byte [esi + 1]
inc esi
test al, al
setne al
inc esi
test al, al
mov byte [esp + 0x36], dl
mov byte [esp + 0x37], al
je 0x41194b
mov ecx, dword [esi]
add esi, 4
cmp ecx, 0x151bc
lea edi, [esp + 0x54]
jle 0x411931
mov eax, 0x184178b9
imul ecx
sar edx, 0xd
mov eax, edx
shr eax, 0x1f
add eax, edx
call fcn.00417c30
lea eax, [esp + 0x88]
push eax
mov ecx, edi
push ecx
call fcn.00417c60
lea ecx, [esp + 0x88]
call fcn.00417bc0
mov bl, 3
jmp 0x41194b
mov eax, 0x91a2b3c5
imul ecx
add edx, ecx
sar edx, 0xb
mov eax, edx
shr eax, 0x1f
add eax, edx
call fcn.00417c30
mov bl, 4
cmp byte [esi], 0
setne al
inc esi
test al, al
je 0x41196e
mov eax, dword [esi]
lea edi, [esp + 0x80]
call fcn.00417c30
mov ecx, eax
call fcn.0042e300
add esi, 4
cmp byte [esi], 0
setne al
inc esi
test al, al
je 0x41198e
mov eax, dword [esi]
lea edi, [esp + 0x78]
call fcn.00417c30
mov ecx, eax
call fcn.0042e300
add esi, 4
cmp byte [esi], 0
setne byte [esp + 0x1c]
inc esi
lea ecx, [esp + 0x4c]
mov dword [esp + 0x18], esi
call fcn.0042e300
cmp eax, 0x31999
jle 0x411c85
lea edx, [esp + 0x38]
push edx
lea ecx, [esp + 0x50]
mov dword [esp + 0x3c], 0x34000
call fcn.00408750
test al, al
je 0x411c85
lea eax, [esp + 0xe0]
push eax
call fcn.00412370
lea ecx, [esp + 0x2e0]
mov byte [esp + 0x7f4], 5
call fcn.00412740
lea ecx, [esp + 0x4c]
mov byte [esp + 0x7f4], 6
call fcn.0042e300
mov ecx, dword [0x887734]
push eax
push ecx
mov al, 1
lea edi, [esp + 0x2e8]
call fcn.00429540
mov eax, dword [esp + 0x2c]
lea edi, [esp + 0xec]
call fcn.00417c30
lea ecx, [esp + 0x4c]
lea edi, [esp + 0xf4]
call fcn.00417be0
mov dl, byte [esp + 0x36]
lea ecx, [esp + 0x80]
lea edi, [esp + 0x114]
mov byte [esp + 0x110], dl
call fcn.00417be0
lea ecx, [esp + 0x78]
lea edi, [esp + 0x124]
call fcn.00417be0
mov al, byte [esp + 0x23]
lea edi, [esp + 0x108]
call fcn.00417e70
lea ecx, [esp + 0x54]
lea edi, [esp + 0x13c]
mov byte [esp + 0x144], bl
call fcn.00417be0
mov al, byte [esp + 0x37]
lea edi, [esp + 0x134]
call fcn.00417e70
mov al, byte [esp + 0x1c]
lea edi, [esp + 0x12c]
call fcn.00417e70
mov ecx, dword [0x887734]
mov al, byte [esp + 0x2e9]
add ecx, 0x24184
push ecx
lea ebx, [esp + 0xe4]
mov byte [esp + 0x100], al
call fcn.00418ab0
mov edx, dword [0x887734]
add edx, 0x241a4
push edx
call fcn.00418ab0
mov al, byte [esp + 0x23]
test al, al
je 0x411c53
lea ecx, [esp + 0x4c]
call fcn.0042e300
cmp eax, 0x32001
je 0x411c53
mov eax, dword [0x887734]
mov ecx, dword [eax + 0x77ae4]
test ecx, ecx
mov cl, byte [esp + 0x2e9]
je 0x411be1
movzx edx, cl
cmp dword [eax + edx*4 + 0x77ad0], 0xffffffff
je 0x411be1
mov esi, dword [0x887ac0]
push 0x600e
call fcn.004489e0
mov eax, dword [0x887ac0]
mov ecx, dword [eax + 0x4098]
mov esi, dword [0x887734]
mov word [eax + ecx + 0x98], 1
mov ebx, dword [eax + 0x4098]
add ebx, 2
mov dword [eax + 0x4098], ebx
movzx edx, byte [esp + 0x2e9]
mov edx, dword [esi + edx*4 + 0x77ad0]
mov ecx, ebx
mov dword [ecx + eax + 0x98], edx
mov edi, dword [eax + 0x4098]
mov ebx, 4
add edi, ebx
mov dword [eax + 0x4098], edi
mov ecx, edi
mov byte [ecx + eax + 0x98], 0
mov esi, dword [eax + 0x4098]
inc esi
push eax
mov dword [eax + 0x4098], esi
call fcn.00448b70
lea ecx, [esp + 0x2e0]
mov byte [esp + 0x7f4], 5
call fcn.00412cb0
lea eax, [esp + 0xe0]
push eax
mov byte [esp + 0x7f8], bl
call fcn.004125e0
mov esi, dword [esp + 0x18]
jmp 0x411f09
movzx ecx, cl
lea edi, [eax + ecx*8 + 0x1a64c]
lea ecx, [esp + 0x4c]
call fcn.00417be0
movzx edx, byte [esp + 0x2e9]
mov eax, dword [0x887734]
mov ecx, dword [esp + 0x2c]
mov dword [eax + edx*4 + 0x77ad0], ecx
movzx edx, byte [esp + 0x2e9]
lea edi, [eax + edx*8 + 0x4cfd4]
mov eax, dword [esp + 0x24]
call fcn.00417c30
movzx eax, byte [esp + 0x2e9]
dec eax
je 0x411c43
dec eax
jne 0x411c53
mov eax, dword [0x887734]
mov dword [eax + 0x7787c], 1
jmp 0x411c53
mov ecx, dword [0x887734]
mov dword [ecx + 0x77878], 1
inc dword [esp + 0x24]
lea ecx, [esp + 0x2e0]
mov byte [esp + 0x7f4], 5
call fcn.00412cb0
lea edx, [esp + 0xe0]
push edx
mov byte [esp + 0x7f8], 4
call fcn.004125e0
jmp 0x411ed2
lea eax, [esp + 0x98]
push eax
call fcn.00412ff0
mov byte [esp + 0x7f4], 7
mov eax, dword [esp + 0x2c]
lea edi, [esp + 0xa0]
call fcn.00417c30
lea ecx, [esp + 0x4c]
lea edi, [esp + 0xa8]
call fcn.00417be0
mov cl, byte [esp + 0x36]
mov al, byte [esp + 0x23]
lea edi, [esp + 0xb0]
mov dword [esp + 0x9c], 0
mov byte [esp + 0x98], cl
call fcn.00417e70
lea ecx, [esp + 0x78]
lea edi, [esp + 0xb8]
call fcn.00417be0
lea ecx, [esp + 0x54]
lea edi, [esp + 0xd0]
mov byte [esp + 0xd8], bl
call fcn.00417be0
mov al, byte [esp + 0x37]
lea edi, [esp + 0xc8]
call fcn.00417e70
mov al, byte [esp + 0x1c]
lea edi, [esp + 0xc0]
call fcn.00417e70
mov edx, dword [0x887734]
add edx, 0x24154
push edx
lea ebx, [esp + 0x9c]
call fcn.00418a30
mov eax, dword [0x887734]
add eax, 0x24194
push eax
call fcn.00418a30
mov ecx, dword [0x887734]
add ecx, 0x24164
push ecx
call fcn.00418a30
mov al, byte [esp + 0x23]
test al, al
je 0x411ebd
lea ecx, [esp + 0x4c]
call fcn.0042e300
cmp eax, 0x32001
je 0x411ebd
lea ecx, [esp + 0x4c]
call fcn.0042e300
mov ebx, eax
sar ebx, 0x10
lea ecx, [esp + 0x4c]
and bl, 0xf
call fcn.0042e300
mov ecx, dword [0x887734]
mov edi, eax
mov eax, dword [ecx + 0x77ae4]
and edi, 0x7fff
test eax, eax
je 0x411e67
movzx eax, bl
lea eax, [eax*4 + 0x77ac0]
cmp dword [eax + ecx], 0xffffffff
mov dword [esp + 0x38], eax
je 0x411e67
mov esi, dword [0x887ac0]
push 0x600e
call fcn.004489e0
mov eax, dword [0x887ac0]
mov edx, dword [eax + 0x4098]
mov esi, dword [esp + 0x38]
mov word [eax + edx + 0x98], 1
mov ebx, dword [eax + 0x4098]
mov edx, dword [0x887734]
add ebx, 2
mov dword [eax + 0x4098], ebx
mov edx, dword [esi + edx]
mov ecx, ebx
mov dword [ecx + eax + 0x98], edx
mov edi, dword [eax + 0x4098]
mov ebx, 4
add edi, ebx
mov dword [eax + 0x4098], edi
mov ecx, edi
mov byte [ecx + eax + 0x98], 0
mov esi, dword [eax + 0x4098]
inc esi
push eax
mov dword [eax + 0x4098], esi
call fcn.00448b70
lea eax, [esp + 0x98]
push eax
mov byte [esp + 0x7f8], bl
call fcn.00413190
mov esi, dword [esp + 0x18]
jmp 0x411f09
cmp bl, 3
jne 0x411e7c
movzx eax, di
or eax, 0x8000
lea edi, [ecx + 0x1a644]
jmp 0x411ea5
add ecx, 0x1a66c
call fcn.0052c2f0
neg al
movzx ecx, di
movzx edx, bl
sbb eax, eax
and eax, 0x8000
or eax, ecx
mov ecx, dword [0x887734]
lea edi, [ecx + edx*8 + 0x1a62c]
call fcn.00417c30
mov eax, dword [0x887734]
mov ecx, dword [esp + 0x2c]
movzx edx, bl
mov dword [eax + edx*4 + 0x77ac0], ecx
lea edx, [esp + 0x98]
push edx
mov byte [esp + 0x7f8], 4
call fcn.00413190
lea ecx, [esp + 0x4c]
call fcn.0042e300
sub eax, 0x32001
je 0x411ef6
sub eax, 0x76
je 0x411ef2
sub eax, 0x6091
jne 0x411f09
push 4
jmp 0x411ef8
push 2
jmp 0x411ef8
push 1
mov edi, dword [0x887734]
add edi, 0x77744
call fcn.00417f00
dec dword [esp + 0x10]
jne 0x4118a0
mov eax, dword [0x887734]
push eax
xor ecx, ecx
call fcn.0042d070
mov eax, dword [0x887734]
mov esi, dword [0x887ac0]
push 0x6100
mov byte [eax + 0x24149], 1
mov dword [eax + 0x77ae4], 0
call fcn.004489e0
mov ecx, dword [0x887ac0]
push ecx
call fcn.00448b70
jmp case.0x40f056.4116
mov edx, dword [ebp + 0x10]
mov eax, dword [edx + 2]
lea edi, [ebx + 0x1a5b4]
call fcn.00417c30
mov esi, dword [0x887ac0]
push 0x6104
call fcn.004489e0
mov eax, dword [0x887ac0]
push eax
call fcn.00448b70
jmp case.0x40f056.4116
cmp eax, 0x6105
je 0x412009
cmp eax, 0x9003
jne case.0x40f056.4116
mov eax, dword [ebp + 0x10]
cmp word [eax], 0
jne case.0x40f056.4116
mov ecx, dword [eax + 2]
cmp dword [0x887aa0], 3
mov dword [ebx + 0x77e34], ecx
jne case.0x40f056.4116
push 0
push 0x5e5a10
push 0x5e4138
push 0
call fcn.004cecd0
mov ebx, 0x26
mov edi, eax
call fcn.004032b0
push eax
call fcn.00554aa1
mov ecx, eax
add esp, 0x14
test ecx, ecx
je case.0x40f056.4116
mov edx, dword [0x887734]
mov eax, dword [edx + 0x77e34]
call fcn.00512bf0
jmp case.0x40f056.4116
push 0x5859dc
call fcn.004d2e60
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 2]
add esp, 4
lea edi, [ebx + 0x1a5ac]
call fcn.00417c30
mov ecx, dword [0x887734]
mov eax, dword [ecx + 0x18854]
test eax, eax
je case.0x40f056.4116
push 4
call fcn.00413d00
mov edx, dword [0x887734]
mov dword [edx + 0x18854], 0
add esp, 4
mov eax, dword [0x887aa0]
mov ecx, dword [eax*4 + 0x8876a8]
mov eax, dword [ebp + 0x10]
mov edx, dword [ecx]
push eax
mov eax, dword [ebp + 0xc]
push eax
mov eax, dword [ebp + 8]
push eax
call dword [edx + 4]
mov byte [esp + 0x7f4], 3
call fcn.004ce8c0
mov ebx, eax
lea edi, [ebx + 0x34]
push edi
mov dword [esp + 0x30], edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [esp + 0x7f4], 0xf
mov ecx, dword [esp + 0x58]
mov eax, dword [ebx + 0x2c]
xor eax, ecx
lea ecx, [eax + 1]
mov esi, eax
cmp esi, ecx
mov dword [esp + 0x24], ecx
jge 0x4120d2
add ebx, 0x10
mov dword [esp + 0x10], ebx
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x88]
push ecx
lea ebx, [esp + 0x3c]
mov dword [esp + 0x3c], esi
call fcn.00417a20
mov eax, dword [esp + 0x24]
inc esi
cmp esi, eax
jl 0x4120b0
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov byte [esp + 0x7f4], 2
mov esi, dword [esp + 0x7c]
mov dword [esp + 0x78], vtable.Xenesis2::Foundation::Memory::xEncryptData_int_.0
call fcn.004ce8c0
mov ebx, eax
lea edi, [ebx + 0x34]
push edi
mov dword [esp + 0x30], edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [esp + 0x7f4], 0x10
mov eax, dword [ebx + 0x2c]
xor eax, esi
lea ecx, [eax + 1]
mov esi, eax
cmp esi, ecx
mov dword [esp + 0x24], ecx
jge 0x412145
add ebx, 0x10
mov dword [esp + 0x10], ebx
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x88]
push edx
lea ebx, [esp + 0x3c]
mov dword [esp + 0x3c], esi
call fcn.00417a20
mov eax, dword [esp + 0x24]
inc esi
cmp esi, eax
jl 0x412123
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov byte [esp + 0x7f4], 1
mov esi, dword [esp + 0x84]
mov dword [esp + 0x80], vtable.Xenesis2::Foundation::Memory::xEncryptData_int_.0
call fcn.004ce8c0
mov ebx, eax
lea edi, [ebx + 0x34]
push edi
mov dword [esp + 0x30], edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [esp + 0x7f4], 0x11
mov eax, dword [ebx + 0x2c]
xor eax, esi
lea ecx, [eax + 1]
mov esi, eax
cmp esi, ecx
mov dword [esp + 0x24], ecx
jge 0x4121c2
add ebx, 0x10
mov dword [esp + 0x10], ebx
lea esp, [esp]
lea eax, [esp + 0x88]
push eax
mov eax, dword [esp + 0x14]
lea ebx, [esp + 0x3c]
mov dword [esp + 0x3c], esi
call fcn.00417a20
mov eax, dword [esp + 0x24]
inc esi
cmp esi, eax
jl 0x4121a0
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov byte [esp + 0x7f4], 0
call fcn.004ce8c0
mov ebx, eax
lea edi, [ebx + 0x34]
push edi
mov dword [esp + 0x30], edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [esp + 0x7f4], 0x12
mov ecx, dword [esp + 0x94]
mov eax, dword [ebx + 0x2c]
xor eax, ecx
lea ecx, [eax + 1]
mov esi, eax
cmp esi, ecx
mov dword [esp + 0x24], ecx
jge 0x412232
add ebx, 0x10
mov dword [esp + 0x10], ebx
mov edi, edi
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x88]
push ecx
lea ebx, [esp + 0x3c]
mov dword [esp + 0x3c], esi
call fcn.00417a20
mov eax, dword [esp + 0x24]
inc esi
cmp esi, eax
jl 0x412210
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov dword [esp + 0x7f4], 0xffffffff
mov esi, dword [esp + 0x50]
mov dword [esp + 0x4c], vtable.Xenesis2::Foundation::Memory::xEncryptData_int_.0
call fcn.004ce8c0
mov ebx, eax
lea eax, [ebx + 0x34]
push eax
mov dword [esp + 0x28], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov dword [esp + 0x7f4], 0x13
mov eax, dword [ebx + 0x2c]
xor eax, esi
lea edi, [eax + 1]
mov esi, eax
cmp esi, edi
jge 0x4122ae
add ebx, 0x10
mov dword [esp + 0x10], ebx
jmp 0x412290
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x88]
push edx
lea ebx, [esp + 0x3c]
mov dword [esp + 0x3c], esi
call fcn.00417a20
inc esi
cmp esi, edi
jl 0x412290
mov eax, dword [esp + 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [esp + 0x7ec]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret