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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x578d76
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x7c8
push ebx
push esi
push edi
mov edi, vtable.Xenesis2::Foundation::Memory::xEncryptData_int_.0
push 1
mov dword [esp + 0x54], edi
call fcn.004cee70
mov ecx, eax
call fcn.0040ae50
push 1
lea ecx, [esp + 0x18]
push ecx
xor ebx, ebx
push eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x20], ebx
call fcn.004cee70
mov esi, eax
call fcn.0040adb0
mov dword [esp + 0x7dc], ebx
push 1
mov dword [esp + 0xc4], edi
call fcn.004cee70
mov ecx, eax
call fcn.0040ae50
push 1
lea edx, [esp + 0x18]
push edx
push eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0x20], ebx
call fcn.004cee70
mov esi, eax
call fcn.0040adb0
mov byte [esp + 0x7dc], 1
push 1
mov dword [esp + 0x74], edi
call fcn.004cee70
mov ecx, eax
call fcn.0040ae50
push 1
lea ecx, [esp + 0x18]
push ecx
push eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x20], ebx
call fcn.004cee70
mov esi, eax
call fcn.0040adb0
mov byte [esp + 0x7dc], 2
push 1
mov dword [esp + 0x64], edi
call fcn.004cee70
mov ecx, eax
call fcn.0040ae50
push 1
lea edx, [esp + 0x18]
push edx
push eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x20], ebx
call fcn.004cee70
mov esi, eax
call fcn.0040adb0
mov byte [esp + 0x7dc], 3
push 1
mov dword [esp + 0x5c], edi
call fcn.004cee70
mov ecx, eax
call fcn.0040ae50
push 1
lea ecx, [esp + 0x18]
push ecx
push eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x20], ebx
call fcn.004cee70
mov esi, eax
call fcn.0040adb0
mov byte [esp + 0x7dc], 4
mov edx, dword [0x8927a4]
mov eax, dword [edx + 0x8028c]
cmp eax, ebx
mov dword [esp + 0x28], ebx
je 0x40fa54
push eax
push 1
lea edx, [esp + 0x24]
push 1
push edx
mov byte [esp + 0x2c], bl
call fcn.005606f9
mov eax, dword [0x8927a4]
mov ecx, dword [eax + 0x8028c]
mov edx, dword [0x8926c4]
push ecx
push 4
add edx, 4
push 1
push edx
call fcn.005606f9
mov eax, dword [0x8927a4]
mov ecx, dword [eax + 0x8028c]
push ecx
push 4
lea edx, [ebp + 8]
push 1
push edx
call fcn.005606f9
mov eax, dword [0x8927a4]
mov ecx, dword [eax + 0x8028c]
push ecx
push 2
lea edx, [ebp + 0xc]
push 1
push edx
call fcn.005606f9
mov eax, dword [0x8927a4]
mov ecx, dword [eax + 0x8028c]
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 0x10]
add esp, 0x40
push ecx
push edx
push 1
push eax
call fcn.005606f9
mov edx, dword [0x8927a4]
add esp, 0x10
xor eax, eax
mov ecx, 0x41
lea edi, [esp + 0x6c8]
rep stosd dword es:[edi], eax
movzx eax, word [ebp + 0xc]
cmp eax, 0x3010
jg 0x4110e0
je 0x410c91
cmp eax, 0x1060
jg 0x410456
je 0x4103be
sub eax, 0x1013
cmp eax, 0x3d
ja case.0x40fa9f.4116
movzx ecx, byte [eax + 0x412cec]
jmp dword [ecx*4 + 0x412ccc]
mov ebx, dword [ebp + 0x10]
mov ax, word [ebx]
add ebx, 2
test ax, ax
mov word [edx + 0x1a940], ax
mov dword [esp + 0xc], 0
jbe 0x40fb2a
mov esi, 0x1a6c0
jmp 0x40fad0
mov eax, dword [ebx]
lea edi, [esi + edx - 0xa0]
call fcn.00417b40
mov ecx, dword [0x8927a4]
mov eax, dword [ebx + 4]
add ebx, 4
lea edi, [esi + ecx]
call fcn.00417b40
mov edx, dword [0x8927a4]
mov eax, dword [ebx + 4]
add ebx, 4
lea edi, [esi + edx + 0xa0]
call fcn.00417b40
mov edx, dword [0x8927a4]
mov eax, dword [esp + 0xc]
movzx ecx, word [edx + 0x1a940]
add ebx, 4
inc eax
add esi, 8
cmp eax, ecx
mov dword [esp + 0xc], eax
jl 0x40fad0
mov ax, word [ebx]
add ebx, 2
test ax, ax
mov word [edx + 0x1a942], ax
mov dword [esp + 0xc], 0
jbe case.0x40fa9f.4116
mov dword [esp + 0x4c], 0x1a300
mov edi, dword [ebx]
cmp edi, 0x13
jle 0x40fb5c
mov edi, 0x13
mov eax, dword [esp + 0x4c]
push 1
lea ecx, [esp + 0x18]
push ecx
mov ecx, dword [eax + edx + 4]
push ecx
mov dword [esp + 0x20], edi
call fcn.004cee70
mov esi, eax
call fcn.0040adb0
mov eax, dword [ebx + 4]
add ebx, 4
mov dword [esp + 0x14], eax
mov eax, dword [0x8927a4]
mov ecx, dword [eax + edi*8 + 0x1a3a4]
push 1
lea edx, [esp + 0x18]
push edx
push ecx
call fcn.004cee70
mov esi, eax
call fcn.0040adb0
mov eax, dword [ebx + 4]
add ebx, 4
mov dword [esp + 0x14], eax
mov eax, dword [0x8927a4]
mov ecx, dword [eax + edi*8 + 0x1a444]
push 1
lea edx, [esp + 0x18]
push edx
push ecx
call fcn.004cee70
mov esi, eax
call fcn.0040adb0
mov edx, dword [0x8927a4]
mov eax, dword [esp + 0xc]
mov edi, dword [esp + 0x4c]
movzx ecx, word [edx + 0x1a942]
add ebx, 4
inc eax
add edi, 8
cmp eax, ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x4c], edi
jl 0x40fb50
jmp case.0x40fa9f.4116
mov edx, dword [ebp + 0x10]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esp + 0x30], eax
mov eax, dword [edx + 8]
mov dword [esp + 0x34], ecx
mov ecx, dword [edx + 0xc]
lea edx, [esp + 0x30]
push edx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], ecx
call fcn.00546bb0
add esp, 4
jmp case.0x40fa9f.4116
mov ecx, dword [ebp + 0x10]
mov ax, word [ecx]
cmp ax, bx
je 0x40fd4d
movzx eax, ax
test eax, eax
lea ebx, [ecx + 2]
jle 0x40fe0f
mov dword [esp + 0x28], eax
jmp 0x40fc60
mov edx, dword [0x8927a4]
lea ebx, [ebx]
mov eax, ebx
mov ecx, dword [eax]
mov dword [esp + 0x78], ecx
mov ecx, dword [eax + 4]
mov dword [esp + 0x7c], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x80], ecx
add ebx, 0x10
mov dword [esp + 0x84], eax
mov ecx, ebx
mov eax, dword [ecx]
mov dword [esp + 0x30], eax
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x34], eax
lea esi, [esp + 0x78]
lea edi, [esp + 0x30]
mov eax, edx
mov byte [esp + 0x89], 0
mov dword [esp + 0x38], ecx
mov byte [esp + 0x3d], 0
add ebx, 0xc
call fcn.00430c20
mov eax, dword [0x8927a4]
mov edx, edi
push edx
add eax, 0x802c8
push eax
call fcn.005654a6
add esp, 8
test eax, eax
jne 0x40fcfa
mov eax, dword [0x892d3c]
mov ecx, esi
push ecx
mov edx, 0x10
call fcn.00451060
push eax
call fcn.004510a0
mov edx, dword [0x8927a4]
mov byte [edx + 0x802c8], 0
mov ecx, dword [0x8927a4]
lea eax, [esp + 0x30]
push eax
add ecx, 0x804c0
push ecx
call fcn.005654a6
add esp, 8
test eax, eax
jne 0x40fd3e
mov eax, dword [0x892d3c]
lea edx, [esp + 0x78]
push edx
mov edx, 0x10
call fcn.00451060
push eax
call fcn.004510a0
mov eax, dword [0x8927a4]
mov byte [eax + 0x804c0], 0
dec dword [esp + 0x28]
jne 0x40fc54
jmp 0x40fe0f
mov eax, dword [ebp + 0x10]
movzx eax, word [eax + 0xe]
mov ecx, dword [0x892d1c]
mov ecx, dword [ecx*4 + 0x892698]
mov edx, dword [ecx]
push eax
mov eax, dword [0x892d3c]
movzx eax, word [eax + 0x40a0]
push eax
call dword [edx + 0x10]
mov esi, dword [0x8927a4]
add esi, 0x808c4
push 0x36
xor cl, cl
call fcn.00414670
mov eax, dword [0x892d1c]
add esp, 4
cmp eax, 4
jne 0x40fe0f
push 0
push 0x5f0a28
push 0x5ef1b8
push 0
call fcn.004cf280
mov ebx, 0x29
mov edi, eax
call fcn.004032b0
push eax
call fcn.0055ffd5
add esp, 0x14
test eax, eax
je 0x40fdde
mov dl, 1
push 0
mov cl, dl
lea esi, [esp + 0x34]
call fcn.0044d780
push eax
call fcn.004cf280
mov ecx, eax
call fcn.0044d930
push 0
push 0x5f0b44
push 0x5ef1b8
push 0
call fcn.004cf280
mov ebx, 0x2d
mov edi, eax
call fcn.004032b0
push eax
call fcn.0055ffd5
add esp, 0x14
test eax, eax
je 0x40fe0f
call fcn.005101d0
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x10]
push ecx
push 0x8993b8
call fcn.00404e20
jmp case.0x40fa9f.4116
mov eax, dword [ebp + 0x10]
mov ebx, dword [eax]
add eax, 4
mov dword [esp + 0xc], eax
cmp dword [0x892d1c], 0xb
mov dword [esp + 0x28], ebx
jne 0x40fe4f
test ebx, ebx
jg case.0x40fa9f.4116
cmp ebx, 0xfffffffd
je case.0x40fa9f.4116
xor eax, eax
mov byte [esp + 0x2c8], 0
mov ecx, 0xff
lea edi, [esp + 0x2c9]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push 0x1770
push 0x897640
stosb byte es:[edi], al
call fcn.0044dea0
mov edx, eax
jmp 0x40fe80
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40fe80
lea edi, [esp + 0x2c8]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40fe91
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.0x40feb5
jmp dword [eax*4 + 0x412d2c]
push 0x1772
push 0x897640
call fcn.0044dea0
mov edx, eax
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40fed0
lea edi, [esp + 0x2c8]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40fee1
jmp 0x40ffd9
push 0x1773
push 0x897640
call fcn.0044dea0
mov edx, eax
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40ff00
lea edi, [esp + 0x2c8]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40ff11
jmp 0x40ffd9
push 0x1774
push 0x897640
call fcn.0044dea0
mov edx, eax
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40ff30
lea edi, [esp + 0x2c8]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40ff41
jmp 0x40ffd9
push 0x1775
push 0x897640
call fcn.0044dea0
mov edx, eax
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40ff60
lea edi, [esp + 0x2c8]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40ff71
jmp 0x40ffd9
push 0x1776
push 0x897640
call fcn.0044dea0
mov edx, eax
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40ff90
lea edi, [esp + 0x2c8]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40ffa1
jmp 0x40ffd9
push 0x1771
push 0x897640
call fcn.0044dea0
mov edx, eax
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40ffc0
lea edi, [esp + 0x2c8]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40ffd1
mov ebx, dword [esp + 0xc]
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 0x41010e
push 0x1777
push 0x897640
call fcn.0044dea0
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x410008
lea edi, [esp + 0x2c8]
sub eax, edx
dec edi
lea esp, [esp]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x410020
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 0x41007e
cmp byte [ebx + 1], 0x48
jne 0x41007e
push 0x177a
push 0x897640
call fcn.0044dea0
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x410055
lea edi, [esp + 0x2c8]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x410066
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 0x41010e
cmp byte [ebx + 1], 0x4d
jne 0x4100c9
push 0x1778
push 0x897640
call fcn.0044dea0
mov edx, eax
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4100a0
lea edi, [esp + 0x2c8]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4100b1
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 0x41010e
cmp byte [ebx + 1], 0x44
jne 0x41010e
push 0x1779
push 0x897640
call fcn.0044dea0
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4100e5
lea edi, [esp + 0x2c8]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4100f6
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 + 0xc], ebx
je 0x410266
push 0x177b
push 0x897640
call fcn.0044dea0
mov esi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x410131
lea edi, [esp + 0x2c8]
sub eax, esi
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x410142
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ebx, dword [esp + 0xc]
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 + 0xc9]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [esp + 0xc8]
push eax
mov dword [esp + 0xcc], edx
call fcn.005602b2
mov cx, word [ebx + 4]
lea edx, [esp + 0xcc]
push edx
mov esi, eax
mov byte [esp + 0xd2], 0
mov word [esp + 0xd0], cx
call fcn.005602b2
mov edi, eax
mov ax, word [ebx + 6]
lea ecx, [esp + 0xd0]
push ecx
mov word [esp + 0xd4], ax
call fcn.005602b2
mov edx, dword [esp + 0x18]
mov ebx, eax
mov ax, word [edx + 8]
lea ecx, [esp + 0xd4]
push ecx
mov word [esp + 0xd8], ax
call fcn.005602b2
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x24], eax
mov ax, word [edx + 0xa]
lea ecx, [esp + 0xd8]
push ecx
mov word [esp + 0xdc], ax
call fcn.005602b2
mov edx, dword [esp + 0x28]
add esp, 0x14
push eax
push edx
push ebx
push edi
push esi
push 0x177c
push 0x897640
call fcn.0044dea0
push eax
lea eax, [esp + 0xe0]
push eax
call fcn.0055e68c
lea eax, [esp + 0xe4]
add esp, 0x1c
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x410238
lea edi, [esp + 0x2c8]
sub eax, ecx
mov esi, ecx
dec edi
jmp 0x410250
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x410250
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 + 0xc]
mov ebx, dword [ecx + 0xc]
test ebx, ebx
je 0x410329
push 0x177e
push 0x897640
call fcn.0044dea0
mov esi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x410286
lea edi, [esp + 0x2c8]
sub eax, esi
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x410297
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 0x897640
call fcn.0044dea0
push eax
lea edx, [esp + 0xd8]
push edx
call fcn.0055e68c
lea eax, [esp + 0xdc]
add esp, 0x14
mov ecx, eax
lea ecx, [ecx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x410300
lea edi, [esp + 0x2c8]
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x410313
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 + 0x28]
test eax, eax
jg 0x41034d
cmp eax, 0xfffffffd
je 0x41034d
mov al, 1
lea esi, [esp + 0x2c8]
push eax
call fcn.00414740
add esp, 4
jmp case.0x40fa9f.4116
xor al, al
lea esi, [esp + 0x2c8]
push eax
call fcn.00414740
add esp, 4
jmp case.0x40fa9f.4116
mov eax, dword [ebp + 0x10]
mov esi, dword [eax]
cmp esi, ebx
lea edi, [edx + 0x80568]
je 0x410394
mov al, 1
call fcn.00417d80
mov edi, dword [0x8927a4]
mov eax, esi
imul eax, dword [0x5ef29c]
add edi, 0x80570
jmp 0x4129fd
xor al, al
call fcn.00417d80
mov edi, dword [0x8927a4]
add edi, 0x80570
xor eax, eax
jmp 0x4129fd
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx]
lea edi, [edx + 0x1a96c]
jmp 0x4129fd
lea edi, [edx + 0x24414]
mov edx, dword [ebp + 0x10]
mov eax, dword [edx]
call fcn.00417b40
mov ecx, dword [0x8927a4]
add ecx, 0x24414
call fcn.004086e0
cmp eax, 1
jne 0x4103f5
push 0x46
xor cl, cl
call fcn.00414510
add esp, 4
jmp case.0x40fa9f.4116
mov ecx, dword [0x8927a4]
add ecx, 0x24414
call fcn.004086e0
cmp eax, 3
jne 0x41041c
push 0x52
xor cl, cl
call fcn.00414510
add esp, 4
jmp case.0x40fa9f.4116
mov ecx, dword [0x8927a4]
add ecx, 0x24414
call fcn.004086e0
cmp eax, 2
jne case.0x40fa9f.4116
push 1
push 0x11f
push 0x897640
call fcn.0044dea0
mov esi, eax
call fcn.00414740
add esp, 4
jmp case.0x40fa9f.4116
cmp eax, 0x1ffa
jg 0x41087a
je 0x410842
sub eax, 0x1079
je 0x410825
sub eax, 0x18
je 0x410493
sub eax, 0xf67
jne case.0x40fa9f.4116
push 0x45
mov cl, 1
call fcn.00414510
add esp, 4
jmp case.0x40fa9f.4116
mov esi, dword [ebp + 0x10]
cmp byte [esi], 0
jne 0x410806
mov eax, dword [0x892d1c]
cmp eax, 9
je 0x4107a4
cmp eax, 0xd
jne 0x41051e
mov esi, dword [0x892d3c]
push 0x3200
call fcn.00450180
mov eax, dword [0x892d3c]
mov esi, dword [eax + 0x4098]
mov ecx, dword [0x8927a4]
mov dl, byte [ecx + 0x247b4]
mov byte [esi + eax + 0x98], dl
mov edi, dword [eax + 0x4098]
inc edi
mov dword [eax + 0x4098], edi
mov cl, byte [ecx + 0x247b5]
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.00450320
push 3
call fcn.00414140
add esp, 4
jmp case.0x40fa9f.4116
mov al, byte [esi + 2]
add esi, 2
cmp al, 0xfe
je 0x41052c
cmp al, 0x10
jbe 0x410575
cmp al, 0xff
je 0x410575
mov word [edx + 0x247b4], 0xffff
xor esi, esi
jmp 0x410550
mov edx, dword [0x8927a4]
jmp 0x410550
lea edi, [esi + edx + 0x1a984]
xor eax, eax
call fcn.00417b40
add esi, 8
cmp esi, 0x30
jl 0x41053d
push 0xd
call fcn.00414140
add esp, 4
jmp case.0x40fa9f.4116
inc esi
mov byte [edx + 0x247b4], al
mov al, byte [esi]
cmp al, 0xfe
je 0x410586
cmp al, 0x10
jbe 0x4105c5
cmp al, 0xff
je 0x4105c5
mov word [edx + 0x247b4], 0xffff
xor esi, esi
jmp 0x4105a0
mov edx, dword [0x8927a4]
lea ecx, [ecx]
lea edi, [esi + edx + 0x1a984]
xor eax, eax
call fcn.00417b40
add esi, 8
cmp esi, 0x30
jl 0x410597
push 0xd
call fcn.00414140
add esp, 4
jmp case.0x40fa9f.4116
mov byte [edx + 0x247b5], al
mov al, 7
inc esi
mov byte [esp + 0x30], 1
mov byte [esp + 0x31], 2
mov byte [esp + 0x32], 6
mov byte [esp + 0x33], al
mov byte [esp + 0x34], 0xa
mov byte [esp + 0x35], 0xb
mov byte [esp + 0x14], 0
mov byte [esp + 0x15], 1
mov byte [esp + 0x16], 2
mov byte [esp + 0x17], 3
mov byte [esp + 0x18], al
mov byte [esp + 0x19], 0xf
mov dword [esp + 0xc], 0
mov ebx, 0x1a984
jmp 0x410620
mov edx, dword [0x8927a4]
lea ecx, [ecx]
mov ecx, dword [esp + 0xc]
movzx eax, byte [esi]
lea edi, [edx + ecx*8 + 0x1a984]
call fcn.00417b40
mov edx, dword [0x8927a4]
mov eax, dword [esp + 0xc]
lea ecx, [edx + eax*8 + 0x1a984]
inc esi
call fcn.004086e0
cmp eax, 0xff
jne 0x41069e
mov ecx, dword [esp + 0xc]
mov edx, dword [0x8927a4]
movzx eax, byte [esi]
inc ecx
lea edi, [edx + ecx*8 + 0x1a984]
mov dword [esp + 0xc], ecx
add ebx, 8
call fcn.00417b40
inc esi
xor edi, edi
jmp 0x410680
mov eax, dword [0x8927a4]
lea ecx, [ebx + eax]
call fcn.004086e0
movzx ecx, byte [esp + edi + 0x30]
cmp eax, ecx
je 0x4106bd
inc edi
cmp edi, 6
jl 0x410680
jmp 0x4106bd
xor edi, edi
mov edx, dword [0x8927a4]
lea ecx, [ebx + edx]
call fcn.004086e0
movzx ecx, byte [esp + edi + 0x14]
cmp eax, ecx
je 0x4106bd
inc edi
cmp edi, 6
jl 0x4106a0
cmp edi, 6
je 0x4106da
mov edx, dword [esp + 0xc]
inc edx
add ebx, 8
cmp ebx, 0x1a9b4
mov dword [esp + 0xc], edx
jl 0x410617
cmp dword [esp + 0xc], 6
je 0x41075f
push 0xd
call fcn.00414140
add esp, 4
lea ecx, [esp + 0x58]
mov byte [esp + 0x7dc], 3
call fcn.00417ad0
lea ecx, [esp + 0x60]
mov byte [esp + 0x7dc], 2
call fcn.00417ad0
lea ecx, [esp + 0x70]
mov byte [esp + 0x7dc], 1
call fcn.00417ad0
lea ecx, [esp + 0xc0]
mov byte [esp + 0x7dc], 0
call fcn.00417ad0
lea ecx, [esp + 0x50]
mov dword [esp + 0x7dc], 0xffffffff
call fcn.00417ad0
mov ecx, dword [esp + 0x7d4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor esi, esi
mov eax, dword [0x8927a4]
lea ecx, [esi + eax + 0x1a984]
lea edi, [esi + eax + 0x1a9b4]
call fcn.00417af0
add esi, 8
cmp esi, 0x30
jl 0x410761
mov eax, dword [0x892d1c]
cmp eax, 2
je 0x410790
cmp eax, 0xd
jne 0x4107a4
push 3
mov dword [0x5ef2b8], 0xffffffff
call fcn.00414140
add esp, 4
mov esi, dword [0x892d3c]
push 0x3200
call fcn.00450180
mov eax, dword [0x892d3c]
mov esi, dword [eax + 0x4098]
mov ecx, dword [0x8927a4]
mov dl, byte [ecx + 0x247b4]
mov byte [esi + eax + 0x98], dl
mov esi, dword [eax + 0x4098]
inc esi
mov dword [eax + 0x4098], esi
mov cl, byte [ecx + 0x247b5]
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.00450320
jmp case.0x40fa9f.4116
push ebx
push 0xc3502
push 0x897640
call fcn.0044dea0
mov esi, eax
call fcn.00414740
add esp, 4
jmp case.0x40fa9f.4116
mov edx, dword [ebp + 0x10]
cmp word [edx], bx
jne case.0x40fa9f.4116
push 0x47
xor cl, cl
call fcn.00414510
add esp, 4
jmp case.0x40fa9f.4116
mov ecx, dword [ebp + 0x10]
mov eax, 0x88888889
mul dword [ecx]
shr edx, 5
push edx
lea edx, [esp + 0x6cc]
push str._:__dMinute
push edx
call fcn.0055e68c
push 0x5b
lea esi, [esp + 0x6d8]
xor cl, cl
call fcn.00414670
add esp, 0x10
jmp case.0x40fa9f.4116
sub eax, 0x2001
je 0x410a23
sub eax, 0xd
je 0x4108d8
dec eax
jne case.0x40fa9f.4116
mov eax, dword [0x892d1c]
cmp eax, 3
jne 0x4108a9
cmp dword [0x892684], 3
je 0x4108bf
jmp case.0x40fa9f.4116
cmp eax, 4
jne case.0x40fa9f.4116
cmp dword [0x892684], 4
jne case.0x40fa9f.4116
mov eax, dword [ebp + 0x10]
movzx ecx, byte [eax]
mov byte [ecx + edx + 0x202cd], 0
dec byte [edx + 0x202cc]
jmp case.0x40fa9f.4116
mov eax, dword [0x892d1c]
cmp eax, 3
jne 0x4108f0
cmp dword [0x892684], 3
je 0x410906
jmp case.0x40fa9f.4116
cmp eax, 7
jne case.0x40fa9f.4116
cmp dword [0x892684], 4
jne case.0x40fa9f.4116
mov eax, dword [ebp + 0x10]
mov cl, byte [eax]
movzx edi, cl
mov ecx, edi
imul ecx, ecx, 0xd
mov byte [edi + edx + 0x202cd], 1
add ecx, edx
inc eax
mov dword [esp + 0x14], ecx
add ecx, 0x203cd
mov esi, eax
mov ebx, dword [esi]
mov dword [ecx], ebx
mov ebx, dword [esi + 4]
mov dword [ecx + 4], ebx
mov esi, dword [esi + 8]
mov dword [ecx + 8], esi
mov ecx, dword [esp + 0x14]
mov byte [ecx + 0x203da], 0
mov bl, byte [eax + 0xc]
add eax, 0xc
xor ecx, ecx
test bl, bl
sete cl
inc eax
add eax, 8
mov dword [edx + edi*4 + 0x220d0], ecx
mov esi, dword [eax - 8]
lea ecx, [edx + edi*8]
add ecx, edi
mov dword [ecx + 0x228d0], esi
mov esi, dword [eax - 4]
mov dword [ecx + 0x228d4], esi
mov bl, byte [ecx + 0x228d7]
test bl, bl
jns 0x41098f
mov bl, byte [ecx + 0x228d6]
test bl, bl
js 0x41098f
mov byte [ecx + 0x228d7], 0
mov byte [ecx + 0x228d8], 0
mov cx, word [eax]
add cx, 5
mov word [edx + edi*2 + 0x231d0], cx
mov cx, word [eax + 2]
add eax, 2
add cx, 5
mov word [edx + edi*2 + 0x233d0], cx
mov cx, word [eax + 2]
add eax, 2
add cx, 5
mov word [edx + edi*2 + 0x239d0], cx
add eax, 2
mov ax, word [eax]
push 0
mov word [edx + edi*2 + 0x23bd0], ax
mov bl, byte [edx + 0x202cc]
push 0x5f0ac4
push 0x5ef1b8
inc bl
push 0
mov byte [edx + 0x202cc], bl
call fcn.004cf280
mov ebx, 0x24
mov edi, eax
call fcn.004032b0
push eax
call fcn.0055ffd5
add esp, 0x14
test eax, eax
je case.0x40fa9f.4116
mov ecx, eax
call fcn.0050a6c0
jmp case.0x40fa9f.4116
mov ecx, dword [ebp + 0x10]
cmp word [ecx], bx
jne case.0x40fa9f.4116
mov dword [edx + 0x244d0], 0xffffffff
call fcn.00424260
call fcn.004239c0
mov eax, 0x8977e8
call fcn.004587e0
mov ebx, dword [ebp + 0x10]
movzx edx, word [ebx + 2]
mov esi, dword [0x8927a4]
add ebx, 2
add ebx, 3
mov dword [esi + 0x202c8], edx
mov al, byte [ebx]
inc ebx
test al, al
mov byte [esi + 0x202cc], al
mov dword [esp + 0x28], 0
jbe 0x410b6a
nop
mov al, byte [ebx]
movzx eax, al
mov ecx, eax
imul ecx, ecx, 0xd
mov byte [eax + esi + 0x202cd], 1
add ecx, esi
inc ebx
mov dword [esp + 0x14], ecx
add ecx, 0x203cd
mov edx, ebx
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 + 0x14]
add ebx, 0xc
mov byte [ecx + 0x203d9], 0
mov dl, byte [ebx]
xor ecx, ecx
test dl, dl
sete cl
inc ebx
lea edx, [esi + eax*8]
add ebx, 8
mov dword [esi + eax*4 + 0x220d0], ecx
lea ecx, [eax + edx]
mov edx, dword [ebx - 8]
mov dword [ecx + 0x228d0], edx
mov edx, dword [ebx - 4]
mov dword [ecx + 0x228d4], edx
mov dl, byte [ecx + 0x228d7]
test dl, dl
jns 0x410b06
mov dl, byte [ecx + 0x228d6]
test dl, dl
js 0x410b06
mov byte [ecx + 0x228d7], 0
mov byte [ecx + 0x228d8], 0
mov cx, word [ebx]
add cx, 5
mov word [esi + eax*2 + 0x231d0], cx
mov dx, word [ebx + 2]
add ebx, 2
add dx, 5
add ebx, 2
mov word [esi + eax*2 + 0x233d0], dx
mov cx, word [ebx]
add cx, 5
add ebx, 2
mov word [esi + eax*2 + 0x239d0], cx
mov dx, word [ebx]
mov word [esi + eax*2 + 0x23bd0], dx
mov eax, dword [esp + 0x28]
movzx ecx, byte [esi + 0x202cc]
add ebx, 2
inc eax
cmp eax, ecx
mov dword [esp + 0x28], eax
jl 0x410a80
movzx edx, byte [esi + 0x202cc]
imul edx, edx, 0x1a
mov eax, 0xfffffffa
sub eax, edx
mov edx, dword [ebp + 8]
add edx, eax
xor eax, eax
mov byte [esp + 0xc8], 0
mov ecx, 0x7f
lea edi, [esp + 0xc9]
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 + 0x28], edx
jle 0x410c0d
lea ecx, [ecx]
mov cl, byte [edx + ebx]
cmp cl, 0xa
jne 0x410bf9
lea eax, [esp + 0xc8]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x410bc2
push 0
push 0
lea ecx, [esp + 0xd0]
push ecx
push 0
push 0
push 2
sub eax, edx
push esi
call fcn.00423aa0
mov edx, dword [esp + 0x28]
mov ecx, 0x80
xor eax, eax
lea edi, [esp + 0xc8]
rep stosd dword es:[edi], eax
jmp 0x410c01
mov byte [esp + eax + 0xc8], cl
inc eax
mov ecx, dword [ebp + 8]
inc edx
cmp edx, ecx
mov dword [esp + 0x28], edx
jl 0x410bb0
lea eax, [esp + 0xc8]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x410c17
push 0
push 0
sub eax, edx
lea edx, [esp + 0xd0]
push edx
push 0
push 0
push 2
push esi
call fcn.00423aa0
cmp dword [0x892d1c], 3
jne 0x410c87
push 0
push 0x5f0a64
push 0x5ef1b8
push 0
call fcn.004cf280
mov ebx, 0x1f
mov edi, eax
call fcn.004032b0
push eax
call fcn.0055ffd5
mov edi, eax
add esp, 0x14
test edi, edi
je 0x410c87
call fcn.0050e510
mov eax, dword [0x8927a4]
mov esi, dword [eax + 0x202c8]
add esi, 0x78
call fcn.0050e5b0
call fcn.004320c0
jmp case.0x40fa9f.4116
mov eax, dword [0x892d1c]
cmp eax, 3
je 0x410cc4
cmp eax, 9
jne 0x410cae
cmp dword [0x892684], 9
je 0x410cc4
jmp case.0x40fa9f.4116
cmp eax, 0xb
jne case.0x40fa9f.4116
cmp dword [0x892684], 0xb
jne case.0x40fa9f.4116
mov eax, 0x8977e8
call fcn.00458830
mov esi, dword [ebp + 0x10]
mov al, byte [esi]
mov ebx, dword [0x8927a4]
mov edx, dword [ebx + 0x26348]
add ebx, 0x26328
movzx edi, al
inc esi
inc edx
push edi
mov dword [ebx + 0x20], edx
call fcn.0041bb00
mov eax, dword [0x8927a4]
mov edx, esi
mov ebx, dword [edx]
lea ecx, [edi + edi*4]
shl ecx, 2
mov dword [esp + 0x14], ecx
lea ecx, [ecx + eax + 0x245f1]
mov dword [ecx], ebx
mov ebx, dword [edx + 4]
mov dword [ecx + 4], ebx
mov edx, dword [edx + 8]
mov dword [ecx + 8], edx
mov ecx, dword [esp + 0x14]
mov byte [ecx + eax + 0x245fd], 0
mov dl, byte [esi + 0xc]
add esi, 0xc
test dl, dl
sete bl
mov byte [edi + eax + 0x805c8], bl
mov edx, dword [esi + 1]
inc esi
mov dword [eax + edi*4 + 0x24694], edx
mov cx, word [esi + 4]
mov word [eax + edi*2 + 0x246d4], cx
add esi, 4
mov edx, dword [esi + 2]
add esi, 2
mov dword [eax + edi*4 + 0x246b4], edx
mov cx, word [esi + 4]
mov word [eax + edi*2 + 0x246e4], cx
add esi, 4
mov dl, byte [esi + 2]
add esi, 2
mov byte [eax + edi*2 + 0x247b6], dl
mov cl, byte [esi + 1]
mov byte [eax + edi*2 + 0x247b7], cl
inc esi
mov dl, byte [esi + 1]
mov byte [edi + eax + 0x247c6], dl
mov byte [edi + eax + 0x247ce], 1
inc esi
mov edx, dword [esi + 1]
inc esi
lea ecx, [eax + edi*8 + 0x20508]
mov dword [edi + ecx + 0x40a1], edx
mov edx, dword [esi + 4]
lea eax, [eax + edi*8]
add eax, edi
mov dword [edi + ecx + 0x40a5], edx
mov cl, byte [eax + 0x228d7]
test cl, cl
mov byte [esp + 0x13], bl
mov byte [eax + 0x245b1], 0
jns 0x410de1
mov cl, byte [eax + 0x228d6]
test cl, cl
js 0x410de1
mov byte [eax + 0x228d7], 0
mov cx, word [esi + 8]
mov eax, dword [0x8927a4]
add esi, 8
add cx, 5
mov word [eax + edi*2 + 0x247d6], cx
mov dx, word [esi + 2]
add esi, 2
add dx, 5
mov word [eax + edi*2 + 0x247e6], dx
mov cx, word [esi + 2]
add esi, 2
add cx, 5
add esi, 2
mov word [eax + edi*2 + 0x24806], cx
mov dx, word [esi]
mov word [eax + edi*2 + 0x247f6], dx
mov dl, byte [eax + 0x24579]
add esi, 2
inc dl
mov byte [eax + 0x24579], dl
movzx ecx, word [esi]
mov dword [esp + 0x14], ecx
add esi, 2
xor ecx, ecx
lea edx, [edi*4]
jmp 0x410e57
mov bl, byte [esp + 0x13]
cmp ecx, 3
jne 0x410e68
mov word [eax + edx*2 + 0x246fa], 0x8000
jmp 0x410e7d
neg bl
lea edx, [ecx + edx + 0x1237a]
sbb ebx, ebx
and ebx, 0x8000
mov word [eax + edx*2], bx
lea edx, [edi*4]
lea ebx, [ecx + edx + 0x91cd]
inc ecx
cmp ecx, 4
mov dword [eax + ebx*4], 0
jl 0x410e53
mov ecx, dword [esp + 0x14]
test ecx, ecx
jle 0x410fd4
mov dword [esp + 0x28], ecx
jmp 0x410eb0
mov ebx, dword [esi]
cmp ebx, 0x31999
jle 0x410f74
cmp ebx, 0x34000
jge 0x410f74
lea ecx, [esp + 0x2c8]
call fcn.0040af10
push ebx
lea eax, [esp + 0x2cc]
mov byte [esp + 0x7e0], 8
mov ecx, dword [0x8927a4]
push eax
push ecx
mov al, 1
call fcn.0042ec50
movzx eax, byte [esp + 0x2d1]
dec eax
je 0x410f30
dec eax
jne 0x410f59
mov eax, dword [0x8927a4]
mov ecx, dword [0x892d1c]
mov edx, edi
shl edx, 4
cmp ecx, 3
mov dword [edx + eax + 0x2473c], ebx
mov byte [edi + eax + 0x262c0], 1
je 0x410f59
push edi
push eax
call fcn.00431bc0
jmp 0x410f59
mov eax, dword [0x8927a4]
mov ecx, edi
shl ecx, 4
mov dword [ecx + eax + 0x24738], ebx
cmp dword [0x892d1c], 3
mov byte [edi + eax + 0x262b8], 1
je 0x410f59
push edi
push eax
call fcn.00431aa0
lea ecx, [esp + 0x2c8]
mov byte [esp + 0x7dc], 4
call fcn.00413130
mov eax, dword [0x8927a4]
jmp 0x410fc2
mov ecx, ebx
sar ecx, 0x10
and cl, 0xf
and ebx, 0x7fff
cmp cl, 3
jne 0x410f9e
or ebx, 0x8000
lea ecx, [edi*4]
mov word [eax + ecx*2 + 0x246fa], bx
jmp 0x410fc2
mov dl, byte [esp + 0x13]
neg dl
sbb edx, edx
and edx, 0x8000
or edx, ebx
movzx ebx, cl
lea ecx, [edi*4]
add ebx, ecx
mov word [eax + ebx*2 + 0x246f4], dx
mov ecx, dword [esp + 0x28]
add esi, 4
dec ecx
mov dword [esp + 0x28], ecx
jne 0x410eb0
mov cl, byte [esi]
lea esi, [eax + edi*8 + 0x26278]
test byte [0x922440], 1
mov byte [esp + 0x1c], cl
jne 0x411018
or dword [0x922440], 1
push 0x9223f8
mov byte [esp + 0x7e0], 9
call fcn.004ceae0
push 0x57cea0
call fcn.0055e9d1
add esp, 4
mov byte [esp + 0x7dc], 4
mov ecx, dword [esi + 4]
push 1
lea eax, [esp + 0x20]
push eax
push ecx
mov esi, 0x9223f8
call fcn.0040adb0
test byte [0x922440], 1
jne 0x411064
or dword [0x922440], 1
push 0x9223f8
mov byte [esp + 0x7e0], 0xa
call fcn.004ceae0
push 0x57cea0
call fcn.0055e9d1
add esp, 4
mov byte [esp + 0x7dc], 4
push 0x922428
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov al, byte [0x922424]
push 0x922428
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call fcn.005605d0
cdq
mov ecx, 6
idiv ecx
mov ecx, dword [0x8927a4]
mov eax, dword [ecx + edi*4 + 0x246b4]
mov esi, edi
mov dword [ecx + edi*4 + 0x262c8], edx
xor edx, edx
mov dx, word [ecx + edi*2 + 0x246e4]
push edx
push eax
mov ax, word [ecx + edi*2 + 0x246d4]
mov ecx, dword [ecx + edi*4 + 0x24694]
mov edx, 0x8977e8
call fcn.004588a0
mov eax, dword [0x8926bc]
test eax, eax
je case.0x40fa9f.4116
mov ecx, edi
call fcn.004fc730
jmp case.0x40fa9f.4116
cmp eax, 0x6005
jg 0x4125af
je 0x41247e
cmp eax, 0x4501
jg 0x411c27
je 0x411c0f
cmp eax, 0x3020
je 0x4117b2
cmp eax, 0x3400
je 0x411702
cmp eax, 0x4410
jne case.0x40fa9f.4116
lea ecx, [edx + 0x2723c]
call fcn.00406a60
test al, al
jne 0x4116ea
mov edi, dword [0x8927a4]
add edi, 0x2723c
mov al, 1
call fcn.00417d80
mov ecx, dword [ebp + 0x10]
mov al, byte [ecx]
mov ecx, dword [0x8927a4]
test al, al
setne dl
mov byte [ecx + 0x2724c], al
mov byte [ecx + 0x2724d], dl
lea ecx, [esp + 0x14]
call fcn.00417a30
lea ecx, [esp + 0x30]
mov byte [esp + 0x7dc], 0xb
call fcn.00417a30
mov eax, 0xeeaeaec0
lea ecx, [esp + 0x14]
mov byte [esp + 0x7dc], 0xc
call fcn.00417cf0
mov eax, 0xeeaeaec0
lea ecx, [esp + 0x30]
call fcn.00417cf0
mov ecx, dword [0x8927a4]
add ecx, 0x2458c
call fcn.004086e0
cmp eax, 3
jne 0x4111ed
mov eax, dword [0x8927a4]
mov cl, byte [eax + 0x2724c]
test cl, cl
lea ecx, [eax + 0x57f1c]
je 0x4111d4
lea ecx, [eax + 0x57f24]
call fcn.004086e0
mov ecx, 0x5f0774
mov esi, eax
call fcn.004086e0
cmp esi, eax
jl 0x41127b
mov ecx, dword [0x8927a4]
add ecx, 0x2634c
call fcn.004086e0
dec eax
cmp eax, 7
ja case.default.0x411204
jmp dword [eax*4 + 0x412d40]
mov eax, 0xeeaeaea4
lea ecx, [esp + 0x14]
call fcn.00417cf0
mov eax, 0xeeaeaec3
jmp 0x411272
mov eax, 0xeeaeae56
lea ecx, [esp + 0x14]
call fcn.00417cf0
mov eax, 0xeeaeaec6
jmp 0x411272
mov eax, 0xeeaeae08
lea ecx, [esp + 0x14]
call fcn.00417cf0
mov eax, 0xeeaeaec9
jmp 0x411272
mov eax, 0xeeaeafec
lea ecx, [esp + 0x14]
call fcn.00417cf0
mov eax, 0xeeaeaecc
jmp 0x411272
mov eax, 0xeeaeaec0
lea ecx, [esp + 0x14]
call fcn.00417cf0
mov eax, 0xeeaeaec0
lea ecx, [esp + 0x30]
call fcn.00417cf0
mov eax, dword [0x8927a4]
xor ebx, ebx
xor esi, esi
jmp 0x411290
mov cl, byte [ebx + eax + 0x265c1]
test cl, cl
je 0x411317
mov cl, byte [ebx + eax + 0x265da]
cmp cl, byte [eax + 0x2724c]
jne 0x411317
lea ecx, [esi + eax + 0x2672c]
call fcn.004086e0
mov ecx, 0x5f0774
mov edi, eax
call fcn.004086e0
lea ecx, [esp + 0x14]
add edi, eax
call fcn.004086e0
imul edi, eax
mov ecx, 0x5f0774
call fcn.004086e0
mov ecx, eax
mov eax, edi
cdq
idiv ecx
push ebx
mov ecx, eax
mov eax, dword [0x8927a4]
call fcn.00432260
lea ecx, [esp + 0x30]
call fcn.004086e0
mov edx, dword [0x8927a4]
push eax
lea edi, [edx + ebx*8 + 0x270cc]
call fcn.00417c50
mov eax, dword [0x8927a4]
add esi, 0x40
inc ebx
cmp esi, 0x200
jl 0x411290
lea ecx, [esp + 0x30]
mov byte [esp + 0x7dc], 0xb
call fcn.00417ad0
lea ecx, [esp + 0x14]
mov byte [esp + 0x7dc], 4
call fcn.00417ad0
mov ecx, dword [0x8927a4]
add ecx, 0x80548
lea edi, [esp + 0x28]
call fcn.00417a70
mov byte [esp + 0x7dc], 0xd
mov ecx, dword [0x8927a4]
add ecx, 0x80550
lea edi, [esp + 0x30]
call fcn.00417a70
mov byte [esp + 0x7dc], 0xe
mov eax, dword [0x8927a4]
movzx ebx, byte [eax + 0x24594]
cmp ebx, 0xffff
je 0x4113cc
mov edi, 0x921450
call fcn.0040b700
push eax
lea edi, [esp + 0x2c]
call fcn.00417c50
mov ecx, dword [0x8927a4]
movzx ebx, byte [ecx + 0x24594]
mov edi, 0x921450
call fcn.0040b760
push eax
lea edi, [esp + 0x34]
call fcn.00417c50
xor esi, esi
xor ebx, ebx
mov eax, dword [0x8927a4]
mov cl, byte [ebx + eax + 0x265c1]
test cl, cl
je 0x41162f
lea ecx, [eax + ebx*8 + 0x2708c]
call fcn.004086e0
test eax, eax
jle 0x411430
mov edx, dword [0x8927a4]
lea ecx, [edx + ebx*8 + 0x2708c]
call fcn.004086e0
lea ecx, [esp + 0x30]
mov edi, eax
call fcn.004086e0
imul edi, eax
mov eax, 0x51eb851f
imul edi
mov eax, dword [0x8927a4]
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
push ebx
call fcn.00432260
mov eax, dword [0x8927a4]
lea ecx, [eax + ebx*8 + 0x270cc]
call fcn.004086e0
test eax, eax
jle 0x411489
mov ecx, dword [0x8927a4]
lea ecx, [ecx + ebx*8 + 0x270cc]
call fcn.004086e0
lea ecx, [esp + 0x28]
mov edi, eax
call fcn.004086e0
imul edi, eax
mov ecx, dword [0x8927a4]
mov eax, 0x51eb851f
imul edi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
lea edi, [ecx + ebx*8 + 0x270cc]
call fcn.00417c50
mov edx, dword [0x8927a4]
lea ecx, [edx + ebx*8 + 0x2708c]
call fcn.004086e0
test eax, eax
jle 0x4114e2
mov eax, dword [0x8927a4]
lea ecx, [eax + ebx*8 + 0x2708c]
call fcn.004086e0
mov ecx, dword [0x8927a4]
add ecx, 0x202bc
mov edi, eax
call fcn.004086e0
imul edi, eax
mov eax, 0x51eb851f
imul edi
mov eax, dword [0x8927a4]
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
push ebx
call fcn.00432260
mov ecx, dword [0x8927a4]
lea ecx, [ecx + ebx*8 + 0x270cc]
call fcn.004086e0
test eax, eax
jle 0x411543
mov edx, dword [0x8927a4]
lea ecx, [edx + ebx*8 + 0x270cc]
call fcn.004086e0
mov ecx, dword [0x8927a4]
add ecx, 0x202b4
mov edi, eax
call fcn.004086e0
imul edi, eax
mov ecx, dword [0x8927a4]
mov eax, 0x51eb851f
imul edi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edi, [ecx + ebx*8 + 0x270cc]
call fcn.00417b40
mov edx, dword [0x8927a4]
lea ecx, [edx + ebx*8 + 0x26580]
call fcn.00406a60
test al, 1
je 0x41162f
mov eax, dword [0x8927a4]
lea ecx, [eax + ebx*8 + 0x2708c]
call fcn.004086e0
lea ecx, [eax + eax*4]
shl ecx, 1
mov eax, 0x51eb851f
imul ecx
mov eax, dword [0x8927a4]
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
push ebx
call fcn.00432260
mov ecx, dword [0x8927a4]
lea ecx, [ecx + ebx*8 + 0x270cc]
call fcn.004086e0
lea ecx, [eax + eax*4]
shl ecx, 2
mov eax, 0x51eb851f
imul ecx
mov ecx, dword [0x8927a4]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
lea edi, [ecx + ebx*8 + 0x270cc]
call fcn.00417c50
mov eax, dword [0x8927a4]
lea edx, [esp + 0x14]
push edx
lea ecx, [eax + ebx*8 + 0x2708c]
mov dword [esp + 0x18], esi
call fcn.00408710
test al, al
je 0x4115fd
mov ecx, dword [0x8927a4]
lea edi, [ecx + ebx*8 + 0x2708c]
xor eax, eax
call fcn.00417b40
mov eax, dword [0x8927a4]
lea edx, [esp + 0x14]
push edx
lea ecx, [eax + ebx*8 + 0x270cc]
mov dword [esp + 0x18], esi
call fcn.00408710
test al, al
je 0x41162f
mov ecx, dword [0x8927a4]
lea edi, [ecx + ebx*8 + 0x270cc]
xor eax, eax
call fcn.00417b40
inc ebx
cmp ebx, 8
jl 0x4113d0
mov ecx, dword [0x8927a4]
add ecx, 0x1aa38
call fcn.004086e0
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
mov esi, eax
call fcn.004086e0
cmp eax, esi
jne 0x4116c8
mov ecx, dword [0x8927a4]
add ecx, 0x2458c
call fcn.004086e0
cmp eax, 3
je 0x411690
mov ecx, dword [0x8927a4]
add ecx, 0x27234
call fcn.00406a60
cmp al, 1
jne 0x4116c8
mov ecx, dword [0x8927a4]
add ecx, 0x27244
call fcn.00406a60
test al, al
jne 0x4116c8
cmp dword [0x892d1c], 0xb
jne 0x4116c3
mov ecx, dword [0x8926c4]
add ecx, 0x11c8
call fcn.00406a60
cmp al, 1
je 0x4116c8
call fcn.00415890
lea ecx, [esp + 0x30]
mov byte [esp + 0x7dc], 0xd
call fcn.00417ad0
lea ecx, [esp + 0x28]
mov byte [esp + 0x7dc], 4
call fcn.00417ad0
mov edi, dword [0x8927a4]
add edi, 0x2722c
mov al, 1
call fcn.00417d80
jmp case.0x40fa9f.4116
mov eax, dword [ebp + 0x10]
movzx eax, byte [eax]
lea edi, [edx + 0x1aa38]
call fcn.00417b40
mov ecx, dword [0x8927a4]
add ecx, 0x1aa38
call fcn.004086e0
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
mov esi, eax
call fcn.004086e0
cmp esi, eax
jne 0x41176e
push 0
push 0x5f0a44
push 0x5ef1b8
push 0
call fcn.004cf280
mov ebx, 0x5b
mov edi, eax
call fcn.004032b0
push eax
call fcn.0055ffd5
add esp, 0x14
test eax, eax
je 0x41176e
mov edi, eax
call fcn.00529de0
mov ecx, dword [0x8927a4]
add ecx, 0x1aa38
call fcn.004086e0
mov ecx, eax
mov eax, dword [0x8927a4]
cmp byte [ecx + eax + 0x247ce], 3
jne case.0x40fa9f.4116
lea ecx, [eax + 0x1aa38]
call fcn.004086e0
mov edx, dword [0x8927a4]
mov byte [eax + edx + 0x247ce], 1
jmp case.0x40fa9f.4116
mov esi, dword [ebp + 0x10]
movzx eax, byte [esi]
lea ebx, [edx + 0x26328]
push eax
call fcn.0041bb00
mov edx, dword [ebx + 0x20]
mov eax, dword [0x8927a4]
dec edx
mov dword [ebx + 0x20], edx
movzx edi, byte [esi]
mov cl, byte [edi + eax + 0x262c0]
xor ebx, ebx
cmp cl, bl
je 0x4117fe
mov byte [edi + eax + 0x262c0], bl
mov eax, dword [eax + edi*4 + 0x80724]
push eax
mov ecx, 0x7694ec
call fcn.00540db0
mov eax, dword [0x8927a4]
cmp byte [edi + eax + 0x262b8], bl
je 0x411825
mov byte [edi + eax + 0x262b8], bl
mov ecx, dword [eax + edi*4 + 0x80704]
push ecx
mov ecx, 0x7694ec
call fcn.00540db0
mov eax, dword [0x8927a4]
mov ecx, dword [0x892d1c]
cmp ecx, 3
jne 0x411a32
mov dl, byte [eax + 0x24579]
mov cl, byte [0x892d7e]
dec dl
cmp cl, 1
mov byte [eax + 0x24579], dl
movzx edx, byte [esi]
mov byte [edx + eax + 0x247ce], bl
jne 0x411869
movzx ecx, byte [esi]
lea edi, [eax + ecx*8 + 0x29350]
or eax, 0xffffffff
call fcn.00417b40
cmp dword [0x892d1c], 0xb
movzx eax, byte [esi]
sete dl
push edx
push eax
mov eax, 0x8977e8
call fcn.00458920
mov ecx, dword [0x8927a4]
mov eax, dword [ecx + 0x7f960]
cmp eax, ebx
je 0x411a16
xor edx, edx
cmp eax, ebx
mov dword [esp + 0xc], edx
jle 0x411a16
jmp 0x4118b0
mov ecx, dword [0x8927a4]
add ecx, 0x7f95c
mov eax, edx
call fcn.0041a900
mov edi, dword [eax]
mov esi, dword [0x8927a4]
mov edx, edi
mov dword [esp + 0x14], edi
call fcn.004241c0
test al, al
je 0x4119f8
mov ecx, edi
call fcn.00431260
mov ebx, 0xc303
mov esi, 0x8977e8
call fcn.00458260
mov eax, dword [0x89835c]
mov esi, dword [0x8926c4]
mov edx, edi
mov byte [eax + 0x89815c], dl
mov eax, dword [0x89835c]
inc eax
mov dword [0x89835c], eax
add esi, 0x12bc
mov ecx, 0x10
lea edi, [eax + 0x89815c]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [0x89835c]
add ecx, 0x40
cmp edx, 0xe
mov dword [0x89835c], ecx
jne 0x4119ab
mov ecx, dword [0x8927a4]
mov ecx, dword [ecx + 0x272d8]
add ecx, 0x2a4
call fcn.00406a60
test al, al
jne 0x411971
mov edx, dword [0x8927a4]
mov edi, dword [edx + 0x272d8]
add edi, 0x2a4
mov al, 1
call fcn.00417d80
mov eax, dword [0x8927a4]
mov edi, dword [eax + 0x272d8]
push 0
call fcn.00470b60
mov ecx, dword [0x89835c]
mov word [ecx + 0x89815c], ax
mov ecx, dword [0x89835c]
mov eax, dword [0x8927a4]
add ecx, 2
push 0
mov dword [0x89835c], ecx
call fcn.00426de0
push 0x8977e8
or ecx, 0xffffffff
call fcn.00458440
mov edi, dword [0x8927a4]
mov esi, dword [esp + 0xc]
add edi, 0x7f95c
mov ebx, 1
mov edx, esi
call fcn.004193c0
mov edx, dword [0x8927a4]
mov eax, dword [edx + 0x7f960]
dec esi
test eax, eax
mov dword [esp + 0xc], esi
jne 0x4119f8
push 0xc302
push 0x8977e8
call fcn.00458ac0
mov edx, dword [esp + 0xc]
mov eax, dword [0x8927a4]
mov ecx, dword [eax + 0x7f960]
inc edx
cmp edx, ecx
mov dword [esp + 0xc], edx
jl 0x4118b0
xor ebx, ebx
mov ecx, dword [0x892d1c]
cmp ecx, 3
jne 0x411a2d
cmp dword [0x892684], ecx
je case.0x40fa9f.4116
mov eax, dword [0x8927a4]
mov dl, byte [eax + 0x24579]
mov esi, dword [ebp + 0x10]
dec dl
cmp ecx, 9
mov byte [eax + 0x24579], dl
movzx edx, byte [esi]
mov byte [edx + eax + 0x247ce], bl
jne 0x411a6d
cmp byte [0x892d7e], 1
jne 0x411a6d
movzx ecx, byte [esi]
lea edi, [eax + ecx*8 + 0x29350]
or eax, 0xffffffff
call fcn.00417b40
cmp dword [0x892d1c], 0xb
movzx eax, byte [esi]
sete dl
push edx
push eax
mov eax, 0x8977e8
call fcn.00458920
mov esi, dword [0x8927a4]
mov eax, dword [esi + 0x7f960]
cmp eax, ebx
je case.0x40fa9f.4116
mov dword [esp + 0xc], ebx
jle case.0x40fa9f.4116
cmp ebx, eax
jae 0x4125a5
mov ecx, dword [esi + 0x7f95c]
mov edi, dword [ecx + ebx*4]
lea eax, [ecx + ebx*4]
mov edx, edi
mov dword [esp + 0x14], edi
call fcn.004241c0
test al, al
je 0x411c07
mov ecx, edi
call fcn.00431260
mov ebx, 0xc303
mov esi, 0x8977e8
call fcn.00458260
mov eax, dword [0x89835c]
mov esi, dword [0x8926c4]
mov edx, edi
mov byte [eax + 0x89815c], dl
mov eax, dword [0x89835c]
inc eax
mov dword [0x89835c], eax
add esi, 0x12bc
mov ecx, 0x10
lea edi, [eax + 0x89815c]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [0x89835c]
add ecx, 0x40
cmp edx, 0xe
mov dword [0x89835c], ecx
jne 0x411b98
mov ecx, dword [0x8927a4]
mov ecx, dword [ecx + 0x272d8]
add ecx, 0x2a4
call fcn.00406a60
test al, al
jne 0x411b5e
mov edx, dword [0x8927a4]
mov edi, dword [edx + 0x272d8]
add edi, 0x2a4
mov al, 1
call fcn.00417d80
mov eax, dword [0x8927a4]
mov edi, dword [eax + 0x272d8]
push 0
call fcn.00470b60
mov ecx, dword [0x89835c]
mov word [ecx + 0x89815c], ax
mov ecx, dword [0x89835c]
mov eax, dword [0x8927a4]
add ecx, 2
push 0
mov dword [0x89835c], ecx
call fcn.00426de0
push 0x8977e8
or ecx, 0xffffffff
call fcn.00458440
mov edi, dword [0x8927a4]
mov esi, dword [esp + 0xc]
add edi, 0x7f95c
mov ebx, 1
mov edx, esi
call fcn.004193c0
dec esi
mov dword [esp + 0xc], esi
mov esi, dword [0x8927a4]
mov eax, dword [esi + 0x7f960]
test eax, eax
jne 0x411beb
push 0xc302
push 0x8977e8
call fcn.00458ac0
mov esi, dword [0x8927a4]
mov ebx, dword [esp + 0xc]
mov eax, dword [esi + 0x7f960]
inc ebx
cmp ebx, eax
mov dword [esp + 0xc], ebx
jl 0x411aa6
jmp case.0x40fa9f.4116
mov esi, dword [0x8927a4]
jmp 0x411bef
mov eax, dword [ebp + 0x10]
lea edx, [eax + 1]
mov al, byte [eax]
push edx
push 0x8977e8
call fcn.00458af0
jmp case.0x40fa9f.4116
cmp eax, 0x5001
je 0x412403
cmp eax, 0x5101
je 0x412362
cmp eax, 0x6001
jne case.0x40fa9f.4116
mov eax, dword [ebp + 0x10]
cmp word [eax], bx
jne case.0x40fa9f.4116
mov esi, eax
movzx eax, word [esi + 2]
add esi, 2
lea edi, [edx + 0x55e28]
call fcn.00417b40
mov ecx, eax
call fcn.004086e0
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
mov edi, eax
add esi, 2
call fcn.004086e0
cmp edi, ebx
mov ecx, dword [0x8927a4]
mov byte [eax + ecx + 0x80a5a], 0
jle 0x4122ed
mov dword [esp + 0x14], edi
nop
mov edx, dword [esi]
mov eax, dword [esi + 4]
add esi, 4
lea edi, [esp + 0x50]
or bl, 0xff
mov dword [esp + 0x4c], edx
call fcn.00417b40
mov ecx, eax
call fcn.004086e0
mov al, byte [esi + 4]
add esi, 4
test al, al
mov al, byte [esi + 1]
setne byte [esp + 0x13]
inc esi
inc esi
mov byte [esp + 0x27], al
cmp byte [esi], 0
setne al
inc esi
test al, al
mov byte [esp + 0x20], al
je 0x411d3f
mov ecx, dword [esi]
add esi, 4
cmp ecx, 0x151bc
lea edi, [esp + 0x58]
jle 0x411d25
mov eax, 0x184178b9
imul ecx
sar edx, 0xd
mov eax, edx
shr eax, 0x1f
add eax, edx
call fcn.00417b40
lea ecx, [esp + 0x68]
push ecx
mov edx, edi
push edx
call fcn.00417b70
lea ecx, [esp + 0x68]
call fcn.00417ad0
mov bl, 3
jmp 0x411d3f
mov eax, 0x91a2b3c5
imul ecx
add edx, ecx
sar edx, 0xb
mov eax, edx
shr eax, 0x1f
add eax, edx
call fcn.00417b40
mov bl, 4
cmp byte [esi], 0
setne al
inc esi
test al, al
je 0x411d5f
mov eax, dword [esi]
lea edi, [esp + 0x70]
call fcn.00417b40
mov ecx, eax
call fcn.004086e0
add esi, 4
cmp byte [esi], 0
setne al
inc esi
test al, al
je 0x411d7f
mov eax, dword [esi]
lea edi, [esp + 0x60]
call fcn.00417b40
mov ecx, eax
call fcn.004086e0
add esi, 4
cmp byte [esi], 0
setne byte [esp + 0x1c]
inc esi
lea ecx, [esp + 0x50]
mov dword [esp + 0xc], esi
call fcn.004086e0
cmp eax, 0x31999
jle 0x412071
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x54]
mov dword [esp + 0x34], 0x34000
call fcn.00408710
test al, al
je 0x412071
lea ecx, [esp + 0xc8]
push ecx
call fcn.00412d60
lea ecx, [esp + 0x2c8]
mov byte [esp + 0x7dc], 5
call fcn.0040af10
lea ecx, [esp + 0x50]
mov byte [esp + 0x7dc], 6
call fcn.004086e0
push eax
mov eax, dword [0x8927a4]
lea edx, [esp + 0x2cc]
push edx
push eax
mov al, 1
call fcn.0042ec50
mov eax, dword [esp + 0x4c]
lea edi, [esp + 0xd4]
call fcn.00417b40
lea ecx, [esp + 0x50]
lea edi, [esp + 0xdc]
call fcn.00417af0
mov cl, byte [esp + 0x27]
mov byte [esp + 0xf8], cl
lea ecx, [esp + 0x70]
lea edi, [esp + 0xfc]
call fcn.00417af0
lea ecx, [esp + 0x60]
lea edi, [esp + 0x10c]
call fcn.00417af0
mov al, byte [esp + 0x13]
lea edi, [esp + 0xf0]
call fcn.00417d80
lea ecx, [esp + 0x58]
lea edi, [esp + 0x124]
mov byte [esp + 0x12c], bl
call fcn.00417af0
mov al, byte [esp + 0x20]
lea edi, [esp + 0x11c]
call fcn.00417d80
mov al, byte [esp + 0x1c]
lea edi, [esp + 0x114]
call fcn.00417d80
mov eax, dword [0x8927a4]
mov dl, byte [esp + 0x2d1]
add eax, 0x24478
push eax
lea ebx, [esp + 0xcc]
mov byte [esp + 0xe8], dl
call fcn.00419340
mov ecx, dword [0x8927a4]
add ecx, 0x24498
push ecx
call fcn.00419340
mov al, byte [esp + 0x13]
test al, al
je 0x41203f
lea ecx, [esp + 0x50]
call fcn.004086e0
cmp eax, 0x32001
je 0x41203f
mov eax, dword [0x8927a4]
mov ecx, dword [eax + 0x80968]
test ecx, ecx
mov cl, byte [esp + 0x2d1]
je 0x411fcd
movzx edx, cl
cmp dword [eax + edx*4 + 0x80954], 0xffffffff
je 0x411fcd
mov esi, dword [0x892d3c]
push 0x600e
call fcn.00450180
mov eax, dword [0x892d3c]
mov ecx, dword [eax + 0x4098]
mov esi, dword [0x8927a4]
mov word [ecx + eax + 0x98], 1
mov ebx, dword [eax + 0x4098]
add ebx, 2
mov dword [eax + 0x4098], ebx
movzx edx, byte [esp + 0x2d1]
mov edx, dword [esi + edx*4 + 0x80954]
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.00450320
lea ecx, [esp + 0x2c8]
mov byte [esp + 0x7dc], 5
call fcn.00413130
lea eax, [esp + 0xc8]
push eax
mov byte [esp + 0x7e0], bl
call fcn.00412fd0
mov esi, dword [esp + 0xc]
jmp 0x4122e3
movzx ecx, cl
lea edi, [eax + ecx*8 + 0x1aa04]
lea ecx, [esp + 0x50]
call fcn.00417af0
movzx edx, byte [esp + 0x2d1]
mov eax, dword [0x8927a4]
mov ecx, dword [esp + 0x4c]
mov dword [eax + edx*4 + 0x80954], ecx
movzx edx, byte [esp + 0x2d1]
lea edi, [eax + edx*8 + 0x55e50]
mov eax, dword [esp + 0x28]
call fcn.00417b40
movzx eax, byte [esp + 0x2d1]
dec eax
je 0x41202f
dec eax
jne 0x41203f
mov eax, dword [0x8927a4]
mov dword [eax + 0x80700], 1
jmp 0x41203f
mov ecx, dword [0x8927a4]
mov dword [ecx + 0x806fc], 1
inc dword [esp + 0x28]
lea ecx, [esp + 0x2c8]
mov byte [esp + 0x7dc], 5
call fcn.00413130
lea edx, [esp + 0xc8]
push edx
mov byte [esp + 0x7e0], 4
call fcn.00412fd0
jmp 0x4122ac
lea eax, [esp + 0x78]
push eax
call fcn.00413450
mov eax, dword [esp + 0x4c]
lea edi, [esp + 0x80]
mov byte [esp + 0x7dc], 7
call fcn.00417b40
lea ecx, [esp + 0x50]
lea edi, [esp + 0x88]
call fcn.00417af0
mov cl, byte [esp + 0x27]
mov al, byte [esp + 0x13]
lea edi, [esp + 0x90]
mov dword [esp + 0x7c], 0
mov byte [esp + 0x78], cl
call fcn.00417d80
lea ecx, [esp + 0x60]
lea edi, [esp + 0x98]
call fcn.00417af0
lea ecx, [esp + 0x58]
lea edi, [esp + 0xb0]
mov byte [esp + 0xb8], bl
call fcn.00417af0
mov al, byte [esp + 0x20]
lea edi, [esp + 0xa8]
call fcn.00417d80
mov al, byte [esp + 0x1c]
lea edi, [esp + 0xa0]
call fcn.00417d80
mov edx, dword [0x8927a4]
add edx, 0x24448
push edx
lea ebx, [esp + 0x7c]
call fcn.004192c0
mov eax, dword [0x8927a4]
add eax, 0x24488
push eax
call fcn.004192c0
mov ecx, dword [0x8927a4]
add ecx, 0x24458
push ecx
call fcn.004192c0
mov al, byte [esp + 0x13]
test al, al
je 0x41229a
lea ecx, [esp + 0x50]
call fcn.004086e0
cmp eax, 0x32001
je 0x41229a
lea ecx, [esp + 0x50]
call fcn.004086e0
mov ebx, eax
sar ebx, 0x10
lea ecx, [esp + 0x50]
and bl, 0xf
call fcn.004086e0
mov ecx, dword [0x8927a4]
mov edi, eax
mov eax, dword [ecx + 0x80968]
and edi, 0x7fff
test eax, eax
je 0x412244
movzx eax, bl
lea eax, [eax*4 + 0x80944]
cmp dword [eax + ecx], 0xffffffff
mov dword [esp + 0x30], eax
je 0x412244
mov esi, dword [0x892d3c]
push 0x600e
call fcn.00450180
mov eax, dword [0x892d3c]
mov edx, dword [eax + 0x4098]
mov esi, dword [esp + 0x30]
mov word [edx + eax + 0x98], 1
mov ebx, dword [eax + 0x4098]
mov edx, dword [0x8927a4]
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.00450320
lea eax, [esp + 0x78]
push eax
mov byte [esp + 0x7e0], bl
call fcn.004135f0
mov esi, dword [esp + 0xc]
jmp 0x4122e3
cmp bl, 3
jne 0x412259
movzx eax, di
or eax, 0x8000
lea edi, [ecx + 0x1a9fc]
jmp 0x412282
add ecx, 0x1aa24
call fcn.00406a60
neg al
movzx ecx, di
movzx edx, bl
sbb eax, eax
and eax, 0x8000
or eax, ecx
mov ecx, dword [0x8927a4]
lea edi, [ecx + edx*8 + 0x1a9e4]
call fcn.00417b40
mov eax, dword [0x8927a4]
mov ecx, dword [esp + 0x4c]
movzx edx, bl
mov dword [eax + edx*4 + 0x80944], ecx
lea edx, [esp + 0x78]
push edx
mov byte [esp + 0x7e0], 4
call fcn.004135f0
lea ecx, [esp + 0x50]
call fcn.004086e0
sub eax, 0x32001
je 0x4122d0
sub eax, 0x76
je 0x4122cc
sub eax, 0x6091
jne 0x4122e3
push 4
jmp 0x4122d2
push 2
jmp 0x4122d2
push 1
mov edi, dword [0x8927a4]
add edi, 0x805c0
call fcn.00417eb0
dec dword [esp + 0x14]
jne 0x411ca0
mov eax, dword [0x8927a4]
push eax
xor ecx, ecx
call fcn.004316f0
mov eax, dword [0x8927a4]
mov byte [eax + 0x2443d], 1
mov dword [eax + 0x80968], 0
call fcn.004322e0
mov esi, dword [0x8926a0]
add esi, 0x80
call fcn.0044ed30
push 0
push 0x5f0a84
push 0x5ef1b8
push 0
call fcn.004cf280
mov ebx, 0x15
mov edi, eax
call fcn.004032b0
push eax
call fcn.0055ffd5
add esp, 0x14
test eax, eax
je case.0x40fa9f.4116
mov edi, eax
call fcn.00531380
jmp case.0x40fa9f.4116
xor eax, eax
mov byte [esp + 0xc8], 0
mov ecx, 0x7f
lea edi, [esp + 0xc9]
rep stosd dword es:[edi], eax
mov ecx, dword [ebp + 8]
stosw word es:[edi], ax
xor edx, edx
xor esi, esi
cmp ecx, ebx
stosb byte es:[edi], al
mov eax, 6
jle 0x4123e1
lea ecx, [ecx]
mov ecx, dword [ebp + 0x10]
mov cl, byte [esi + ecx]
cmp cl, 0xd
je 0x4123d9
cmp cl, 0xa
jne 0x4123d1
mov edx, dword [0x892d1c]
mov ecx, dword [edx*4 + 0x892698]
mov edx, dword [ecx]
push eax
push 2
lea eax, [esp + 0xd0]
push eax
call dword [edx + 0x2c]
xor eax, eax
mov ecx, 0x80
lea edi, [esp + 0xc8]
rep stosd dword es:[edi], eax
xor edx, edx
jmp 0x4123d9
mov byte [esp + edx + 0xc8], cl
inc edx
mov ecx, dword [ebp + 8]
inc esi
cmp esi, ecx
jl 0x412390
mov ecx, dword [0x892d1c]
mov ecx, dword [ecx*4 + 0x892698]
mov edx, dword [ecx]
push eax
push 2
lea eax, [esp + 0xd0]
push eax
call dword [edx + 0x2c]
jmp case.0x40fa9f.4116
mov ecx, dword [ebp + 0x10]
cmp word [ecx], bx
jne case.0x40fa9f.4116
mov edx, dword [0x892d1c]
mov eax, dword [edx*4 + 0x892698]
mov esi, dword [eax]
push 6
push 3
push 0x1004
push 0x897640
call fcn.0044dea0
mov ecx, dword [0x892d1c]
mov ecx, dword [ecx*4 + 0x892698]
push eax
call dword [esi + 0x2c]
push 0
push 0x5f0a0c
push 0x5ef1b8
push 0
call fcn.004cf280
mov ebx, 0xc7
mov edi, eax
call fcn.004032b0
push eax
call fcn.0055ffd5
add esp, 0x14
test eax, eax
je case.0x40fa9f.4116
mov esi, eax
call fcn.0050e920
jmp case.0x40fa9f.4116
mov ecx, dword [edx + 0x1a29c]
push 1
lea eax, [esp + 0x24]
push eax
push ecx
mov byte [esp + 0x2c], 1
call fcn.004cee70
mov esi, eax
call fcn.0040adb0
mov esi, dword [ebp + 0x10]
mov edx, dword [esi]
xor eax, eax
add esi, 4
mov ecx, 0x28
lea edi, [esp + 0xc8]
rep stosd dword es:[edi], eax
mov eax, dword [esi]
mov cl, byte [esi + 4]
add esi, 4
mov dword [esp + 0xe0], edx
inc esi
mov edx, esi
mov dword [esp + 0xc8], eax
mov eax, dword [edx]
mov byte [esp + 0xe4], cl
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0xd0], ecx
add esi, 0xc
mov dword [esp + 0xcc], eax
mov eax, dword [esi]
lea ecx, [esp + 0x30]
push ecx
mov dword [esp + 0xd8], edx
mov dword [esp + 0x34], eax
add esi, 4
call fcn.0055e9e3
mov dx, word [eax + 0x14]
mov cl, byte [eax + 0x10]
add dx, 0x76c
add esp, 4
inc cl
mov byte [esp + 0xdc], cl
movzx ecx, byte [esi]
mov word [esp + 0xda], dx
mov dl, byte [eax + 0xc]
mov eax, ecx
shr ecx, 2
inc esi
mov byte [esp + 0xdd], dl
lea edi, [esp + 0xe5]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [0x8927a4]
mov edx, dword [esi + 0x24420]
xor ecx, ecx
cmp edx, ebx
jle 0x412585
mov ebx, dword [esp + 0xc8]
xor edi, edi
cmp ecx, dword [esi + 0x24420]
jae 0x4125a5
mov eax, dword [esi + 0x2441c]
add eax, edi
cmp dword [eax], ebx
je 0x412599
inc ecx
add edi, 0xa0
cmp ecx, edx
jl 0x412566
lea ecx, [esp + 0xc8]
push ecx
add esi, 0x2441c
push esi
call fcn.00419220
mov byte [0x892d10], 1
jmp case.0x40fa9f.4116
push 0x80070057
call fcn.004010c0
cmp eax, 0x6107
jg 0x412792
je 0x4126d0
sub eax, 0x6032
je 0x41265d
sub eax, 0xcf
je 0x41261c
sub eax, 4
jne case.0x40fa9f.4116
lea edi, [edx + 0x1a964]
mov edx, dword [ebp + 0x10]
mov eax, dword [edx + 2]
call fcn.00417b40
mov eax, dword [0x8927a4]
cmp dword [eax + 0x18994], ebx
je case.0x40fa9f.4116
push 4
call fcn.00414140
mov ecx, dword [0x8927a4]
add esp, 4
mov dword [ecx + 0x18994], 0
jmp case.0x40fa9f.4116
mov eax, dword [ebp + 0x10]
cmp word [eax], bx
lea edi, [edx + 0x1a96c]
jne 0x412655
mov ecx, eax
mov eax, dword [ecx + 2]
call fcn.00417b40
mov esi, dword [0x892d3c]
push 0x6104
call fcn.00450180
mov edx, dword [0x892d3c]
push edx
call fcn.00450320
jmp case.0x40fa9f.4116
or eax, 0xffffffff
jmp 0x4129fd
xor eax, eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov eax, dword [ebp + 0x10]
mov ecx, eax
mov esi, dword [ecx]
mov dword [esp + 0x30], esi
mov esi, dword [ecx + 4]
mov ecx, dword [ecx + 8]
add eax, 0xc
mov dword [esp + 0x38], ecx
mov ecx, dword [eax]
add eax, 4
mov dword [esp + 0x40], ecx
mov cl, byte [eax]
movzx eax, byte [eax + 1]
mov byte [esp + 0x44], cl
lea ecx, [esp + 0x30]
push ecx
lea ebx, [edx + 0x2442c]
mov dword [esp + 0x38], esi
mov dword [esp + 0x4c], eax
call fcn.00419270
mov edx, dword [0x8927a4]
mov byte [edx + 0x2443c], 1
jmp case.0x40fa9f.4116
mov eax, dword [ebp + 0x10]
cmp word [eax], bx
jne case.0x40fa9f.4116
movzx ecx, word [edx + 0x80530]
mov ax, word [eax + 2]
push 0
push 0x5ef17c
push 0x5ef1b8
push 0
mov word [edx + ecx*2 + 0x80528], ax
call fcn.004cf280
mov ebx, 0x258
mov edi, eax
call fcn.004032b0
push eax
call fcn.0055ffd5
mov ecx, eax
add esp, 0x14
test ecx, ecx
jne 0x412774
push 0xa4
call fcn.0055e5a9
add esp, 4
mov dword [esp + 0x30], eax
test eax, eax
mov byte [esp + 0x7dc], 0x11
je 0x412758
mov ecx, dword [0x8927a4]
movzx edx, word [ecx + 0x80530]
movzx ecx, word [ecx + edx*2 + 0x80528]
push ecx
push eax
call fcn.00523670
jmp 0x41275a
xor eax, eax
push eax
mov byte [esp + 0x7e0], 4
call fcn.004cf280
mov ecx, eax
call fcn.00406b40
jmp case.0x40fa9f.4116
mov eax, dword [0x8927a4]
movzx edx, word [eax + 0x80530]
movzx eax, word [eax + edx*2 + 0x80528]
call fcn.005237b0
jmp case.0x40fa9f.4116
sub eax, 0x6109
je 0x4129ec
sub eax, 0xef8
je 0x412988
sub eax, 0x10
jne case.0x40fa9f.4116
mov eax, dword [ebp + 0x10]
cmp word [eax], bx
jne 0x4128c9
mov edi, eax
movzx ebx, word [edi + 2]
add edi, 2
lea esi, [edx + 0x80ccc]
add edi, 2
call fcn.00432830
test ebx, ebx
jle 0x4128c9
mov esi, ebx
mov edi, edi
xor ecx, ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x90], ecx
push 0xc
mov dword [esp + 0x98], ecx
lea edx, [esp + 0x7c]
mov dword [esp + 0x9c], ecx
push edi
push edx
mov dword [esp + 0xa8], ecx
call fcn.00560430
push 8
add edi, 0xc
lea eax, [esp + 0x95]
push edi
push eax
call fcn.00560430
mov eax, dword [edi + 8]
add edi, 8
mov ecx, dword [edi + 4]
add edi, 4
mov dx, word [edi + 4]
add edi, 4
mov dword [esp + 0xac], ecx
mov cx, word [edi + 2]
add edi, 2
add cx, 5
add dx, 5
add edi, 2
mov word [esp + 0xb2], cx
mov cx, word [edi]
mov word [esp + 0xb0], dx
movzx edx, cx
push edx
push eax
mov dword [esp + 0xb0], eax
lea eax, [esp + 0x98]
push eax
push str._s__d__d_n
mov word [esp + 0xc4], cx
add edi, 2
call fcn.0044db50
mov ecx, dword [0x8927a4]
add esp, 0x28
add ecx, 0x80ccc
lea eax, [esp + 0x78]
call fcn.00417e30
dec esi
jne 0x4127e0
push 0
push 0x5f0a84
push 0x5ef1b8
push 0
call fcn.004cf280
mov ebx, 0x15
mov edi, eax
call fcn.004032b0
push eax
call fcn.0055ffd5
add esp, 0x14
test eax, eax
jne case.0x40fa9f.4116
push 0xe8
call fcn.0055e5a9
add esp, 4
mov dword [esp + 0x30], eax
test eax, eax
mov byte [esp + 0x7dc], 0xf
je 0x412920
push eax
call fcn.0052fe50
mov esi, eax
jmp 0x412922
xor esi, esi
mov bl, 4
mov byte [esp + 0x7dc], bl
call fcn.004cf280
call fcn.00403410
push 0x94
call fcn.0055e5a9
add esp, 4
mov dword [esp + 0x30], eax
test eax, eax
mov byte [esp + 0x7dc], 0x10
je 0x412970
push eax
call fcn.00515e10
mov esi, eax
mov byte [esp + 0x7dc], bl
call fcn.004cf280
call fcn.00403410
jmp case.0x40fa9f.4116
xor esi, esi
mov byte [esp + 0x7dc], bl
call fcn.004cf280
call fcn.00403410
jmp case.0x40fa9f.4116
mov ecx, dword [ebp + 0x10]
cmp word [ecx], bx
jne case.0x40fa9f.4116
mov edi, ecx
movzx ebx, word [edi + 2]
add edi, 2
lea esi, [edx + 0x80cbc]
add edi, 2
call fcn.00432830
test ebx, ebx
jle case.0x40fa9f.4116
mov esi, ebx
mov edx, dword [edi]
mov ax, word [edi + 4]
add edi, 4
mov ecx, dword [edi + 2]
add ax, 5
mov word [esp + 0x34], ax
mov eax, dword [0x8927a4]
add edi, 2
add eax, 0x80cbc
lea ebx, [esp + 0x30]
mov dword [esp + 0x30], edx
mov dword [esp + 0x38], ecx
add edi, 4
call fcn.00417db0
dec esi
jne 0x4129b1
jmp case.0x40fa9f.4116
mov eax, dword [ebp + 0x10]
cmp word [eax], bx
jne case.0x40fa9f.4116
mov eax, dword [eax + 2]
lea edi, [edx + 0x1a974]
call fcn.00417b40
mov edx, dword [0x892d1c]
mov ecx, dword [edx*4 + 0x892698]
mov edx, dword [ebp + 0x10]
mov eax, dword [ecx]
push edx
mov edx, dword [ebp + 0xc]
push edx
mov edx, dword [ebp + 8]
push edx
call dword [eax + 4]
test byte [0x922440], 1
jne 0x412a4f
or dword [0x922440], 1
push 0x9223f8
mov byte [esp + 0x7e0], 0x12
call fcn.004ceae0
push 0x57cea0
call fcn.0055e9d1
add esp, 4
push 0x922428
mov dword [esp + 0x18], 0x922428
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [esp + 0x7dc], 0x13
mov esi, dword [esp + 0x5c]
lea edi, [esi + 1]
cmp esi, edi
jge 0x412a91
lea eax, [esp + 0x68]
push eax
lea ebx, [esp + 0x34]
mov eax, 0x922408
mov dword [esp + 0x34], esi
call fcn.00417970
inc esi
cmp esi, edi
jl 0x412a75
push 0x922428
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test byte [0x922440], 1
mov dword [esp + 0x60], vtable.Xenesis2::Foundation::Memory::xEncryptData_int_.0
jne 0x412ad3
or dword [0x922440], 1
push 0x9223f8
mov byte [esp + 0x7e0], 0x14
call fcn.004ceae0
push 0x57cea0
call fcn.0055e9d1
add esp, 4
mov esi, dword [esp + 0x64]
push 0x922428
mov dword [esp + 0x18], 0x922428
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea edi, [esi + 1]
cmp esi, edi
mov byte [esp + 0x7dc], 0x15
jge 0x412b1c
lea esp, [esp]
lea ecx, [esp + 0x68]
push ecx
lea ebx, [esp + 0x34]
mov eax, 0x922408
mov dword [esp + 0x34], esi
call fcn.00417970
inc esi
cmp esi, edi
jl 0x412b00
push 0x922428
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test byte [0x922440], 1
mov dword [esp + 0x70], vtable.Xenesis2::Foundation::Memory::xEncryptData_int_.0
jne 0x412b5e
or dword [0x922440], 1
push 0x9223f8
mov byte [esp + 0x7e0], 0x16
call fcn.004ceae0
push 0x57cea0
call fcn.0055e9d1
add esp, 4
mov esi, dword [esp + 0x74]
push 0x922428
mov dword [esp + 0x18], 0x922428
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea edi, [esi + 1]
cmp esi, edi
mov byte [esp + 0x7dc], 0x17
jge 0x412ba0
lea edx, [esp + 0x68]
push edx
lea ebx, [esp + 0x34]
mov eax, 0x922408
mov dword [esp + 0x34], esi
call fcn.00417970
inc esi
cmp esi, edi
jl 0x412b84
mov esi, dword [esp + 0xc4]
push 0x922428
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test byte [0x922440], 1
jne 0x412be1
or dword [0x922440], 1
push 0x9223f8
mov byte [esp + 0x7e0], 0x18
call fcn.004ceae0
push 0x57cea0
call fcn.0055e9d1
add esp, 4
push 0x922428
mov dword [esp + 0x18], 0x922428
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea edi, [esi + 1]
cmp esi, edi
mov byte [esp + 0x7dc], 0x19
jge 0x412c1f
lea eax, [esp + 0x68]
push eax
lea ebx, [esp + 0x34]
mov eax, 0x922408
mov dword [esp + 0x34], esi
call fcn.00417970
inc esi
cmp esi, edi
jl 0x412c03
push 0x922428
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test byte [0x922440], 1
mov dword [esp + 0x50], vtable.Xenesis2::Foundation::Memory::xEncryptData_int_.0
jne 0x412c64
or dword [0x922440], 1
push 0x9223f8
mov dword [esp + 0x7e0], 0x1a
call fcn.004ceae0
push 0x57cea0
call fcn.0055e9d1
add esp, 4
mov esi, dword [esp + 0x54]
push 0x922428
mov dword [esp + 0x18], 0x922428
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea edi, [esi + 1]
cmp esi, edi
mov dword [esp + 0x7dc], 0x1b
jge 0x412cac
lea ecx, [ecx]
lea ecx, [esp + 0x68]
push ecx
lea ebx, [esp + 0x34]
mov eax, 0x922408
mov dword [esp + 0x34], esi
call fcn.00417970
inc esi
cmp esi, edi
jl 0x412c90
push 0x922428
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [esp + 0x7d4]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret