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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x569e10
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.004cc430
mov ecx, eax
call fcn.0040aef0
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.004cc430
mov esi, eax
call fcn.0040ae50
mov dword [esp + 0x7f4], edi
push 1
mov dword [esp + 0x94], ebx
call fcn.004cc430
mov ecx, eax
call fcn.0040aef0
push 1
lea edx, [esp + 0x14]
push edx
push eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0x1c], edi
call fcn.004cc430
mov esi, eax
call fcn.0040ae50
mov byte [esp + 0x7f4], 1
push 1
mov dword [esp + 0x84], ebx
call fcn.004cc430
mov ecx, eax
call fcn.0040aef0
push 1
lea ecx, [esp + 0x14]
push ecx
push eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x1c], edi
call fcn.004cc430
mov esi, eax
call fcn.0040ae50
mov byte [esp + 0x7f4], 2
push 1
mov dword [esp + 0x7c], ebx
call fcn.004cc430
mov ecx, eax
call fcn.0040aef0
push 1
lea edx, [esp + 0x14]
push edx
push eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x1c], edi
call fcn.004cc430
mov esi, eax
call fcn.0040ae50
mov byte [esp + 0x7f4], 3
push 1
mov dword [esp + 0x58], ebx
call fcn.004cc430
mov ecx, eax
call fcn.0040aef0
push 1
lea ecx, [esp + 0x14]
push ecx
push eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x1c], edi
call fcn.004cc430
mov esi, eax
call fcn.0040ae50
mov byte [esp + 0x7f4], 4
mov ebx, dword [0x884634]
mov eax, dword [ebx + 0x77348]
cmp eax, edi
mov dword [esp + 0x20], edi
je 0x40efab
push eax
push 1
lea edx, [esp + 0x24]
push 1
push edx
mov byte [esp + 0x2c], 0
call fcn.00552575
mov eax, dword [0x884634]
mov ecx, dword [eax + 0x77348]
mov edx, dword [0x8845d4]
push ecx
push 4
add edx, 4
push 1
push edx
call fcn.00552575
mov eax, dword [0x884634]
mov ecx, dword [eax + 0x77348]
push ecx
push 4
lea edx, [ebp + 8]
push 1
push edx
call fcn.00552575
mov eax, dword [0x884634]
mov ecx, dword [eax + 0x77348]
push ecx
push 2
lea edx, [ebp + 0xc]
push 1
push edx
call fcn.00552575
mov eax, dword [0x884634]
mov ecx, dword [eax + 0x77348]
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 0x10]
add esp, 0x40
push ecx
push edx
push 1
push eax
call fcn.00552575
mov ebx, dword [0x884634]
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 0x41025b
je 0x410214
cmp eax, 0x1060
jg 0x40f973
je 0x40f917
sub eax, 0x1013
cmp eax, 0x3d
ja case.0x40eff6.4116
movzx ecx, byte [eax + 0x412240]
jmp dword [ecx*4 + 0x412220]
mov esi, dword [ebp + 0x10]
mov dx, word [esi]
add esi, 2
test dx, dx
mov word [ebx + 0x1a548], dx
mov dword [esp + 0x2c], 0
jbe 0x40f088
mov dword [esp + 0x18], 0x1a2c8
mov eax, dword [esp + 0x18]
lea edi, [eax + ebx - 0xa0]
mov eax, dword [esi]
call fcn.00417b10
mov ecx, dword [0x884634]
mov ebx, dword [esp + 0x18]
mov eax, dword [esi + 4]
add esi, 4
lea edi, [ebx + ecx]
call fcn.00417b10
mov edx, dword [0x884634]
mov eax, dword [esi + 4]
add esi, 4
lea edi, [ebx + edx + 0xa0]
call fcn.00417b10
mov eax, dword [esp + 0x2c]
add ebx, 8
mov dword [esp + 0x18], ebx
mov ebx, dword [0x884634]
movzx ecx, word [ebx + 0x1a548]
add esi, 4
inc eax
cmp eax, ecx
mov dword [esp + 0x2c], eax
jl 0x40f022
mov dx, word [esi]
add esi, 2
test dx, dx
mov word [ebx + 0x1a54a], dx
mov dword [esp + 0x18], esi
mov dword [esp + 0x2c], 0
jbe case.0x40eff6.4116
mov dword [esp + 0x20], 0x19f08
mov eax, dword [esp + 0x18]
mov edi, dword [eax]
cmp edi, 0x13
jle 0x40f0c2
mov edi, 0x13
mov edx, dword [esp + 0x20]
mov eax, dword [edx + ebx + 4]
push 1
lea ecx, [esp + 0x14]
push ecx
push eax
mov dword [esp + 0x1c], edi
call fcn.004cc430
mov esi, eax
call fcn.0040ae50
mov ebx, dword [esp + 0x18]
mov eax, dword [ebx + 4]
mov edx, dword [0x884634]
add ebx, 4
push 1
lea ecx, [esp + 0x14]
mov dword [esp + 0x14], eax
mov eax, dword [edx + edi*8 + 0x19fac]
push ecx
push eax
call fcn.004cc430
mov esi, eax
call fcn.0040ae50
mov eax, dword [ebx + 4]
mov edx, dword [0x884634]
add ebx, 4
push 1
lea ecx, [esp + 0x14]
mov dword [esp + 0x14], eax
mov eax, dword [edx + edi*8 + 0x1a04c]
push ecx
push eax
call fcn.004cc430
mov esi, eax
call fcn.0040ae50
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x20]
add ebx, 4
mov dword [esp + 0x18], ebx
mov ebx, dword [0x884634]
movzx ecx, word [ebx + 0x1a54a]
inc eax
add esi, 8
cmp eax, ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x20], esi
jl 0x40f0b2
jmp case.0x40eff6.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.005496b0
jmp 0x411f93
mov ecx, dword [ebp + 0x10]
mov ax, word [ecx]
test ax, ax
je 0x40f2c6
movzx eax, ax
add ecx, 2
test eax, eax
mov dword [esp + 0x18], ecx
jle 0x40f35e
mov dword [esp + 0x20], 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.00451d70
add esp, 4
lea esi, [esp + 0x5c]
lea edi, [esp + 0x38]
mov eax, ebx
call fcn.0042c2a0
mov ecx, dword [0x884634]
mov eax, edi
push eax
add ecx, 0x77384
push ecx
call fcn.00557560
add esp, 8
test eax, eax
jne 0x40f26a
mov eax, dword [0x8849c0]
mov edx, esi
push edx
mov edx, 0x10
call fcn.00449270
push eax
call fcn.004492b0
mov eax, dword [0x884634]
mov byte [eax + 0x77384], 0
mov edx, dword [0x884634]
lea ecx, [esp + 0x38]
push ecx
add edx, 0x7757c
push edx
call fcn.00557560
add esp, 8
test eax, eax
jne 0x40f2b1
lea eax, [esp + 0x5c]
push eax
mov eax, dword [0x8849c0]
mov edx, 0x10
call fcn.00449270
push eax
call fcn.004492b0
mov ebx, dword [0x884634]
mov byte [ebx + 0x7757c], 0
jmp 0x40f2b7
mov ebx, dword [0x884634]
dec dword [esp + 0x20]
jne 0x40f1c3
jmp 0x40f35e
mov eax, dword [ebp + 0x10]
movzx eax, word [eax + 0xe]
mov ecx, dword [0x8849a0]
mov ecx, dword [ecx*4 + 0x8845a8]
mov edx, dword [ecx]
push eax
mov eax, dword [0x8849c0]
movzx eax, word [eax + 0x40a0]
push eax
call dword [edx + 0x10]
mov esi, dword [0x884634]
add esi, 0x77978
push 0x36
xor cl, cl
call fcn.004141a0
mov eax, dword [0x8849a0]
add esp, 4
cmp eax, 4
jne 0x40f35e
push 1
push 0x2a
mov eax, 0x908c10
call fcn.004ce370
push 1
push 0x29
mov eax, 0x908c10
call fcn.004ce370
push 0
push 0x5e2a2c
push 0x5e1138
push 0
call fcn.004cc880
mov ebx, 0x2d
mov edi, eax
call fcn.00403280
push eax
call fcn.00551f74
add esp, 0x14
test eax, eax
je 0x40f35e
mov esi, eax
call fcn.00506070
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x10]
push ecx
push 0x900388
call fcn.00404f30
jmp case.0x40eff6.4116
mov eax, dword [ebp + 0x10]
mov ebx, dword [eax]
add eax, 4
mov dword [esp + 0x18], eax
cmp dword [0x8849a0], 0xb
mov dword [esp + 0x20], ebx
jne 0x40f39e
test ebx, ebx
jg case.0x40eff6.4116
cmp ebx, 0xfffffffd
je case.0x40eff6.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 0x8872dc
stosb byte es:[edi], al
call fcn.00447150
mov edx, eax
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40f3d0
lea edi, [esp + 0x2e0]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40f3e1
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.0x40f405
jmp dword [eax*4 + 0x412280]
push 0x1772
push 0x8872dc
call fcn.00447150
mov edx, eax
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40f420
lea edi, [esp + 0x2e0]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40f431
jmp 0x40f529
push 0x1773
push 0x8872dc
call fcn.00447150
mov edx, eax
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40f450
lea edi, [esp + 0x2e0]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40f461
jmp 0x40f529
push 0x1774
push 0x8872dc
call fcn.00447150
mov edx, eax
nop
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 0x40f529
push 0x1775
push 0x8872dc
call fcn.00447150
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 0x40f529
push 0x1776
push 0x8872dc
call fcn.00447150
mov edx, eax
lea esp, [esp]
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 0x40f529
push 0x1771
push 0x8872dc
call fcn.00447150
mov edx, eax
lea esp, [esp]
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
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 0x40f65e
push 0x1777
push 0x8872dc
call fcn.00447150
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40f558
lea edi, [esp + 0x2e0]
sub eax, edx
dec edi
lea esp, [esp]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40f570
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 0x40f5ce
cmp byte [ebx + 1], 0x48
jne 0x40f5ce
push 0x177a
push 0x8872dc
call fcn.00447150
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40f5a5
lea edi, [esp + 0x2e0]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40f5b6
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 0x40f65e
cmp byte [ebx + 1], 0x4d
jne 0x40f619
push 0x1778
push 0x8872dc
call fcn.00447150
mov edx, eax
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40f5f0
lea edi, [esp + 0x2e0]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40f601
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 0x40f65e
cmp byte [ebx + 1], 0x44
jne 0x40f65e
push 0x1779
push 0x8872dc
call fcn.00447150
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40f635
lea edi, [esp + 0x2e0]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40f646
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 0x40f7b6
push 0x177b
push 0x8872dc
call fcn.00447150
mov esi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40f681
lea edi, [esp + 0x2e0]
sub eax, esi
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40f692
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.00552251
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.00552251
mov edi, eax
mov ax, word [ebx + 6]
lea ecx, [esp + 0xe8]
push ecx
mov word [esp + 0xec], ax
call fcn.00552251
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.00552251
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.00552251
mov edx, dword [esp + 0x24]
add esp, 0x14
push eax
push edx
push ebx
push edi
push esi
push 0x177c
push 0x8872dc
call fcn.00447150
push eax
lea eax, [esp + 0xf8]
push eax
call fcn.00550730
lea eax, [esp + 0xfc]
add esp, 0x1c
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40f788
lea edi, [esp + 0x2e0]
sub eax, ecx
mov esi, ecx
dec edi
jmp 0x40f7a0
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40f7a0
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 0x40f879
push 0x177e
push 0x8872dc
call fcn.00447150
mov esi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40f7d6
lea edi, [esp + 0x2e0]
sub eax, esi
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40f7e7
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 0x8872dc
call fcn.00447150
push eax
lea edx, [esp + 0xf0]
push edx
call fcn.00550730
lea eax, [esp + 0xf4]
add esp, 0x14
mov ecx, eax
lea ecx, [ecx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40f850
lea edi, [esp + 0x2e0]
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40f863
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 + 0x20]
test eax, eax
jg 0x40f89a
cmp eax, 0xfffffffd
je 0x40f89a
mov al, 1
lea esi, [esp + 0x2e0]
push eax
call fcn.00414270
jmp 0x411f93
xor al, al
lea esi, [esp + 0x2e0]
push eax
call fcn.00414270
jmp 0x411f93
mov eax, dword [ebp + 0x10]
mov esi, dword [eax]
test esi, esi
lea edi, [ebx + 0x77624]
je 0x40f8e3
mov al, 1
call fcn.00417d50
mov edi, dword [0x884634]
mov eax, esi
imul eax, dword [0x5e121c]
add edi, 0x7762c
call fcn.00417b10
jmp case.0x40eff6.4116
xor al, al
call fcn.00417d50
mov edi, dword [0x884634]
add edi, 0x7762c
xor eax, eax
call fcn.00417b10
jmp case.0x40eff6.4116
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx]
lea edi, [ebx + 0x1a574]
call fcn.00417b10
jmp case.0x40eff6.4116
mov edx, dword [ebp + 0x10]
mov eax, dword [edx]
lea edi, [ebx + 0x240e0]
call fcn.00417b10
mov ecx, dword [0x884634]
add ecx, 0x240e0
call fcn.0042dd80
cmp eax, 1
jne 0x40f94b
push 0x46
xor cl, cl
call fcn.00414040
jmp 0x411f93
mov ecx, dword [0x884634]
add ecx, 0x240e0
call fcn.0042dd80
cmp eax, 3
jne case.0x40eff6.4116
push 0x52
xor cl, cl
call fcn.00414040
jmp 0x411f93
cmp eax, 0x1ffa
jg 0x40fe18
je 0x40fde0
sub eax, 0x1079
je 0x40fdc5
sub eax, 0x18
je 0x40f9ad
sub eax, 0xf67
jne case.0x40eff6.4116
push 0x45
mov cl, 1
call fcn.00414040
jmp 0x411f93
mov eax, dword [ebp + 0x10]
cmp byte [eax], 0
jne 0x40fd92
mov ecx, dword [0x8849a0]
cmp ecx, 9
jne 0x40fa26
mov esi, dword [0x8849c0]
push 0x3200
call fcn.00448230
mov eax, dword [0x8849c0]
mov esi, dword [eax + 0x4098]
mov ecx, dword [0x884634]
mov dl, byte [ecx + 0x24480]
mov byte [esi + eax + 0x98], dl
mov esi, dword [eax + 0x4098]
inc esi
mov dword [eax + 0x4098], esi
mov cl, byte [ecx + 0x24481]
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.004483c0
jmp case.0x40eff6.4116
cmp ecx, 0xd
jne 0x40fa98
mov esi, dword [0x8849c0]
push 0x3200
call fcn.00448230
mov eax, dword [0x8849c0]
mov esi, dword [eax + 0x4098]
mov ecx, dword [0x884634]
mov dl, byte [ecx + 0x24480]
mov byte [esi + eax + 0x98], dl
mov edi, dword [eax + 0x4098]
inc edi
mov dword [eax + 0x4098], edi
mov cl, byte [ecx + 0x24481]
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.004483c0
push 3
call fcn.00413c50
jmp 0x411f93
lea esi, [eax + 2]
mov al, byte [esi]
cmp al, 0xfe
je 0x40faa5
cmp al, 0x10
jbe 0x40fae2
cmp al, 0xff
je 0x40fae2
mov word [ebx + 0x24480], 0xffff
xor esi, esi
jmp 0x40fac0
mov ebx, dword [0x884634]
lea esp, [esp]
lea edi, [esi + ebx + 0x1a58c]
xor eax, eax
call fcn.00417b10
add esi, 8
cmp esi, 0x30
jl 0x40fab6
push 0xd
call fcn.00413c50
jmp 0x411f93
inc esi
mov byte [ebx + 0x24480], al
mov al, byte [esi]
cmp al, 0xfe
je 0x40faf3
cmp al, 0x10
jbe 0x40fb32
cmp al, 0xff
je 0x40fb32
mov word [ebx + 0x24480], 0xffff
xor esi, esi
jmp 0x40fb10
mov ebx, dword [0x884634]
lea ebx, [ebx]
lea edi, [esi + ebx + 0x1a58c]
xor eax, eax
call fcn.00417b10
add esi, 8
cmp esi, 0x30
jl 0x40fb04
push 0xd
call fcn.00413c50
jmp 0x411f93
mov byte [ebx + 0x24481], 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], 0x1a58c
jmp 0x40fb90
mov ebx, dword [0x884634]
lea ecx, [ecx]
mov ecx, dword [esp + 0x18]
movzx eax, byte [esi]
lea edi, [ebx + ecx*8 + 0x1a58c]
call fcn.00417b10
mov edx, dword [0x884634]
mov eax, dword [esp + 0x18]
lea ecx, [edx + eax*8 + 0x1a58c]
inc esi
call fcn.0042dd80
cmp eax, 0xff
mov ebx, dword [esp + 0x2c]
jne 0x40fc17
mov ecx, dword [esp + 0x18]
mov edx, dword [0x884634]
movzx eax, byte [esi]
inc ecx
add ebx, 8
lea edi, [edx + ecx*8 + 0x1a58c]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x2c], ebx
call fcn.00417b10
inc esi
xor edi, edi
lea ecx, [ecx]
mov eax, dword [0x884634]
lea ecx, [ebx + eax]
call fcn.0042dd80
movzx ecx, byte [esp + edi + 0x38]
cmp eax, ecx
je 0x40fc0c
inc edi
cmp edi, 6
jl 0x40fbf0
cmp edi, 6
je 0x40fc5e
mov ebx, dword [esp + 0x2c]
jmp 0x40fc42
xor edi, edi
lea esp, [esp]
mov edx, dword [0x884634]
lea ecx, [ebx + edx]
call fcn.0042dd80
movzx ecx, byte [esp + edi + 0x10]
cmp eax, ecx
je 0x40fc3d
inc edi
cmp edi, 6
jl 0x40fc20
cmp edi, 6
je 0x40fc5e
mov edx, dword [esp + 0x18]
add ebx, 8
inc edx
cmp ebx, 0x1a5bc
mov dword [esp + 0x18], edx
mov dword [esp + 0x2c], ebx
jl 0x40fb87
cmp dword [esp + 0x18], 6
je 0x40fce6
push 0xd
call fcn.00413c50
add esp, 4
lea ecx, [esp + 0x54]
mov byte [esp + 0x7f4], 3
call fcn.00417aa0
lea ecx, [esp + 0x78]
mov byte [esp + 0x7f4], 2
call fcn.00417aa0
lea ecx, [esp + 0x80]
mov byte [esp + 0x7f4], 1
call fcn.00417aa0
lea ecx, [esp + 0x90]
mov byte [esp + 0x7f4], 0
call fcn.00417aa0
lea ecx, [esp + 0x4c]
mov dword [esp + 0x7f4], 0xffffffff
call fcn.00417aa0
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 0x40fcf0
mov eax, dword [0x884634]
lea ecx, [esi + eax + 0x1a58c]
lea edi, [esi + eax + 0x1a5bc]
call fcn.00417ac0
add esi, 8
cmp esi, 0x30
jl 0x40fcf0
mov eax, dword [0x8849a0]
cmp eax, 2
je 0x40fd1f
cmp eax, 0xd
jne 0x40fd33
push 3
mov dword [0x5e1238], 0xffffffff
call fcn.00413c50
add esp, 4
mov esi, dword [0x8849c0]
push 0x3200
call fcn.00448230
mov eax, dword [0x8849c0]
mov esi, dword [eax + 0x4098]
mov ecx, dword [0x884634]
mov dl, byte [ecx + 0x24480]
mov byte [esi + eax + 0x98], dl
mov esi, dword [eax + 0x4098]
inc esi
mov dword [eax + 0x4098], esi
mov cl, byte [ecx + 0x24481]
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.004483c0
jmp 0x40fdad
push 0
push 0xc3502
push 0x8872dc
call fcn.00447150
mov esi, eax
call fcn.00414270
add esp, 4
mov edx, dword [0x8849a0]
push 0
push edx
mov eax, 0x908c10
call fcn.004ce370
jmp case.0x40eff6.4116
mov eax, dword [ebp + 0x10]
cmp word [eax], 0
jne case.0x40eff6.4116
push 0x47
xor cl, cl
call fcn.00414040
jmp 0x411f93
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.00550730
push 0x5b
lea esi, [esp + 0x6f0]
xor cl, cl
call fcn.004141a0
add esp, 0x10
jmp case.0x40eff6.4116
sub eax, 0x2001
je 0x40ff8c
sub eax, 0xd
jne case.0x40eff6.4116
mov eax, dword [0x8849a0]
cmp eax, 3
jne 0x40fe44
cmp dword [0x88459c], 3
je 0x40fe5a
jmp case.0x40eff6.4116
cmp eax, 7
jne case.0x40eff6.4116
cmp dword [0x88459c], 4
jne case.0x40eff6.4116
push str.Recv_Channel_Insert_n
call fcn.00451d70
mov eax, dword [ebp + 0x10]
mov cl, byte [eax]
movzx esi, cl
mov ecx, esi
imul ecx, ecx, 0xd
mov byte [esi + ebx + 0x1ff2d], 1
add ecx, ebx
add esp, 4
inc eax
mov dword [esp + 0x10], ecx
add ecx, 0x2002d
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 + 0x20039], 0
mov dl, byte [eax]
xor ecx, ecx
test dl, dl
sete cl
inc eax
lea edx, [ebx + esi*8]
add eax, 8
mov dword [ebx + esi*4 + 0x21d30], ecx
lea ecx, [esi + edx]
mov edx, dword [eax - 8]
mov dword [ecx + 0x22530], edx
mov edx, dword [eax - 4]
mov dword [ecx + 0x22534], edx
mov dl, byte [ecx + 0x22537]
test dl, dl
jns 0x40fef7
lea edx, [ebx + esi*8 + 0x1e830]
test byte [esi + edx + 0x3d06], 0x80
jne 0x40fef7
mov byte [ecx + 0x22537], 0
mov byte [ecx + 0x22538], 0
mov cx, word [eax]
add cx, 5
mov word [ebx + esi*2 + 0x22e30], cx
mov dx, word [eax + 2]
add eax, 2
add dx, 5
mov word [ebx + esi*2 + 0x23030], dx
mov cx, word [eax + 2]
add eax, 2
add cx, 5
mov word [ebx + esi*2 + 0x23630], cx
mov dx, word [eax + 2]
add eax, 2
push 0
mov word [ebx + esi*2 + 0x23830], dx
mov dl, byte [ebx + 0x1ff2c]
push 0x5e2a48
inc dl
push 0x5e1138
push 0
mov byte [ebx + 0x1ff2c], dl
call fcn.004cc880
mov ebx, 0x24
mov edi, eax
call fcn.00403280
push eax
call fcn.00551f74
add esp, 0x14
test eax, eax
je case.0x40eff6.4116
mov ecx, eax
call fcn.00500f60
jmp case.0x40eff6.4116
mov esi, dword [ebp + 0x10]
cmp word [esi], 0
jne case.0x40eff6.4116
push str.Recv_JoinChannel__n
call fcn.00451d70
add esp, 4
mov edx, ebx
mov dword [ebx + 0x2419c], 0xffffffff
call fcn.00421d30
call fcn.004214e0
mov eax, 0x906fa8
call fcn.004528c0
movzx eax, word [esi + 2]
mov ebx, dword [0x884634]
add esi, 2
add esi, 3
mov dword [ebx + 0x1ff28], eax
mov cl, byte [esi]
mov al, cl
inc esi
test al, al
mov byte [ebx + 0x1ff2c], cl
mov dword [esp + 0x20], 0
jbe 0x4100e9
mov al, byte [esi]
movzx eax, al
mov edx, eax
imul edx, edx, 0xd
mov byte [eax + ebx + 0x1ff2d], 1
lea ecx, [edx + ebx]
inc esi
mov dword [esp + 0x10], ecx
add ecx, 0x2002d
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 + 0x20039], 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 + 0x21d30], ecx
lea ecx, [eax + edx]
mov edx, dword [esi - 8]
mov dword [ecx + 0x22530], edx
mov edx, dword [esi - 4]
mov dword [ecx + 0x22534], edx
mov dl, byte [ecx + 0x22537]
test dl, dl
jns 0x410085
lea edx, [ebx + eax*8 + 0x1e830]
test byte [eax + edx + 0x3d06], 0x80
jne 0x410085
mov byte [ecx + 0x22537], 0
mov byte [ecx + 0x22538], 0
mov cx, word [esi]
add cx, 5
mov word [ebx + eax*2 + 0x22e30], cx
mov dx, word [esi + 2]
add esi, 2
add dx, 5
add esi, 2
mov word [ebx + eax*2 + 0x23030], dx
mov cx, word [esi]
add cx, 5
add esi, 2
mov word [ebx + eax*2 + 0x23630], cx
mov dx, word [esi]
mov word [ebx + eax*2 + 0x23830], dx
mov eax, dword [esp + 0x20]
movzx ecx, byte [ebx + 0x1ff2c]
add esi, 2
inc eax
cmp eax, ecx
mov dword [esp + 0x20], eax
jl 0x40fff7
movzx edx, byte [ebx + 0x1ff2c]
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 + 0x20], edx
jle 0x41018d
lea esp, [esp]
mov cl, byte [edx + esi]
cmp cl, 0xa
jne 0x410179
lea eax, [esp + 0x2e0]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x410142
push 0
push 0
lea ecx, [esp + 0x2e8]
push ecx
push 0
push 0
push 2
sub eax, edx
push ebx
call fcn.004215c0
mov edx, dword [esp + 0x20]
mov ecx, 0x100
xor eax, eax
lea edi, [esp + 0x2e0]
rep stosd dword es:[edi], eax
jmp 0x410181
mov byte [esp + eax + 0x2e0], cl
inc eax
mov ecx, dword [ebp + 8]
inc edx
cmp edx, ecx
mov dword [esp + 0x20], edx
jl 0x410130
lea eax, [esp + 0x2e0]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x410197
push 0
push 0
sub eax, edx
lea edx, [esp + 0x2e8]
push edx
push 0
push 0
push 2
push ebx
call fcn.004215c0
cmp dword [0x8849a0], 3
jne case.0x40eff6.4116
push 0
push 0x5e2a6c
push 0x5e1138
push 0
call fcn.004cc880
mov ebx, 0x1f
mov edi, eax
call fcn.00403280
push eax
call fcn.00551f74
mov edi, eax
add esp, 0x14
test edi, edi
je case.0x40eff6.4116
call fcn.00504570
mov eax, dword [0x884634]
mov esi, dword [eax + 0x1ff28]
add esi, 0x78
call fcn.00504610
jmp case.0x40eff6.4116
mov eax, dword [0x8849a0]
cmp eax, 3
jne 0x41022c
cmp dword [0x88459c], 3
je 0x410242
jmp case.0x40eff6.4116
cmp eax, 4
jne case.0x40eff6.4116
cmp dword [0x88459c], 4
jne case.0x40eff6.4116
mov ecx, dword [ebp + 0x10]
movzx edx, byte [ecx]
mov byte [edx + ebx + 0x1ff2d], 0
dec byte [ebx + 0x1ff2c]
jmp case.0x40eff6.4116
cmp eax, 0x5101
jg 0x411625
je 0x411587
cmp eax, 0x4410
jg 0x4114de
je 0x410ae1
sub eax, 0x3010
je 0x410734
sub eax, 0x10
je 0x4102ed
sub eax, 0x3e0
jne case.0x40eff6.4116
mov eax, dword [ebp + 0x10]
movzx eax, byte [eax]
lea edi, [ebx + 0x1a640]
call fcn.00417b10
mov ecx, dword [0x884634]
add ecx, 0x1a640
call fcn.0042dd80
mov ecx, eax
mov eax, dword [0x884634]
cmp byte [ecx + eax + 0x2449a], 3
jne case.0x40eff6.4116
lea ecx, [eax + 0x1a640]
call fcn.0042dd80
mov edx, dword [0x884634]
mov byte [eax + edx + 0x2449a], 1
jmp case.0x40eff6.4116
mov esi, dword [ebp + 0x10]
movzx eax, byte [esi]
lea ecx, [ebx + 0x25ff4]
call fcn.00419fd0
movzx edi, byte [esi]
mov al, byte [edi + ebx + 0x25f8c]
test al, al
je 0x41032c
mov byte [edi + ebx + 0x25f8c], 0
mov eax, dword [ebx + edi*4 + 0x777d8]
push eax
mov ecx, 0x75b40c
call fcn.00533840
mov ebx, dword [0x884634]
mov al, byte [edi + ebx + 0x25f84]
test al, al
je 0x410357
mov byte [edi + ebx + 0x25f84], 0
mov ecx, dword [ebx + edi*4 + 0x777b8]
push ecx
mov ecx, 0x75b40c
call fcn.00533840
mov ebx, dword [0x884634]
mov eax, dword [0x8849a0]
cmp eax, 3
jne 0x410557
mov cl, byte [ebx + 0x24245]
mov al, byte [0x8849fa]
dec cl
cmp al, 1
mov byte [ebx + 0x24245], cl
movzx edx, byte [esi]
mov byte [edx + ebx + 0x2449a], 0
jne 0x410399
movzx eax, byte [esi]
lea edi, [ebx + eax*8 + 0x2900c]
or eax, 0xffffffff
call fcn.00417b10
mov ebx, dword [0x8849a0]
movzx edx, byte [esi]
cmp ebx, 0xb
sete cl
mov eax, 0x906fa8
push ecx
push edx
call fcn.00452a00
mov ebx, dword [0x884634]
mov eax, dword [ebx + 0x76a1c]
test eax, eax
je 0x410541
mov dword [esp + 0x2c], 0
jle 0x410541
jmp 0x4103e0
mov eax, dword [esp + 0x2c]
lea ecx, [ebx + 0x76a18]
call fcn.00419d70
mov edi, dword [eax]
mov esi, dword [0x884634]
mov edx, edi
mov dword [esp + 0x10], edi
call fcn.00421c80
test al, al
je 0x410524
mov ecx, edi
call fcn.0042c990
mov ebx, 0xc303
mov esi, 0x906fa8
call fcn.004522f0
mov eax, dword [0x907b1c]
mov esi, dword [0x8845d4]
mov edx, edi
mov byte [eax + 0x90791c], dl
mov eax, dword [0x907b1c]
inc eax
mov dword [0x907b1c], eax
add esi, 0x127c
mov ecx, 0x10
lea edi, [eax + 0x90791c]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [0x907b1c]
add ecx, 0x40
cmp edx, 0xe
mov dword [0x907b1c], ecx
jne 0x4104d7
mov ecx, dword [0x884634]
mov ecx, dword [ecx + 0x26f9c]
add ecx, 0x2a4
call fcn.00417de0
test al, al
jne 0x41049d
mov edx, dword [0x884634]
mov edi, dword [edx + 0x26f9c]
add edi, 0x2a4
mov al, 1
call fcn.00417d50
mov eax, dword [0x884634]
mov edi, dword [eax + 0x26f9c]
push 0
call fcn.0046bd60
mov ecx, dword [0x907b1c]
mov word [ecx + 0x90791c], ax
mov ecx, dword [0x907b1c]
mov eax, dword [0x884634]
add ecx, 2
push 0
mov dword [0x907b1c], ecx
call fcn.00424570
push 0x906fa8
or ecx, 0xffffffff
call fcn.004524d0
mov edi, dword [0x884634]
mov esi, dword [esp + 0x2c]
add edi, 0x76a18
mov ebx, 1
mov edx, esi
call fcn.00418980
mov ebx, dword [0x884634]
mov eax, dword [ebx + 0x76a1c]
dec esi
test eax, eax
mov dword [esp + 0x2c], esi
jne 0x41052a
push 0xc302
mov esi, 0x906fa8
call fcn.00452bc0
mov ebx, dword [0x884634]
mov eax, dword [esp + 0x2c]
mov ecx, dword [ebx + 0x76a1c]
inc eax
cmp eax, ecx
mov dword [esp + 0x2c], eax
jl 0x4103e0
mov eax, dword [0x8849a0]
cmp eax, 3
jne 0x410557
cmp dword [0x88459c], eax
je case.0x40eff6.4116
mov dl, byte [ebx + 0x24245]
mov esi, dword [ebp + 0x10]
dec dl
cmp eax, 9
mov byte [ebx + 0x24245], dl
movzx edx, byte [esi]
mov byte [edx + ebx + 0x2449a], 0
jne 0x410593
cmp byte [0x8849fa], 1
jne 0x410593
movzx eax, byte [esi]
lea edi, [ebx + eax*8 + 0x2900c]
or eax, 0xffffffff
call fcn.00417b10
mov ebx, dword [0x8849a0]
movzx edx, byte [esi]
cmp ebx, 0xb
sete cl
mov eax, 0x906fa8
push ecx
push edx
call fcn.00452a00
mov ecx, dword [0x884634]
mov eax, dword [ecx + 0x76a1c]
test eax, eax
je case.0x40eff6.4116
xor edx, edx
test eax, eax
mov dword [esp + 0x2c], edx
jle case.0x40eff6.4116
add ecx, 0x76a18
mov eax, edx
call fcn.00419d70
mov edi, dword [eax]
mov esi, dword [0x884634]
mov edx, edi
mov dword [esp + 0x10], edi
call fcn.00421c80
test al, al
je 0x410712
mov ecx, edi
call fcn.0042c990
mov ebx, 0xc303
mov esi, 0x906fa8
call fcn.004522f0
mov eax, dword [0x907b1c]
mov esi, dword [0x8845d4]
mov edx, edi
mov byte [eax + 0x90791c], dl
mov eax, dword [0x907b1c]
inc eax
mov dword [0x907b1c], eax
add esi, 0x127c
mov ecx, 0x10
lea edi, [eax + 0x90791c]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [0x907b1c]
add ecx, 0x40
cmp edx, 0xe
mov dword [0x907b1c], ecx
jne 0x4106c5
mov ecx, dword [0x884634]
mov ecx, dword [ecx + 0x26f9c]
add ecx, 0x2a4
call fcn.00417de0
test al, al
jne 0x41068b
mov edx, dword [0x884634]
mov edi, dword [edx + 0x26f9c]
add edi, 0x2a4
mov al, 1
call fcn.00417d50
mov eax, dword [0x884634]
mov edi, dword [eax + 0x26f9c]
push 0
call fcn.0046bd60
mov ecx, dword [0x907b1c]
mov word [ecx + 0x90791c], ax
mov ecx, dword [0x907b1c]
mov eax, dword [0x884634]
add ecx, 2
push 0
mov dword [0x907b1c], ecx
call fcn.00424570
push 0x906fa8
or ecx, 0xffffffff
call fcn.004524d0
mov edi, dword [0x884634]
mov esi, dword [esp + 0x2c]
add edi, 0x76a18
mov ebx, 1
mov edx, esi
call fcn.00418980
mov edx, dword [0x884634]
mov eax, dword [edx + 0x76a1c]
dec esi
test eax, eax
mov dword [esp + 0x2c], esi
jne 0x410712
push 0xc302
mov esi, 0x906fa8
call fcn.00452bc0
mov edx, dword [esp + 0x2c]
mov ecx, dword [0x884634]
mov eax, dword [ecx + 0x76a1c]
inc edx
cmp edx, eax
mov dword [esp + 0x2c], edx
jl 0x4105d0
jmp case.0x40eff6.4116
mov eax, dword [0x8849a0]
cmp eax, 3
je 0x410769
cmp eax, 9
jne 0x41074c
cmp dword [0x88459c], 9
jmp 0x410758
cmp eax, 0xb
jne 0x41075a
cmp dword [0x88459c], 0xb
je 0x410769
push str._n_n_n_n
call fcn.00451d70
jmp 0x411f93
mov eax, 0x906fa8
call fcn.00452910
push str.Recv_Room_Insert_n
call fcn.00451d70
mov esi, dword [ebp + 0x10]
mov al, byte [esi]
mov edi, dword [0x884634]
movzx ebx, al
add esp, 4
lea ecx, [edi + 0x25ff4]
mov eax, ebx
inc esi
call fcn.00419fb0
mov ecx, esi
mov edx, dword [ecx]
lea eax, [ebx + ebx*4]
shl eax, 2
mov dword [esp + 0x10], eax
lea eax, [eax + edi + 0x242bd]
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 dword [eax + 8], ecx
mov byte [edx + edi + 0x242c9], 0
mov cl, byte [esi + 0xc]
add esi, 0xc
xor eax, eax
test cl, cl
mov ecx, dword [esi + 1]
sete al
inc esi
mov dword [edi + ebx*4 + 0x24360], ecx
mov dx, word [esi + 4]
add esi, 4
mov word [edi + ebx*2 + 0x243a0], dx
add esi, 2
add esi, 4
mov dword [esp + 0x2c], eax
mov eax, dword [esi - 4]
mov dword [edi + ebx*4 + 0x24380], eax
mov cx, word [esi]
mov word [edi + ebx*2 + 0x243b0], cx
mov dl, byte [esi + 2]
add esi, 2
mov byte [edi + ebx*2 + 0x24482], dl
mov al, byte [esi + 1]
inc esi
mov byte [edi + ebx*2 + 0x24483], al
mov cl, byte [esi + 1]
inc esi
mov byte [ebx + edi + 0x24492], cl
mov byte [ebx + edi + 0x2449a], 1
mov ecx, dword [esi + 1]
inc esi
lea edx, [edi + ebx*8]
lea eax, [ebx + edx]
mov dword [eax + 0x24275], ecx
mov edx, dword [esi + 4]
mov cl, byte [eax + 0x22537]
test cl, cl
mov dword [eax + 0x24279], edx
mov byte [eax + 0x2427d], 0
jns 0x41087f
lea ecx, [edi + ebx*8 + 0x1e830]
mov dl, byte [ebx + ecx + 0x3d06]
test dl, dl
js 0x41087f
mov byte [eax + 0x22537], 0
mov dx, word [esi + 8]
add esi, 8
add esi, 2
add dx, 5
mov word [edi + ebx*2 + 0x244a2], dx
mov ax, word [esi]
add esi, 2
add ax, 5
mov word [edi + ebx*2 + 0x244b2], ax
mov cx, word [esi]
add cx, 5
add esi, 2
mov word [edi + ebx*2 + 0x244d2], cx
mov dx, word [esi]
mov word [edi + ebx*2 + 0x244c2], dx
mov cl, byte [edi + 0x24245]
add esi, 2
inc cl
mov byte [edi + 0x24245], cl
movzx eax, word [esi]
mov dword [esp + 0x10], eax
add esi, 2
xor eax, eax
cmp eax, 3
jne 0x4108f6
lea ecx, [ebx*4 + 0x121e0]
mov word [edi + ecx*2 + 6], 0x8000
jmp 0x41090f
mov ecx, dword [esp + 0x2c]
neg ecx
sbb ecx, ecx
and ecx, 0x8000
lea edx, [eax + ebx*4 + 0x121e0]
mov word [edi + edx*2], cx
lea ecx, [eax + ebx*4 + 0x9100]
inc eax
cmp eax, 4
mov dword [edi + ecx*4], 0
jl 0x4108e1
mov eax, dword [esp + 0x10]
test eax, eax
jle 0x410a5f
mov dword [esp + 0x18], eax
mov ecx, dword [esi]
cmp ecx, 0x31999
mov dword [esp + 0x20], ecx
jle 0x410a08
cmp ecx, 0x34000
jge 0x410a08
lea ecx, [esp + 0x2e0]
call fcn.00412690
mov byte [esp + 0x7f4], 8
mov edx, dword [esp + 0x20]
mov eax, dword [0x884634]
push edx
push eax
mov al, 1
lea edi, [esp + 0x2e8]
call fcn.004292f0
movzx eax, byte [esp + 0x2e9]
dec eax
je 0x4109bf
dec eax
jne 0x4109ec
mov eax, dword [0x884634]
mov edx, dword [esp + 0x20]
mov ecx, ebx
shl ecx, 4
mov dword [ecx + eax + 0x24408], edx
cmp dword [0x8849a0], 3
mov byte [ebx + eax + 0x25f8c], 1
je 0x4109ec
push ebx
push eax
call fcn.0042d2f0
jmp 0x4109ec
mov eax, dword [0x884634]
mov edx, dword [esp + 0x20]
mov ecx, ebx
shl ecx, 4
mov dword [ecx + eax + 0x24404], edx
cmp dword [0x8849a0], 3
mov byte [ebx + eax + 0x25f84], 1
je 0x4109ec
push ebx
push eax
call fcn.0042d1d0
lea ecx, [esp + 0x2e0]
mov byte [esp + 0x7f4], 4
call fcn.00412c00
mov edi, dword [0x884634]
jmp 0x410a4d
mov eax, ecx
sar eax, 0x10
and al, 0xf
and ecx, 0x7fff
cmp al, 3
jne 0x410a2d
or ecx, 0x8000
lea eax, [ebx*4 + 0x121e0]
mov word [edi + eax*2 + 6], cx
jmp 0x410a4d
mov edx, dword [esp + 0x2c]
neg edx
sbb edx, edx
and edx, 0x8000
or edx, ecx
movzx ecx, al
lea eax, [ebx*4 + 0x121e0]
add ecx, eax
mov word [edi + ecx*2], dx
mov eax, dword [esp + 0x18]
add esi, 4
dec eax
mov dword [esp + 0x18], eax
jne 0x410933
mov al, byte [esi]
push 1
lea edx, [esp + 0x20]
mov byte [esp + 0x20], al
mov eax, dword [edi + ebx*8 + 0x25f48]
push edx
push eax
call fcn.004cc430
mov esi, eax
call fcn.0040ae50
call fcn.0055244c
cdq
mov ecx, 6
idiv ecx
mov ecx, dword [0x884634]
mov eax, dword [ecx + ebx*4 + 0x24380]
mov esi, ebx
mov dword [ecx + ebx*4 + 0x25f94], edx
xor edx, edx
mov dx, word [ecx + ebx*2 + 0x243b0]
push edx
push eax
mov ax, word [ecx + ebx*2 + 0x243a0]
mov ecx, dword [ecx + ebx*4 + 0x24360]
mov edx, 0x906fa8
call fcn.00452980
mov eax, dword [0x8845cc]
test eax, eax
je case.0x40eff6.4116
mov ecx, ebx
call fcn.004f6ef0
jmp case.0x40eff6.4116
lea ecx, [ebx + 0x26f00]
call fcn.00417de0
test al, al
jne 0x4114b5
mov edi, dword [0x884634]
add edi, 0x26f00
mov al, 1
call fcn.00417d50
mov ecx, dword [ebp + 0x10]
mov al, byte [ecx]
mov ecx, dword [0x884634]
test al, al
setne dl
mov byte [ecx + 0x26f10], al
mov byte [ecx + 0x26f11], dl
lea ecx, [esp + 0x10]
call fcn.004179c0
lea ecx, [esp + 0x38]
mov byte [esp + 0x7f4], 9
call fcn.004179c0
mov eax, 0xeeaeaec0
lea ecx, [esp + 0x10]
mov byte [esp + 0x7f4], 0xa
call fcn.00417cc0
mov eax, 0xeeaeaec0
lea ecx, [esp + 0x38]
call fcn.00417cc0
mov ecx, dword [0x884634]
add ecx, 0x24258
call fcn.0042dd80
cmp eax, 3
jne 0x410bab
mov eax, dword [0x884634]
mov cl, byte [eax + 0x26f10]
test cl, cl
lea ecx, [eax + 0x4efd8]
je 0x410b92
lea ecx, [eax + 0x4efe0]
call fcn.0042dd80
mov ecx, 0x5e2724
mov esi, eax
call fcn.0042dd80
cmp esi, eax
jl 0x410c3d
mov ecx, dword [0x884634]
add ecx, 0x26018
call fcn.0042dd80
dec eax
cmp eax, 7
ja case.default.0x410bc6
jmp dword [eax*4 + 0x412294]
mov eax, 0xeeaeaea4
lea ecx, [esp + 0x10]
call fcn.00417cc0
mov eax, 0xeeaeaec3
jmp 0x410c34
mov eax, 0xeeaeae56
lea ecx, [esp + 0x10]
call fcn.00417cc0
mov eax, 0xeeaeaec6
jmp 0x410c34
mov eax, 0xeeaeae08
lea ecx, [esp + 0x10]
call fcn.00417cc0
mov eax, 0xeeaeaec9
jmp 0x410c34
mov eax, 0xeeaeafec
lea ecx, [esp + 0x10]
call fcn.00417cc0
mov eax, 0xeeaeaecc
jmp 0x410c34
mov eax, 0xeeaeaec0
lea ecx, [esp + 0x10]
call fcn.00417cc0
mov eax, 0xeeaeaec0
lea ecx, [esp + 0x38]
call fcn.00417cc0
mov eax, dword [0x884634]
xor ebx, ebx
mov dword [esp + 0x20], ebx
mov esi, 0x26d98
lea ecx, [ecx]
mov cl, byte [ebx + eax + 0x2628d]
test cl, cl
je 0x410ce6
mov cl, byte [ebx + eax + 0x262a6]
cmp cl, byte [eax + 0x26f10]
jne 0x410ce6
mov edi, ebx
call fcn.0040b6b0
mov edx, dword [0x884634]
mov eax, dword [esp + 0x20]
lea ecx, [eax + edx + 0x263f8]
call fcn.0042dd80
mov ecx, 0x5e2724
mov edi, eax
call fcn.0042dd80
lea ecx, [esp + 0x10]
add edi, eax
call fcn.0042dd80
imul edi, eax
mov ecx, 0x5e2724
call fcn.0042dd80
mov ecx, eax
mov eax, edi
cdq
idiv ecx
mov edx, dword [0x884634]
lea edi, [esi + edx - 0x40]
push eax
call fcn.00417c20
lea ecx, [esp + 0x38]
call fcn.0042dd80
push eax
mov eax, dword [0x884634]
lea edi, [esi + eax]
call fcn.00417c20
mov eax, dword [0x884634]
mov edx, dword [esp + 0x20]
add esi, 8
add edx, 0x40
inc ebx
cmp esi, 0x26dd8
mov dword [esp + 0x20], edx
jl 0x410c50
mov byte [esp + 0x7f4], 9
mov ecx, dword [esp + 0x3c]
push 1
push ecx
call fcn.004cc430
mov edi, eax
call fcn.0040af50
mov byte [esp + 0x7f4], 4
mov edx, dword [esp + 0x14]
push 1
push edx
call fcn.004cc430
mov edi, eax
call fcn.0040af50
mov ecx, dword [0x884634]
add ecx, 0x77604
lea edi, [esp + 0x5c]
call fcn.00417a40
mov byte [esp + 0x7f4], 0xb
mov ecx, dword [0x884634]
add ecx, 0x7760c
lea edi, [esp + 0x2c]
call fcn.00417a40
mov byte [esp + 0x7f4], 0xc
mov eax, dword [0x884634]
movzx ebx, byte [eax + 0x24260]
cmp ebx, 0xffff
je 0x410dba
mov edi, 0x90852c
call fcn.0040b240
push eax
lea edi, [esp + 0x60]
call fcn.00417c20
mov ecx, dword [0x884634]
movzx ebx, byte [ecx + 0x24260]
mov edi, 0x90852c
call fcn.0040b2a0
push eax
lea edi, [esp + 0x30]
call fcn.00417c20
mov dword [esp + 0x18], 0
mov ebx, 0x26d98
jmp 0x410dd0
mov edx, dword [esp + 0x18]
mov eax, dword [0x884634]
mov cl, byte [edx + eax + 0x2628d]
test cl, cl
je 0x4112cb
mov eax, dword [ebx + eax - 0x3c]
mov dword [esp + 0x10], eax
call fcn.004cc430
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 0x410e11
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x410e3d
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 0x410e84
mov edx, dword [0x884634]
lea ecx, [ebx + edx - 0x40]
call fcn.0042dd80
lea ecx, [esp + 0x2c]
mov edi, eax
call fcn.0042dd80
imul edi, eax
mov ecx, dword [0x884634]
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.00417c20
mov edi, dword [esp + 0x18]
call fcn.0040b6b0
mov edx, dword [0x884634]
mov eax, dword [ebx + edx + 4]
mov dword [esp + 0x10], eax
call fcn.004cc430
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 0x410eb3
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x410edf
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 0x410f1b
mov edx, dword [0x884634]
lea ecx, [ebx + edx]
call fcn.0042dd80
lea ecx, [esp + 0x5c]
mov edi, eax
call fcn.0042dd80
imul edi, eax
mov ecx, dword [0x884634]
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.00417c20
mov edx, dword [0x884634]
mov eax, dword [ebx + edx - 0x3c]
mov dword [esp + 0x10], eax
call fcn.004cc430
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 0x410f4a
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x410f7a
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 0x410fdb
mov edx, dword [0x884634]
lea ecx, [ebx + edx - 0x40]
call fcn.0042dd80
mov ecx, dword [0x884634]
add ecx, 0x1ff1c
mov esi, eax
call fcn.0042dd80
imul esi, eax
mov ecx, dword [0x884634]
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.004cc430
mov esi, eax
call fcn.0040ae50
mov edi, dword [esp + 0x18]
call fcn.0040b6b0
mov eax, dword [0x884634]
mov ecx, dword [ebx + eax + 4]
mov dword [esp + 0x10], ecx
call fcn.004cc430
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 0x411009
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x411035
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 0x41108b
mov eax, dword [0x884634]
lea ecx, [ebx + eax]
call fcn.0042dd80
mov ecx, dword [0x884634]
add ecx, 0x1ff14
mov esi, eax
call fcn.0042dd80
imul esi, eax
mov eax, 0x51eb851f
imul esi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x884634]
push 1
lea ecx, [esp + 0x14]
mov dword [esp + 0x14], eax
mov eax, dword [ebx + edx + 4]
push ecx
push eax
call fcn.004cc430
mov esi, eax
call fcn.0040ae50
mov ecx, dword [0x884634]
mov edx, dword [ebx + ecx - 0xb48]
mov dword [esp + 0x10], edx
call fcn.004cc430
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 0x4110bd
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x4110ed
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 0x4112cb
xor esi, esi
push esi
lea edi, [esp + 0x24]
call fcn.00417a00
push esi
lea edi, [esp + 0x3c]
mov byte [esp + 0x7f8], 0xd
call fcn.00417a00
mov byte [esp + 0x7f4], 0xe
mov eax, dword [0x884634]
lea ecx, [ebx + eax - 0xb4c]
call fcn.00417de0
and al, 3
cmp al, 3
jne 0x411142
mov eax, 0xf
lea edi, [esp + 0x20]
call fcn.00417b10
mov eax, 0x1e
jmp 0x4111a7
mov ecx, dword [0x884634]
lea ecx, [ebx + ecx - 0xb4c]
call fcn.00417de0
test al, 2
je 0x41116d
mov eax, 5
lea edi, [esp + 0x20]
call fcn.00417b10
mov eax, 0xa
jmp 0x4111a7
mov edx, dword [0x884634]
lea ecx, [ebx + edx - 0xb4c]
call fcn.00417de0
test al, 1
lea edi, [esp + 0x20]
je 0x411198
mov eax, 0xa
call fcn.00417b10
mov eax, 0x14
jmp 0x4111a7
mov eax, 1
call fcn.00417b10
mov eax, 1
lea edi, [esp + 0x38]
call fcn.00417b10
mov eax, dword [0x884634]
lea ecx, [ebx + eax - 0x40]
call fcn.0042dd80
lea ecx, [esp + 0x20]
mov edi, eax
call fcn.0042dd80
imul edi, eax
mov eax, 0x51eb851f
imul edi
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [0x884634]
push ecx
lea edi, [ebx + edx - 0x40]
call fcn.00417c20
mov edi, dword [esp + 0x18]
call fcn.0040b6b0
mov eax, dword [0x884634]
lea ecx, [ebx + eax]
call fcn.0042dd80
lea ecx, [esp + 0x38]
mov edi, eax
call fcn.0042dd80
imul edi, eax
mov eax, 0x51eb851f
imul edi
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [0x884634]
push ecx
lea edi, [ebx + edx]
call fcn.00417c20
mov ecx, dword [0x884634]
lea eax, [esp + 0x10]
push eax
lea ecx, [ebx + ecx - 0x40]
mov dword [esp + 0x14], esi
call fcn.00408690
test al, al
je 0x41125e
mov edx, dword [0x884634]
lea edi, [ebx + edx - 0x40]
xor eax, eax
call fcn.00417b10
mov ecx, dword [0x884634]
lea eax, [esp + 0x10]
push eax
add ecx, ebx
mov dword [esp + 0x14], esi
call fcn.00408690
test al, al
je 0x411288
mov edx, dword [0x884634]
lea edi, [ebx + edx]
xor eax, eax
call fcn.00417b10
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.004cc430
mov edi, eax
call fcn.0040af50
mov byte [esp + 0x7f4], 0xc
mov ecx, dword [esp + 0x24]
push 1
push ecx
mov dword [esp + 0x28], esi
call fcn.004cc430
mov edi, eax
call fcn.0040af50
mov edx, dword [esp + 0x18]
inc edx
add ebx, 8
cmp ebx, 0x26dd8
mov dword [esp + 0x18], edx
jl 0x410dd0
mov edx, dword [0x884634]
mov ebx, dword [edx + 0x1a638]
call fcn.004cc430
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 0x41131a
mov edi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov dword [esp + 0x3c], 1
call edi
jmp 0x411340
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 [0x884634]
mov ecx, dword [eax + 0x1a644]
mov dword [esp + 0x10], ecx
call fcn.004cc430
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 0x41136f
mov esi, 1
jmp 0x411391
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 0x41147f
mov eax, dword [0x884634]
mov ecx, dword [eax + 0x2425c]
mov dword [esp + 0x10], ecx
call fcn.004cc430
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 0x4113c9
call edi
jmp 0x4113f2
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 0x41140b
mov ecx, dword [0x884634]
add ecx, 0x26ef8
call fcn.00417de0
cmp al, 1
jne 0x41147f
mov eax, dword [0x884634]
mov ebx, dword [eax + 0x26f0c]
call fcn.004cc430
mov esi, eax
lea eax, [esi + 0x34]
push eax
mov dword [esp + 0x24], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov al, byte [esi + 0x30]
test al, al
je 0x41143b
mov ecx, dword [esp + 0x20]
push ecx
call edi
jmp 0x41147f
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 + 0x20]
push edx
call edi
test bl, bl
jne 0x41147f
cmp dword [0x8849a0], 0xb
jne 0x41147a
mov ecx, dword [0x8845d4]
add ecx, 0x11c8
call fcn.00417de0
cmp al, 1
je 0x41147f
call fcn.00415770
mov byte [esp + 0x7f4], 0xb
mov eax, dword [esp + 0x30]
push 1
push eax
call fcn.004cc430
mov edi, eax
call fcn.0040af50
mov byte [esp + 0x7f4], 4
mov ecx, dword [esp + 0x60]
push 1
push ecx
call fcn.004cc430
mov edi, eax
call fcn.0040af50
mov eax, dword [0x884634]
mov ecx, dword [eax + 0x26ef4]
push 1
lea edx, [esp + 0x20]
push edx
push ecx
mov byte [esp + 0x28], 1
call fcn.004cc430
mov esi, eax
call fcn.0040ae50
jmp case.0x40eff6.4116
cmp eax, 0x4501
je 0x41156f
cmp eax, 0x5001
jne case.0x40eff6.4116
mov edx, dword [ebp + 0x10]
cmp word [edx], 0
jne case.0x40eff6.4116
mov eax, dword [0x8849a0]
mov ecx, dword [eax*4 + 0x8845a8]
mov esi, dword [ecx]
push 6
push 3
push 0x1004
push 0x8872dc
call fcn.00447150
mov edx, dword [0x8849a0]
mov ecx, dword [edx*4 + 0x8845a8]
push eax
call dword [esi + 0x2c]
push 0
push 0x5e2a10
push 0x5e1138
push 0
call fcn.004cc880
mov ebx, 0xc7
mov edi, eax
call fcn.00403280
push eax
call fcn.00551f74
add esp, 0x14
test eax, eax
je case.0x40eff6.4116
mov esi, eax
call fcn.00514060
jmp case.0x40eff6.4116
mov eax, dword [ebp + 0x10]
lea ecx, [eax + 1]
mov al, byte [eax]
push ecx
push 0x906fa8
call fcn.00452d10
jmp case.0x40eff6.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 0x411603
mov ecx, dword [ebp + 0x10]
mov cl, byte [esi + ecx]
cmp cl, 0xd
je 0x4115fb
cmp cl, 0xa
jne 0x4115f3
mov edx, dword [0x8849a0]
mov ecx, dword [edx*4 + 0x8845a8]
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 0x4115fb
mov byte [esp + edx + 0xe0], cl
inc edx
mov ecx, dword [ebp + 8]
inc esi
cmp esi, ecx
jl 0x4115b2
mov ecx, dword [0x8849a0]
mov ecx, dword [ecx*4 + 0x8845a8]
mov edx, dword [ecx]
push eax
push 2
lea eax, [esp + 0xe8]
push eax
call dword [edx + 0x2c]
jmp case.0x40eff6.4116
cmp eax, 0x6101
jg 0x411f12
je 0x411ee1
sub eax, 0x6001
je 0x4117f9
sub eax, 4
je 0x4116c6
sub eax, 0x2d
jne case.0x40eff6.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, 0x240f8
mov byte [esp + 0x74], dl
mov dword [esp + 0x78], eax
call fcn.00418830
mov edx, dword [0x884634]
mov byte [edx + 0x24108], 1
jmp case.0x40eff6.4116
push str.Get_Gift_message_in_root_n
call fcn.00451d70
add esp, 4
lea edi, [ebx + 0x19e9c]
mov al, 1
call fcn.00417d50
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.00550a87
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 [0x884634]
mov edx, dword [esi + 0x240ec]
xor ecx, ecx
test edx, edx
jle 0x4117cf
mov ebx, dword [esp + 0xe0]
xor edi, edi
lea ebx, [ebx]
cmp ecx, dword [esi + 0x240ec]
jae 0x4117ef
mov eax, dword [esi + 0x240e8]
add eax, edi
cmp dword [eax], ebx
je 0x4117e3
inc ecx
add edi, 0xa0
cmp ecx, edx
jl 0x4117b0
lea eax, [esp + 0xe0]
push eax
add esi, 0x240e8
push esi
call fcn.004187e0
mov byte [0x884997], 1
jmp case.0x40eff6.4116
push 0x80070057
call fcn.004010c0
mov eax, dword [ebp + 0x10]
mov cx, word [eax]
test cx, cx
je 0x41180e
cmp cx, 0x20
je case.0x40eff6.4116
lea esi, [eax + 2]
movzx eax, word [esi]
lea edi, [ebx + 0x4cee4]
call fcn.00417b10
mov ecx, eax
call fcn.0042dd80
add esi, 2
test eax, eax
jle 0x411e9d
mov dword [esp + 0x10], eax
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.00417b10
mov ecx, eax
call fcn.0042dd80
mov al, byte [esi + 4]
add esi, 4
mov dl, byte [esi + 1]
test al, al
setne byte [esp + 0x2b]
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 0x4118e0
mov ecx, dword [esi]
add esi, 4
cmp ecx, 0x151bc
lea edi, [esp + 0x54]
jle 0x4118c6
mov eax, 0x184178b9
imul ecx
sar edx, 0xd
mov eax, edx
shr eax, 0x1f
add eax, edx
call fcn.00417b10
lea eax, [esp + 0x88]
push eax
mov ecx, edi
push ecx
call fcn.00417b40
lea ecx, [esp + 0x88]
call fcn.00417aa0
mov bl, 3
jmp 0x4118e0
mov eax, 0x91a2b3c5
imul ecx
add edx, ecx
sar edx, 0xb
mov eax, edx
shr eax, 0x1f
add eax, edx
call fcn.00417b10
mov bl, 4
cmp byte [esi], 0
setne al
inc esi
test al, al
je 0x411903
mov eax, dword [esi]
lea edi, [esp + 0x80]
call fcn.00417b10
mov ecx, eax
call fcn.0042dd80
add esi, 4
cmp byte [esi], 0
setne al
inc esi
test al, al
je 0x411923
mov eax, dword [esi]
lea edi, [esp + 0x78]
call fcn.00417b10
mov ecx, eax
call fcn.0042dd80
add esi, 4
cmp byte [esi], 0
setne byte [esp + 0x1c]
inc esi
lea ecx, [esp + 0x4c]
mov dword [esp + 0x18], esi
call fcn.0042dd80
cmp eax, 0x31999
jle 0x411c1a
lea edx, [esp + 0x38]
push edx
lea ecx, [esp + 0x50]
mov dword [esp + 0x3c], 0x34000
call fcn.00408690
test al, al
je 0x411c1a
lea eax, [esp + 0xe0]
push eax
call fcn.004122c0
lea ecx, [esp + 0x2e0]
mov byte [esp + 0x7f4], 5
call fcn.00412690
lea ecx, [esp + 0x4c]
mov byte [esp + 0x7f4], 6
call fcn.0042dd80
mov ecx, dword [0x884634]
push eax
push ecx
mov al, 1
lea edi, [esp + 0x2e8]
call fcn.004292f0
mov eax, dword [esp + 0x2c]
lea edi, [esp + 0xec]
call fcn.00417b10
lea ecx, [esp + 0x4c]
lea edi, [esp + 0xf4]
call fcn.00417ac0
mov dl, byte [esp + 0x36]
lea ecx, [esp + 0x80]
lea edi, [esp + 0x114]
mov byte [esp + 0x110], dl
call fcn.00417ac0
lea ecx, [esp + 0x78]
lea edi, [esp + 0x124]
call fcn.00417ac0
mov al, byte [esp + 0x2b]
lea edi, [esp + 0x108]
call fcn.00417d50
lea ecx, [esp + 0x54]
lea edi, [esp + 0x13c]
mov byte [esp + 0x144], bl
call fcn.00417ac0
mov al, byte [esp + 0x37]
lea edi, [esp + 0x134]
call fcn.00417d50
mov al, byte [esp + 0x1c]
lea edi, [esp + 0x12c]
call fcn.00417d50
mov ecx, dword [0x884634]
mov al, byte [esp + 0x2e9]
add ecx, 0x24144
push ecx
lea ebx, [esp + 0xe4]
mov byte [esp + 0x100], al
call fcn.00418900
mov edx, dword [0x884634]
add edx, 0x24164
push edx
call fcn.00418900
mov al, byte [esp + 0x2b]
test al, al
je 0x411be8
lea ecx, [esp + 0x4c]
call fcn.0042dd80
cmp eax, 0x32001
je 0x411be8
mov eax, dword [0x884634]
mov ecx, dword [eax + 0x77a1c]
test ecx, ecx
mov cl, byte [esp + 0x2e9]
je 0x411b76
movzx edx, cl
cmp dword [eax + edx*4 + 0x77a08], 0xffffffff
je 0x411b76
mov esi, dword [0x8849c0]
push 0x600e
call fcn.00448230
mov eax, dword [0x8849c0]
mov ecx, dword [eax + 0x4098]
mov esi, dword [0x884634]
mov word [ecx + eax + 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 + 0x77a08]
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.004483c0
lea ecx, [esp + 0x2e0]
mov byte [esp + 0x7f4], 5
call fcn.00412c00
lea eax, [esp + 0xe0]
push eax
mov byte [esp + 0x7f8], bl
call fcn.00412530
mov esi, dword [esp + 0x18]
jmp 0x411e93
movzx ecx, cl
lea edi, [eax + ecx*8 + 0x1a60c]
lea ecx, [esp + 0x4c]
call fcn.00417ac0
movzx edx, byte [esp + 0x2e9]
mov eax, dword [0x884634]
mov ecx, dword [esp + 0x2c]
mov dword [eax + edx*4 + 0x77a08], ecx
movzx edx, byte [esp + 0x2e9]
lea edi, [eax + edx*8 + 0x4cf0c]
mov eax, dword [esp + 0x20]
call fcn.00417b10
movzx eax, byte [esp + 0x2e9]
dec eax
je 0x411bd8
dec eax
jne 0x411be8
mov eax, dword [0x884634]
mov dword [eax + 0x777b4], 1
jmp 0x411be8
mov ecx, dword [0x884634]
mov dword [ecx + 0x777b0], 1
inc dword [esp + 0x20]
lea ecx, [esp + 0x2e0]
mov byte [esp + 0x7f4], 5
call fcn.00412c00
lea edx, [esp + 0xe0]
push edx
mov byte [esp + 0x7f8], 4
call fcn.00412530
jmp 0x411e67
lea eax, [esp + 0x98]
push eax
call fcn.00412f40
mov byte [esp + 0x7f4], 7
mov eax, dword [esp + 0x2c]
lea edi, [esp + 0xa0]
call fcn.00417b10
lea ecx, [esp + 0x4c]
lea edi, [esp + 0xa8]
call fcn.00417ac0
mov cl, byte [esp + 0x36]
mov al, byte [esp + 0x2b]
lea edi, [esp + 0xb0]
mov dword [esp + 0x9c], 0
mov byte [esp + 0x98], cl
call fcn.00417d50
lea ecx, [esp + 0x78]
lea edi, [esp + 0xb8]
call fcn.00417ac0
lea ecx, [esp + 0x54]
lea edi, [esp + 0xd0]
mov byte [esp + 0xd8], bl
call fcn.00417ac0
mov al, byte [esp + 0x37]
lea edi, [esp + 0xc8]
call fcn.00417d50
mov al, byte [esp + 0x1c]
lea edi, [esp + 0xc0]
call fcn.00417d50
mov edx, dword [0x884634]
add edx, 0x24114
push edx
lea ebx, [esp + 0x9c]
call fcn.00418880
mov eax, dword [0x884634]
add eax, 0x24154
push eax
call fcn.00418880
mov ecx, dword [0x884634]
add ecx, 0x24124
push ecx
call fcn.00418880
mov al, byte [esp + 0x2b]
test al, al
je 0x411e52
lea ecx, [esp + 0x4c]
call fcn.0042dd80
cmp eax, 0x32001
je 0x411e52
lea ecx, [esp + 0x4c]
call fcn.0042dd80
mov ebx, eax
sar ebx, 0x10
lea ecx, [esp + 0x4c]
and bl, 0xf
call fcn.0042dd80
mov ecx, dword [0x884634]
mov edi, eax
mov eax, dword [ecx + 0x77a1c]
and edi, 0x7fff
test eax, eax
je 0x411dfc
movzx eax, bl
lea eax, [eax*4 + 0x779f8]
cmp dword [eax + ecx], 0xffffffff
mov dword [esp + 0x38], eax
je 0x411dfc
mov esi, dword [0x8849c0]
push 0x600e
call fcn.00448230
mov eax, dword [0x8849c0]
mov edx, dword [eax + 0x4098]
mov esi, dword [esp + 0x38]
mov word [edx + eax + 0x98], 1
mov ebx, dword [eax + 0x4098]
mov edx, dword [0x884634]
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.004483c0
lea eax, [esp + 0x98]
push eax
mov byte [esp + 0x7f8], bl
call fcn.004130e0
mov esi, dword [esp + 0x18]
jmp 0x411e93
cmp bl, 3
jne 0x411e11
movzx eax, di
or eax, 0x8000
lea edi, [ecx + 0x1a604]
jmp 0x411e3a
add ecx, 0x1a62c
call fcn.00417de0
neg al
movzx ecx, di
movzx edx, bl
sbb eax, eax
and eax, 0x8000
or eax, ecx
mov ecx, dword [0x884634]
lea edi, [ecx + edx*8 + 0x1a5ec]
call fcn.00417b10
mov eax, dword [0x884634]
mov ecx, dword [esp + 0x2c]
movzx edx, bl
mov dword [eax + edx*4 + 0x779f8], ecx
lea edx, [esp + 0x98]
push edx
mov byte [esp + 0x7f8], 4
call fcn.004130e0
lea ecx, [esp + 0x4c]
call fcn.0042dd80
sub eax, 0x32001
je 0x411e80
sub eax, 0x76
jne 0x411e93
push 2
jmp 0x411e82
push 1
mov edi, dword [0x884634]
add edi, 0x7767c
call fcn.00417e10
dec dword [esp + 0x10]
jne 0x411835
mov eax, dword [0x884634]
push eax
xor ecx, ecx
call fcn.0042ce20
mov eax, dword [0x884634]
mov esi, dword [0x8849c0]
push 0x6100
mov byte [eax + 0x24109], 1
mov dword [eax + 0x77a1c], 0
call fcn.00448230
mov ecx, dword [0x8849c0]
push ecx
call fcn.004483c0
jmp case.0x40eff6.4116
mov edx, dword [ebp + 0x10]
mov eax, dword [edx + 2]
lea edi, [ebx + 0x1a574]
call fcn.00417b10
mov esi, dword [0x8849c0]
push 0x6104
call fcn.00448230
mov eax, dword [0x8849c0]
push eax
call fcn.004483c0
jmp case.0x40eff6.4116
cmp eax, 0x6105
je 0x411f4e
cmp eax, 0x9003
jne case.0x40eff6.4116
mov esi, dword [ebp + 0x10]
cmp word [esi], 0
jne case.0x40eff6.4116
lea ecx, [ebx + 0x1a634]
call fcn.0042dd80
mov ecx, dword [esi + 2]
mov edx, dword [0x884634]
mov dword [edx + eax*4 + 0x77d4c], ecx
jmp case.0x40eff6.4116
push 0x5829ec
call fcn.00451d70
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 2]
add esp, 4
lea edi, [ebx + 0x1a56c]
call fcn.00417b10
mov ecx, dword [0x884634]
mov eax, dword [ecx + 0x18854]
test eax, eax
je case.0x40eff6.4116
push 4
call fcn.00413c50
mov edx, dword [0x884634]
mov dword [edx + 0x18854], 0
add esp, 4
mov eax, dword [0x8849a0]
mov ecx, dword [eax*4 + 0x8845a8]
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.004cc430
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 + 0x20], ecx
jge 0x412022
add ebx, 0x10
mov dword [esp + 0x10], ebx
jmp 0x412000
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x88]
push ecx
lea ebx, [esp + 0x3c]
mov dword [esp + 0x3c], esi
call fcn.00417900
mov eax, dword [esp + 0x20]
inc esi
cmp esi, eax
jl 0x412000
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.004cc430
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 + 0x20], ecx
jge 0x412095
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.00417900
mov eax, dword [esp + 0x20]
inc esi
cmp esi, eax
jl 0x412073
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.004cc430
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 + 0x20], ecx
jge 0x412112
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.00417900
mov eax, dword [esp + 0x20]
inc esi
cmp esi, eax
jl 0x4120f0
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov byte [esp + 0x7f4], 0
call fcn.004cc430
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 + 0x20], ecx
jge 0x412182
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.00417900
mov eax, dword [esp + 0x20]
inc esi
cmp esi, eax
jl 0x412160
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.004cc430
mov ebx, eax
lea eax, [ebx + 0x34]
push eax
mov dword [esp + 0x24], 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 0x4121fe
add ebx, 0x10
mov dword [esp + 0x10], ebx
jmp 0x4121e0
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x88]
push edx
lea ebx, [esp + 0x3c]
mov dword [esp + 0x3c], esi
call fcn.00417900
inc esi
cmp esi, edi
jl 0x4121e0
mov eax, dword [esp + 0x20]
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