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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x585871
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x7d0
push ebx
push esi
push edi
mov edi, vtable.Xenesis2::Foundation::Memory::xEncryptData_int_.0
push 1
mov dword [esp + 0x54], edi
call fcn.004d3720
mov ecx, eax
call fcn.0040aee0
push 1
lea ecx, [esp + 0x20]
push ecx
xor ebx, ebx
push eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x28], ebx
call fcn.004d3720
mov esi, eax
call fcn.0040ae40
mov dword [esp + 0x7e4], ebx
push 1
mov dword [esp + 0xcc], edi
call fcn.004d3720
mov ecx, eax
call fcn.0040aee0
push 1
lea edx, [esp + 0x20]
push edx
push eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0x28], ebx
call fcn.004d3720
mov esi, eax
call fcn.0040ae40
mov byte [esp + 0x7e4], 1
push 1
mov dword [esp + 0x7c], edi
call fcn.004d3720
mov ecx, eax
call fcn.0040aee0
push 1
lea ecx, [esp + 0x20]
push ecx
push eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x28], ebx
call fcn.004d3720
mov esi, eax
call fcn.0040ae40
mov byte [esp + 0x7e4], 2
push 1
mov dword [esp + 0x6c], edi
call fcn.004d3720
mov ecx, eax
call fcn.0040aee0
push 1
lea edx, [esp + 0x20]
push edx
push eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x28], ebx
call fcn.004d3720
mov esi, eax
call fcn.0040ae40
mov byte [esp + 0x7e4], 3
push 1
mov dword [esp + 0x64], edi
call fcn.004d3720
mov ecx, eax
call fcn.0040aee0
push 1
lea ecx, [esp + 0x20]
push ecx
push eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x28], ebx
call fcn.004d3720
mov esi, eax
call fcn.0040ae40
mov byte [esp + 0x7e4], 4
mov edx, dword [0x89e864]
mov eax, dword [edx + 0x8039c]
cmp eax, ebx
mov dword [esp + 0x2c], ebx
je 0x40fbf4
push eax
push 1
lea edx, [esp + 0x20]
push 1
push edx
mov byte [esp + 0x28], bl
call fcn.0056cf69
mov eax, dword [0x89e864]
mov ecx, dword [eax + 0x8039c]
mov edx, dword [0x89e784]
push ecx
push 4
add edx, 4
push 1
push edx
call fcn.0056cf69
mov eax, dword [0x89e864]
mov ecx, dword [eax + 0x8039c]
push ecx
push 4
lea edx, [ebp + 8]
push 1
push edx
call fcn.0056cf69
mov eax, dword [0x89e864]
mov ecx, dword [eax + 0x8039c]
push ecx
push 2
lea edx, [ebp + 0xc]
push 1
push edx
call fcn.0056cf69
mov eax, dword [0x89e864]
mov ecx, dword [eax + 0x8039c]
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 0x10]
add esp, 0x40
push ecx
push edx
push 1
push eax
call fcn.0056cf69
mov edx, dword [0x89e864]
add esp, 0x10
xor eax, eax
mov ecx, 0x41
lea edi, [esp + 0x6d0]
rep stosd dword es:[edi], eax
movzx eax, word [ebp + 0xc]
cmp eax, 0x3010
jg 0x411260
je 0x410e0b
cmp eax, 0x1060
jg 0x4105c0
je 0x41055e
sub eax, 0x1013
cmp eax, 0x3d
ja case.0x40fc3f.4116
movzx ecx, byte [eax + 0x412eec]
jmp dword [ecx*4 + 0x412ecc]
mov ebx, dword [ebp + 0x10]
mov ax, word [ebx]
add ebx, 2
test ax, ax
mov word [edx + 0x1a960], ax
mov dword [esp + 0x10], 0
jbe 0x40fcca
mov esi, 0x1a6e0
jmp 0x40fc70
mov eax, dword [ebx]
lea edi, [esi + edx - 0xa0]
call fcn.00417f50
mov ecx, dword [0x89e864]
mov eax, dword [ebx + 4]
add ebx, 4
lea edi, [esi + ecx]
call fcn.00417f50
mov edx, dword [0x89e864]
mov eax, dword [ebx + 4]
add ebx, 4
lea edi, [esi + edx + 0xa0]
call fcn.00417f50
mov edx, dword [0x89e864]
mov eax, dword [esp + 0x10]
movzx ecx, word [edx + 0x1a960]
add ebx, 4
inc eax
add esi, 8
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x40fc70
mov ax, word [ebx]
add ebx, 2
test ax, ax
mov word [edx + 0x1a962], ax
mov dword [esp + 0x10], 0
jbe case.0x40fc3f.4116
mov dword [esp + 0x58], 0x1a320
mov edi, dword [ebx]
cmp edi, 0x13
jle 0x40fcfc
mov edi, 0x13
mov eax, dword [esp + 0x58]
push 1
lea ecx, [esp + 0x20]
push ecx
mov ecx, dword [eax + edx + 4]
push ecx
mov dword [esp + 0x28], edi
call fcn.004d3720
mov esi, eax
call fcn.0040ae40
mov eax, dword [ebx + 4]
add ebx, 4
mov dword [esp + 0x1c], eax
mov eax, dword [0x89e864]
mov ecx, dword [eax + edi*8 + 0x1a3c4]
push 1
lea edx, [esp + 0x20]
push edx
push ecx
call fcn.004d3720
mov esi, eax
call fcn.0040ae40
mov eax, dword [ebx + 4]
add ebx, 4
mov dword [esp + 0x1c], eax
mov eax, dword [0x89e864]
mov ecx, dword [eax + edi*8 + 0x1a464]
push 1
lea edx, [esp + 0x20]
push edx
push ecx
call fcn.004d3720
mov esi, eax
call fcn.0040ae40
mov edx, dword [0x89e864]
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x58]
movzx ecx, word [edx + 0x1a962]
add ebx, 4
inc eax
add edi, 8
cmp eax, ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x58], edi
jl 0x40fcf0
jmp case.0x40fc3f.4116
mov edx, dword [ebp + 0x10]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esp + 0x34], eax
mov eax, dword [edx + 8]
mov dword [esp + 0x38], ecx
mov ecx, dword [edx + 0xc]
lea edx, [esp + 0x34]
push edx
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ecx
call fcn.00553420
add esp, 4
jmp case.0x40fc3f.4116
mov ecx, dword [ebp + 0x10]
mov ax, word [ecx]
cmp ax, bx
je 0x40fef9
movzx eax, ax
test eax, eax
lea ebx, [ecx + 2]
jle 0x40ffbb
mov dword [esp + 0x2c], eax
jmp 0x40fe00
mov edx, dword [0x89e864]
lea ebx, [ebx]
mov eax, ebx
mov ecx, dword [eax]
mov dword [esp + 0x80], ecx
mov ecx, dword [eax + 4]
mov dword [esp + 0x84], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x88], ecx
add ebx, 0x10
mov dword [esp + 0x8c], eax
mov ecx, ebx
mov eax, dword [ecx]
mov dword [esp + 0x34], eax
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x38], eax
lea esi, [esp + 0x80]
lea edi, [esp + 0x34]
mov eax, edx
mov byte [esp + 0x91], 0
mov dword [esp + 0x3c], ecx
mov byte [esp + 0x41], 0
add ebx, 0xc
call fcn.004310f0
mov eax, dword [0x89e864]
mov edx, edi
push edx
add eax, 0x803d8
push eax
call fcn.00571d16
add esp, 8
test eax, eax
jne 0x40fea3
mov eax, dword [0x89edfc]
mov ecx, esi
push ecx
mov edx, 0x10
call fcn.00452250
push eax
call fcn.00452290
mov edx, dword [0x89e864]
mov byte [edx + 0x803d8], 0
mov ecx, dword [0x89e864]
lea eax, [esp + 0x34]
push eax
add ecx, 0x805d0
push ecx
call fcn.00571d16
add esp, 8
test eax, eax
jne 0x40feea
mov eax, dword [0x89edfc]
lea edx, [esp + 0x80]
push edx
mov edx, 0x10
call fcn.00452250
push eax
call fcn.00452290
mov eax, dword [0x89e864]
mov byte [eax + 0x805d0], 0
dec dword [esp + 0x2c]
jne 0x40fdf4
jmp 0x40ffbb
mov eax, dword [ebp + 0x10]
movzx eax, word [eax + 0xe]
mov ecx, dword [0x89eddc]
mov ecx, dword [ecx*4 + 0x89e758]
mov edx, dword [ecx]
push eax
mov eax, dword [0x89edfc]
movzx eax, word [eax + 0x40a0]
push eax
call dword [edx + 0x10]
mov esi, dword [0x89e864]
add esi, 0x809d4
push 0x36
xor cl, cl
call fcn.004149c0
mov eax, dword [0x89eddc]
add esp, 4
cmp eax, 4
jne 0x40ffbb
push 0
push 0x5fca60
push 0x5fb1f4
push 0
call fcn.004d3b30
mov ebx, 0x29
mov edi, eax
call fcn.00403270
push eax
call fcn.0056c845
add esp, 0x14
test eax, eax
je 0x40ff8a
mov dl, 1
push 0
mov cl, dl
lea esi, [esp + 0x38]
call fcn.0044e720
push eax
call fcn.004d3b30
mov ecx, eax
call fcn.0044e8d0
push 0
push 0x5fcb7c
push 0x5fb1f4
push 0
call fcn.004d3b30
mov ebx, 0x2d
mov edi, eax
call fcn.00403270
push eax
call fcn.0056c845
add esp, 0x14
test eax, eax
je 0x40ffbb
call fcn.0051a6a0
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x10]
push ecx
push 0x8a5480
call fcn.00404e20
jmp case.0x40fc3f.4116
mov eax, dword [ebp + 0x10]
mov ebx, dword [eax]
add eax, 4
mov dword [esp + 0x10], eax
cmp dword [0x89eddc], 0xb
mov dword [esp + 0x2c], ebx
jne 0x40fffb
test ebx, ebx
jg case.0x40fc3f.4116
cmp ebx, 0xfffffffd
je case.0x40fc3f.4116
xor eax, eax
mov byte [esp + 0x2d0], 0
mov ecx, 0xff
lea edi, [esp + 0x2d1]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push 0x1770
push 0x8a3708
stosb byte es:[edi], al
call fcn.0044ee40
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x410027
lea edi, [esp + 0x2d0]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x410038
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.0x41005c
jmp dword [eax*4 + 0x412f2c]
push 0x1772
push 0x8a3708
call fcn.0044ee40
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x410074
lea edi, [esp + 0x2d0]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x410085
jmp 0x410179
push 0x1773
push 0x8a3708
call fcn.0044ee40
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4100a3
lea edi, [esp + 0x2d0]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4100b4
jmp 0x410179
push 0x1774
push 0x8a3708
call fcn.0044ee40
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4100d2
lea edi, [esp + 0x2d0]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4100e3
jmp 0x410179
push 0x1775
push 0x8a3708
call fcn.0044ee40
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x410101
lea edi, [esp + 0x2d0]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x410112
jmp 0x410179
push 0x1776
push 0x8a3708
call fcn.0044ee40
mov edx, eax
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x410130
lea edi, [esp + 0x2d0]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x410141
jmp 0x410179
push 0x1771
push 0x8a3708
call fcn.0044ee40
mov edx, eax
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x410160
lea edi, [esp + 0x2d0]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x410171
mov ebx, dword [esp + 0x10]
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 0x4102ae
push 0x1777
push 0x8a3708
call fcn.0044ee40
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4101a8
lea edi, [esp + 0x2d0]
sub eax, edx
dec edi
lea esp, [esp]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4101c0
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 0x41021e
cmp byte [ebx + 1], 0x48
jne 0x41021e
push 0x177a
push 0x8a3708
call fcn.0044ee40
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4101f5
lea edi, [esp + 0x2d0]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x410206
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 0x4102ae
cmp byte [ebx + 1], 0x4d
jne 0x410269
push 0x1778
push 0x8a3708
call fcn.0044ee40
mov edx, eax
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x410240
lea edi, [esp + 0x2d0]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x410251
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 0x4102ae
cmp byte [ebx + 1], 0x44
jne 0x4102ae
push 0x1779
push 0x8a3708
call fcn.0044ee40
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x410285
lea edi, [esp + 0x2d0]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x410296
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 + 0x10], ebx
je 0x410406
push 0x177b
push 0x8a3708
call fcn.0044ee40
mov esi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4102d1
lea edi, [esp + 0x2d0]
sub eax, esi
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4102e2
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ebx, dword [esp + 0x10]
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 + 0xd1]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [esp + 0xd0]
push eax
mov dword [esp + 0xd4], edx
call fcn.0056cb22
mov cx, word [ebx + 4]
lea edx, [esp + 0xd4]
push edx
mov esi, eax
mov byte [esp + 0xda], 0
mov word [esp + 0xd8], cx
call fcn.0056cb22
mov edi, eax
mov ax, word [ebx + 6]
lea ecx, [esp + 0xd8]
push ecx
mov word [esp + 0xdc], ax
call fcn.0056cb22
mov edx, dword [esp + 0x1c]
mov ebx, eax
mov ax, word [edx + 8]
lea ecx, [esp + 0xdc]
push ecx
mov word [esp + 0xe0], ax
call fcn.0056cb22
mov edx, dword [esp + 0x20]
mov dword [esp + 0x2c], eax
mov ax, word [edx + 0xa]
lea ecx, [esp + 0xe0]
push ecx
mov word [esp + 0xe4], ax
call fcn.0056cb22
mov edx, dword [esp + 0x30]
add esp, 0x14
push eax
push edx
push ebx
push edi
push esi
push 0x177c
push 0x8a3708
call fcn.0044ee40
push eax
lea eax, [esp + 0xe8]
push eax
call fcn.0056aefc
lea eax, [esp + 0xec]
add esp, 0x1c
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4103d8
lea edi, [esp + 0x2d0]
sub eax, ecx
mov esi, ecx
dec edi
jmp 0x4103f0
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4103f0
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 + 0x10]
mov ebx, dword [ecx + 0xc]
test ebx, ebx
je 0x4104c9
push 0x177e
push 0x8a3708
call fcn.0044ee40
mov esi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x410426
lea edi, [esp + 0x2d0]
sub eax, esi
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x410437
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 0x8a3708
call fcn.0044ee40
push eax
lea edx, [esp + 0xe0]
push edx
call fcn.0056aefc
lea eax, [esp + 0xe4]
add esp, 0x14
mov ecx, eax
lea ecx, [ecx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4104a0
lea edi, [esp + 0x2d0]
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4104b3
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 + 0x2c]
test eax, eax
jg 0x4104ed
cmp eax, 0xfffffffd
je 0x4104ed
mov al, 1
lea esi, [esp + 0x2d0]
push eax
call fcn.00414a90
add esp, 4
jmp case.0x40fc3f.4116
xor al, al
lea esi, [esp + 0x2d0]
push eax
call fcn.00414a90
add esp, 4
jmp case.0x40fc3f.4116
mov eax, dword [ebp + 0x10]
mov esi, dword [eax]
cmp esi, ebx
lea edi, [edx + 0x80678]
je 0x410534
mov al, 1
call fcn.004182c0
mov edi, dword [0x89e864]
mov eax, esi
imul eax, dword [0x5fb2d4]
add edi, 0x80680
jmp 0x412bfc
xor al, al
call fcn.004182c0
mov edi, dword [0x89e864]
add edi, 0x80680
xor eax, eax
jmp 0x412bfc
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx]
lea edi, [edx + 0x1a98c]
jmp 0x412bfc
lea edi, [edx + 0x2448c]
mov edx, dword [ebp + 0x10]
mov eax, dword [edx]
call fcn.00417f50
mov ecx, dword [0x89e864]
add ecx, 0x2448c
call fcn.00432f90
cmp eax, 1
jne 0x410595
push 0x46
xor cl, cl
call fcn.00414860
add esp, 4
jmp case.0x40fc3f.4116
mov ecx, dword [0x89e864]
add ecx, 0x2448c
call fcn.00432f90
cmp eax, 3
jne case.0x40fc3f.4116
push 0x52
xor cl, cl
call fcn.00414860
add esp, 4
jmp case.0x40fc3f.4116
cmp eax, 0x1ffa
jg 0x4109ea
je 0x4109b2
sub eax, 0x1079
je 0x410995
sub eax, 0x18
je 0x4105fd
sub eax, 0xf67
jne case.0x40fc3f.4116
push 0x45
mov cl, 1
call fcn.00414860
add esp, 4
jmp case.0x40fc3f.4116
mov esi, dword [ebp + 0x10]
cmp byte [esi], 0
jne 0x410976
mov eax, dword [0x89eddc]
cmp eax, 9
je 0x410914
cmp eax, 3
je 0x410914
cmp eax, 0xd
jne 0x410695
mov esi, dword [0x89edfc]
push 0x3200
call fcn.004511d0
mov eax, dword [0x89edfc]
mov esi, dword [eax + 0x4098]
mov ecx, dword [0x89e864]
mov dl, byte [ecx + 0x2482c]
mov byte [esi + eax + 0x98], dl
mov edi, dword [eax + 0x4098]
inc edi
mov dword [eax + 0x4098], edi
mov cl, byte [ecx + 0x2482d]
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.00451370
push 3
call fcn.00414340
add esp, 4
jmp case.0x40fc3f.4116
mov al, byte [esi + 2]
add esi, 2
cmp al, 0xfe
je 0x4106a3
cmp al, 0x10
jbe 0x4106e5
cmp al, 0xff
je 0x4106e5
mov word [edx + 0x2482c], 0xffff
xor esi, esi
jmp 0x4106c0
mov edx, dword [0x89e864]
lea ebx, [ebx]
lea edi, [esi + edx + 0x1a9a4]
xor eax, eax
call fcn.00417f50
add esi, 8
cmp esi, 0x30
jl 0x4106b4
push 0xd
call fcn.00414340
add esp, 4
jmp case.0x40fc3f.4116
inc esi
mov byte [edx + 0x2482c], al
mov al, byte [esi]
cmp al, 0xfe
je 0x4106f6
cmp al, 0x10
jbe 0x410735
cmp al, 0xff
je 0x410735
mov word [edx + 0x2482c], 0xffff
xor esi, esi
jmp 0x410710
mov edx, dword [0x89e864]
lea ecx, [ecx]
lea edi, [esi + edx + 0x1a9a4]
xor eax, eax
call fcn.00417f50
add esi, 8
cmp esi, 0x30
jl 0x410707
push 0xd
call fcn.00414340
add esp, 4
jmp case.0x40fc3f.4116
mov byte [edx + 0x2482d], al
mov al, 7
inc esi
mov byte [esp + 0x34], 1
mov byte [esp + 0x35], 2
mov byte [esp + 0x36], 6
mov byte [esp + 0x37], al
mov byte [esp + 0x38], 0xa
mov byte [esp + 0x39], 0xb
mov byte [esp + 0x1c], 0
mov byte [esp + 0x1d], 1
mov byte [esp + 0x1e], 2
mov byte [esp + 0x1f], 3
mov byte [esp + 0x20], al
mov byte [esp + 0x21], 0xf
mov dword [esp + 0x10], 0
mov ebx, 0x1a9a4
jmp 0x410790
mov edx, dword [0x89e864]
lea ecx, [ecx]
mov ecx, dword [esp + 0x10]
movzx eax, byte [esi]
lea edi, [edx + ecx*8 + 0x1a9a4]
call fcn.00417f50
mov edx, dword [0x89e864]
mov eax, dword [esp + 0x10]
lea ecx, [edx + eax*8 + 0x1a9a4]
inc esi
call fcn.00432f90
cmp eax, 0xff
jne 0x41080e
mov ecx, dword [esp + 0x10]
mov edx, dword [0x89e864]
movzx eax, byte [esi]
inc ecx
lea edi, [edx + ecx*8 + 0x1a9a4]
mov dword [esp + 0x10], ecx
add ebx, 8
call fcn.00417f50
inc esi
xor edi, edi
jmp 0x4107f0
mov eax, dword [0x89e864]
lea ecx, [ebx + eax]
call fcn.00432f90
movzx ecx, byte [esp + edi + 0x34]
cmp eax, ecx
je 0x41082d
inc edi
cmp edi, 6
jl 0x4107f0
jmp 0x41082d
xor edi, edi
mov edx, dword [0x89e864]
lea ecx, [ebx + edx]
call fcn.00432f90
movzx ecx, byte [esp + edi + 0x1c]
cmp eax, ecx
je 0x41082d
inc edi
cmp edi, 6
jl 0x410810
cmp edi, 6
je 0x41084a
mov edx, dword [esp + 0x10]
inc edx
add ebx, 8
cmp ebx, 0x1a9d4
mov dword [esp + 0x10], edx
jl 0x410787
cmp dword [esp + 0x10], 6
je 0x4108cf
push 0xd
call fcn.00414340
add esp, 4
lea ecx, [esp + 0x60]
mov byte [esp + 0x7e4], 3
call fcn.00417ee0
lea ecx, [esp + 0x68]
mov byte [esp + 0x7e4], 2
call fcn.00417ee0
lea ecx, [esp + 0x78]
mov byte [esp + 0x7e4], 1
call fcn.00417ee0
lea ecx, [esp + 0xc8]
mov byte [esp + 0x7e4], 0
call fcn.00417ee0
lea ecx, [esp + 0x50]
mov dword [esp + 0x7e4], 0xffffffff
call fcn.00417ee0
mov ecx, dword [esp + 0x7dc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor esi, esi
mov eax, dword [0x89e864]
lea ecx, [esi + eax + 0x1a9a4]
lea edi, [esi + eax + 0x1a9d4]
call fcn.00417f00
add esi, 8
cmp esi, 0x30
jl 0x4108d1
mov eax, dword [0x89eddc]
cmp eax, 2
je 0x410900
cmp eax, 0xd
jne 0x410914
push 3
mov dword [0x5fb2f0], 0xffffffff
call fcn.00414340
add esp, 4
mov esi, dword [0x89edfc]
push 0x3200
call fcn.004511d0
mov eax, dword [0x89edfc]
mov esi, dword [eax + 0x4098]
mov ecx, dword [0x89e864]
mov dl, byte [ecx + 0x2482c]
mov byte [esi + eax + 0x98], dl
mov esi, dword [eax + 0x4098]
inc esi
mov dword [eax + 0x4098], esi
mov cl, byte [ecx + 0x2482d]
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.00451370
jmp case.0x40fc3f.4116
push ebx
push 0xc3502
push 0x8a3708
call fcn.0044ee40
mov esi, eax
call fcn.00414a90
add esp, 4
jmp case.0x40fc3f.4116
mov edx, dword [ebp + 0x10]
cmp word [edx], bx
jne case.0x40fc3f.4116
push 0x47
xor cl, cl
call fcn.00414860
add esp, 4
jmp case.0x40fc3f.4116
mov ecx, dword [ebp + 0x10]
mov eax, 0x88888889
mul dword [ecx]
shr edx, 5
push edx
lea edx, [esp + 0x6d4]
push str._:__dMinute
push edx
call fcn.0056aefc
push 0x5b
lea esi, [esp + 0x6e0]
xor cl, cl
call fcn.004149c0
add esp, 0x10
jmp case.0x40fc3f.4116
sub eax, 0x2001
je 0x410b92
sub eax, 0xd
je 0x410a48
dec eax
jne case.0x40fc3f.4116
mov eax, dword [0x89eddc]
cmp eax, 3
jne 0x410a19
cmp dword [0x89e744], 3
je 0x410a2f
jmp case.0x40fc3f.4116
cmp eax, 4
jne case.0x40fc3f.4116
cmp dword [0x89e744], 4
jne case.0x40fc3f.4116
mov eax, dword [ebp + 0x10]
movzx ecx, byte [eax]
mov byte [ecx + edx + 0x20345], 0
dec byte [edx + 0x20344]
jmp case.0x40fc3f.4116
mov eax, dword [0x89eddc]
cmp eax, 3
jne 0x410a60
cmp dword [0x89e744], 3
je 0x410a76
jmp case.0x40fc3f.4116
cmp eax, 7
jne case.0x40fc3f.4116
cmp dword [0x89e744], 4
jne case.0x40fc3f.4116
mov eax, dword [ebp + 0x10]
mov cl, byte [eax]
movzx edi, cl
mov byte [edi + edx + 0x20345], 1
mov ecx, edi
imul ecx, ecx, 0xd
lea esi, [ecx + edx + 0x20445]
xor ecx, ecx
mov ebx, esi
mov dword [ebx], ecx
mov dword [ebx + 4], ecx
mov dword [ebx + 8], ecx
mov byte [ebx + 0xc], cl
inc eax
mov ecx, eax
mov ebx, dword [ecx]
mov dword [esi], ebx
mov ebx, dword [ecx + 4]
mov dword [esi + 4], ebx
mov ecx, dword [ecx + 8]
mov dword [esi + 8], ecx
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 + 0x22148], ecx
mov esi, dword [eax - 8]
lea ecx, [edx + edi*8]
add ecx, edi
mov dword [ecx + 0x22948], esi
mov esi, dword [eax - 4]
mov dword [ecx + 0x2294c], esi
mov bl, byte [ecx + 0x2294f]
test bl, bl
jns 0x410afe
mov bl, byte [ecx + 0x2294e]
test bl, bl
js 0x410afe
mov byte [ecx + 0x2294f], 0
mov byte [ecx + 0x22950], 0
mov cx, word [eax]
add cx, 5
mov word [edx + edi*2 + 0x23248], cx
mov cx, word [eax + 2]
add eax, 2
add cx, 5
mov word [edx + edi*2 + 0x23448], cx
mov cx, word [eax + 2]
add eax, 2
add cx, 5
mov word [edx + edi*2 + 0x23a48], cx
add eax, 2
mov ax, word [eax]
push 0
mov word [edx + edi*2 + 0x23c48], ax
mov bl, byte [edx + 0x20344]
push 0x5fcafc
push 0x5fb1f4
inc bl
push 0
mov byte [edx + 0x20344], bl
call fcn.004d3b30
mov ebx, 0x24
mov edi, eax
call fcn.00403270
push eax
call fcn.0056c845
add esp, 0x14
test eax, eax
je case.0x40fc3f.4116
mov ecx, eax
call fcn.005149f0
jmp case.0x40fc3f.4116
mov ecx, dword [ebp + 0x10]
cmp word [ecx], bx
jne case.0x40fc3f.4116
mov dword [edx + 0x24548], 0xffffffff
call fcn.00424700
call fcn.00423e00
mov eax, 0x8a38b0
call fcn.00459df0
mov ebx, dword [ebp + 0x10]
movzx edx, word [ebx + 2]
mov esi, dword [0x89e864]
add ebx, 2
add ebx, 3
mov dword [esi + 0x20340], edx
mov al, byte [ebx]
inc ebx
test al, al
mov byte [esi + 0x20344], al
mov dword [esp + 0x2c], 0
jbe 0x410cda
mov edi, edi
mov al, byte [ebx]
movzx eax, al
mov ecx, eax
imul ecx, ecx, 0xd
mov byte [eax + esi + 0x20345], 1
add ecx, esi
inc ebx
mov dword [esp + 0x1c], ecx
add ecx, 0x20445
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 + 0x1c]
add ebx, 0xc
mov byte [ecx + 0x20451], 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 + 0x22148], ecx
lea ecx, [eax + edx]
mov edx, dword [ebx - 8]
mov dword [ecx + 0x22948], edx
mov edx, dword [ebx - 4]
mov dword [ecx + 0x2294c], edx
mov dl, byte [ecx + 0x2294f]
test dl, dl
jns 0x410c76
mov dl, byte [ecx + 0x2294e]
test dl, dl
js 0x410c76
mov byte [ecx + 0x2294f], 0
mov byte [ecx + 0x22950], 0
mov cx, word [ebx]
add cx, 5
mov word [esi + eax*2 + 0x23248], cx
mov dx, word [ebx + 2]
add ebx, 2
add dx, 5
add ebx, 2
mov word [esi + eax*2 + 0x23448], dx
mov cx, word [ebx]
add cx, 5
add ebx, 2
mov word [esi + eax*2 + 0x23a48], cx
mov dx, word [ebx]
mov word [esi + eax*2 + 0x23c48], dx
mov eax, dword [esp + 0x2c]
movzx ecx, byte [esi + 0x20344]
add ebx, 2
inc eax
cmp eax, ecx
mov dword [esp + 0x2c], eax
jl 0x410bf0
movzx edx, byte [esi + 0x20344]
imul edx, edx, 0x1a
mov eax, 0xfffffffa
sub eax, edx
mov edx, dword [ebp + 8]
add edx, eax
xor eax, eax
mov byte [esp + 0xd0], 0
mov ecx, 0x7f
lea edi, [esp + 0xd1]
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 + 0x2c], edx
jle 0x410d7f
mov cl, byte [edx + ebx]
cmp cl, 0xa
jne 0x410d6b
lea eax, [esp + 0xd0]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x410d33
push 0
push 0
sub eax, edx
push eax
lea ecx, [esp + 0xdc]
push ecx
push 0
push 2
push esi
xor eax, eax
call fcn.00423ee0
mov edx, dword [esp + 0x2c]
mov ecx, 0x80
xor eax, eax
lea edi, [esp + 0xd0]
rep stosd dword es:[edi], eax
jmp 0x410d73
mov byte [esp + eax + 0xd0], cl
inc eax
mov ecx, dword [ebp + 8]
inc edx
cmp edx, ecx
mov dword [esp + 0x2c], edx
jl 0x410d21
lea eax, [esp + 0xd0]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x410d90
push 0
push 0
sub eax, edx
push eax
lea edx, [esp + 0xdc]
push edx
push 0
push 2
push esi
xor eax, eax
call fcn.00423ee0
cmp dword [0x89eddc], 3
jne 0x410e01
push 0
push 0x5fca9c
push 0x5fb1f4
push 0
call fcn.004d3b30
mov ebx, 0x1f
mov edi, eax
call fcn.00403270
push eax
call fcn.0056c845
mov edi, eax
add esp, 0x14
test edi, edi
je 0x410e01
call fcn.00518a30
mov eax, dword [0x89e864]
mov esi, dword [eax + 0x20340]
add esi, 0x78
call fcn.00518ad0
call fcn.00432590
jmp case.0x40fc3f.4116
mov eax, dword [0x89eddc]
cmp eax, 3
je 0x410e3e
cmp eax, 9
jne 0x410e28
cmp dword [0x89e744], 9
je 0x410e3e
jmp case.0x40fc3f.4116
cmp eax, 0xb
jne case.0x40fc3f.4116
cmp dword [0x89e744], 0xb
jne case.0x40fc3f.4116
mov eax, 0x8a38b0
call fcn.00459e40
mov esi, dword [ebp + 0x10]
mov al, byte [esi]
mov ebx, dword [0x89e864]
mov edx, dword [ebx + 0x263c0]
add ebx, 0x263a0
movzx edi, al
inc esi
inc edx
push edi
mov dword [ebx + 0x20], edx
call fcn.0041bd20
mov eax, dword [0x89e864]
xor edx, edx
lea ecx, [edi + edi*4]
shl ecx, 2
mov dword [esp + 0x1c], ecx
lea ecx, [ecx + eax + 0x24669]
mov ebx, ecx
mov dword [ebx], edx
mov dword [ebx + 4], edx
mov dword [ebx + 8], edx
mov dword [ebx + 0xc], edx
mov dword [ebx + 0x10], edx
mov edx, esi
mov ebx, dword [edx]
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 + 0x1c]
mov byte [ecx + eax + 0x24675], 0
mov dl, byte [esi + 0xc]
add esi, 0xc
test dl, dl
sete bl
mov byte [edi + eax + 0x806d8], bl
mov edx, dword [esi + 1]
inc esi
mov dword [eax + edi*4 + 0x2470c], edx
mov cx, word [esi + 4]
add esi, 4
mov word [eax + edi*2 + 0x2474c], cx
mov edx, dword [esi + 2]
add esi, 2
mov dword [eax + edi*4 + 0x2472c], edx
mov cx, word [esi + 4]
add esi, 4
mov word [eax + edi*2 + 0x2475c], cx
mov dl, byte [esi + 2]
add esi, 2
mov byte [eax + edi*2 + 0x2482e], dl
mov cl, byte [esi + 1]
inc esi
mov byte [eax + edi*2 + 0x2482f], cl
mov dl, byte [esi + 1]
mov byte [edi + eax + 0x2483e], dl
mov byte [edi + eax + 0x24846], 1
inc esi
mov ecx, dword [esi + 1]
inc esi
lea eax, [eax + edi*8]
add eax, edi
mov dword [eax + 0x24621], ecx
mov edx, dword [esi + 4]
mov cl, byte [eax + 0x2294f]
test cl, cl
mov byte [esp + 0x17], bl
mov dword [eax + 0x24625], edx
mov byte [eax + 0x24629], 0
jns 0x410f64
mov cl, byte [eax + 0x2294e]
test cl, cl
js 0x410f64
mov byte [eax + 0x2294f], 0
mov cx, word [esi + 8]
mov eax, dword [0x89e864]
add esi, 8
add cx, 5
mov word [eax + edi*2 + 0x2484e], cx
mov dx, word [esi + 2]
add esi, 2
add dx, 5
mov word [eax + edi*2 + 0x2485e], dx
mov cx, word [esi + 2]
add esi, 2
add cx, 5
add esi, 2
mov word [eax + edi*2 + 0x2487e], cx
mov dx, word [esi]
mov word [eax + edi*2 + 0x2486e], dx
mov dl, byte [eax + 0x245f1]
add esi, 2
inc dl
mov byte [eax + 0x245f1], dl
movzx ecx, word [esi]
mov dword [esp + 0x1c], ecx
add esi, 2
xor edx, edx
lea ecx, [edi*4]
jmp 0x410fe0
mov bl, byte [esp + 0x17]
lea ebx, [ebx]
cmp edx, 3
jne 0x410ff1
mov word [eax + ecx*2 + 0x24772], 0x8000
jmp 0x411006
neg bl
lea ecx, [edx + ecx + 0x123b6]
sbb ebx, ebx
and ebx, 0x8000
mov word [eax + ecx*2], bx
lea ecx, [edi*4]
lea ebx, [edx + ecx + 0x91eb]
inc edx
cmp edx, 4
mov dword [eax + ebx*4], 0
jl 0x410fd6
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jle 0x411154
mov dword [esp + 0x2c], ecx
mov ebx, dword [esi]
cmp ebx, 0x31999
jle 0x4110f4
cmp ebx, 0x34000
jge 0x4110f4
lea ecx, [esp + 0x2d0]
call fcn.0040afa0
push ebx
lea edx, [esp + 0x2d4]
mov byte [esp + 0x7e8], 8
mov eax, dword [0x89e864]
push edx
push eax
mov al, 1
call fcn.0042efd0
movzx eax, byte [esp + 0x2d9]
dec eax
je 0x4110ae
dec eax
jne 0x4110d9
mov eax, dword [0x89e864]
mov ecx, edi
shl ecx, 4
mov dword [ecx + eax + 0x247b4], ebx
cmp dword [0x89eddc], 3
mov byte [edi + eax + 0x26338], 1
je 0x4110d9
push edi
push eax
call fcn.00432090
jmp 0x4110d9
mov eax, dword [0x89e864]
mov ecx, dword [0x89eddc]
lea edx, [edi + 0x247b]
shl edx, 4
cmp ecx, 3
mov dword [edx + eax], ebx
mov byte [edi + eax + 0x26330], 1
je 0x4110d9
push edi
push eax
call fcn.00431f70
lea ecx, [esp + 0x2d0]
mov byte [esp + 0x7e4], 4
call fcn.00413330
mov eax, dword [0x89e864]
jmp 0x411142
mov ecx, ebx
sar ecx, 0x10
and cl, 0xf
and ebx, 0x7fff
cmp cl, 3
jne 0x41111e
or ebx, 0x8000
lea ecx, [edi*4]
mov word [eax + ecx*2 + 0x24772], bx
jmp 0x411142
mov dl, byte [esp + 0x17]
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 + 0x2476c], dx
mov ecx, dword [esp + 0x2c]
add esi, 4
dec ecx
mov dword [esp + 0x2c], ecx
jne 0x411031
mov cl, byte [esi]
lea esi, [eax + edi*8 + 0x262f0]
test byte [0x92e648], 1
mov byte [esp + 0x18], cl
jne 0x411198
or dword [0x92e648], 1
push 0x92e600
mov byte [esp + 0x7e8], 9
call fcn.004d3390
push 0x589b40
call fcn.0056b241
add esp, 4
mov byte [esp + 0x7e4], 4
mov ecx, dword [esi + 4]
push 1
lea eax, [esp + 0x1c]
push eax
push ecx
mov esi, 0x92e600
call fcn.0040ae40
test byte [0x92e648], 1
jne 0x4111e4
or dword [0x92e648], 1
push 0x92e600
mov byte [esp + 0x7e8], 0xa
call fcn.004d3390
push 0x589b40
call fcn.0056b241
add esp, 4
mov byte [esp + 0x7e4], 4
push 0x92e630
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov al, byte [0x92e62c]
push 0x92e630
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call fcn.0056ce40
cdq
mov ecx, 6
idiv ecx
mov ecx, dword [0x89e864]
mov eax, dword [ecx + edi*4 + 0x2472c]
mov esi, edi
mov dword [ecx + edi*4 + 0x26340], edx
xor edx, edx
mov dx, word [ecx + edi*2 + 0x2475c]
push edx
push eax
mov ax, word [ecx + edi*2 + 0x2474c]
mov ecx, dword [ecx + edi*4 + 0x2470c]
mov edx, 0x8a38b0
call fcn.00459eb0
mov eax, dword [0x89e77c]
test eax, eax
je case.0x40fc3f.4116
mov ecx, edi
call fcn.00504bc0
jmp case.0x40fc3f.4116
cmp eax, 0x6005
jg 0x41279f
je 0x41266e
cmp eax, 0x4501
jg 0x411df9
je 0x411de1
cmp eax, 0x3020
je 0x411984
cmp eax, 0x3400
je 0x4118d4
cmp eax, 0x4410
jne case.0x40fc3f.4116
lea ecx, [edx + 0x272b4]
call fcn.00418340
test al, al
jne 0x4118bc
mov edi, dword [0x89e864]
add edi, 0x272b4
mov al, 1
call fcn.004182c0
mov ecx, dword [ebp + 0x10]
mov al, byte [ecx]
mov ecx, dword [0x89e864]
test al, al
setne dl
mov byte [ecx + 0x272c4], al
mov byte [ecx + 0x272c5], dl
lea ecx, [esp + 0x1c]
call fcn.00417e00
lea ecx, [esp + 0x34]
mov byte [esp + 0x7e4], 0xb
call fcn.00417e00
mov eax, 0xeeaeaec0
lea ecx, [esp + 0x1c]
mov byte [esp + 0x7e4], 0xc
call fcn.00418100
mov eax, 0xeeaeaec0
lea ecx, [esp + 0x34]
call fcn.00418100
mov ecx, dword [0x89e864]
add ecx, 0x24604
call fcn.00432f90
cmp eax, 3
jne 0x41136d
mov eax, dword [0x89e864]
mov cl, byte [eax + 0x272c4]
test cl, cl
lea ecx, [eax + 0x5801c]
je 0x411354
lea ecx, [eax + 0x58024]
call fcn.00432f90
mov ecx, 0x5fc7ac
mov esi, eax
call fcn.00432f90
cmp esi, eax
jl 0x4113fb
mov ecx, dword [0x89e864]
add ecx, 0x263c4
call fcn.00432f90
dec eax
cmp eax, 7
ja case.default.0x411384
jmp dword [eax*4 + 0x412f40]
mov eax, 0xeeaeaea4
lea ecx, [esp + 0x1c]
call fcn.00418100
mov eax, 0xeeaeaec3
jmp 0x4113f2
mov eax, 0xeeaeae56
lea ecx, [esp + 0x1c]
call fcn.00418100
mov eax, 0xeeaeaec6
jmp 0x4113f2
mov eax, 0xeeaeae08
lea ecx, [esp + 0x1c]
call fcn.00418100
mov eax, 0xeeaeaec9
jmp 0x4113f2
mov eax, 0xeeaeafec
lea ecx, [esp + 0x1c]
call fcn.00418100
mov eax, 0xeeaeaecc
jmp 0x4113f2
mov eax, 0xeeaeaec0
lea ecx, [esp + 0x1c]
call fcn.00418100
mov eax, 0xeeaeaec0
lea ecx, [esp + 0x34]
call fcn.00418100
mov eax, dword [0x89e864]
xor ebx, ebx
xor esi, esi
jmp 0x411410
mov cl, byte [ebx + eax + 0x26639]
test cl, cl
je 0x411497
mov cl, byte [ebx + eax + 0x26652]
cmp cl, byte [eax + 0x272c4]
jne 0x411497
lea ecx, [esi + eax + 0x267a4]
call fcn.00432f90
mov ecx, 0x5fc7ac
mov edi, eax
call fcn.00432f90
lea ecx, [esp + 0x1c]
add edi, eax
call fcn.00432f90
imul edi, eax
mov ecx, 0x5fc7ac
call fcn.00432f90
mov ecx, eax
mov eax, edi
cdq
idiv ecx
mov ecx, dword [0x89e864]
push eax
push ebx
call fcn.00432770
lea ecx, [esp + 0x34]
call fcn.00432f90
mov edx, dword [0x89e864]
push eax
lea edi, [edx + ebx*8 + 0x27144]
call fcn.00418060
mov eax, dword [0x89e864]
add esi, 0x40
inc ebx
cmp esi, 0x200
jl 0x411410
lea ecx, [esp + 0x34]
mov byte [esp + 0x7e4], 0xb
call fcn.00417ee0
lea ecx, [esp + 0x1c]
mov byte [esp + 0x7e4], 4
call fcn.00417ee0
mov ecx, dword [0x89e864]
add ecx, 0x80658
lea edi, [esp + 0x58]
call fcn.00417e80
mov byte [esp + 0x7e4], 0xd
mov ecx, dword [0x89e864]
add ecx, 0x80660
lea edi, [esp + 0x2c]
call fcn.00417e80
mov byte [esp + 0x7e4], 0xe
mov eax, dword [0x89e864]
movzx ebx, byte [eax + 0x2460c]
cmp ebx, 0xffff
je 0x41154c
mov edi, 0x92d634
call fcn.0040b7d0
push eax
lea edi, [esp + 0x5c]
call fcn.00418060
mov ecx, dword [0x89e864]
movzx ebx, byte [ecx + 0x2460c]
mov edi, 0x92d634
call fcn.0040b830
push eax
lea edi, [esp + 0x30]
call fcn.00418060
xor esi, esi
xor ebx, ebx
mov eax, dword [0x89e864]
mov cl, byte [ebx + eax + 0x26639]
test cl, cl
je 0x411801
lea ecx, [eax + ebx*8 + 0x27104]
call fcn.00432f90
test eax, eax
jle 0x4115b2
mov edx, dword [0x89e864]
lea ecx, [edx + ebx*8 + 0x27104]
call fcn.00432f90
lea ecx, [esp + 0x2c]
mov edi, eax
call fcn.00432f90
imul edi, eax
mov ecx, dword [0x89e864]
mov eax, 0x51eb851f
imul edi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push ebx
call fcn.00432770
mov ecx, dword [0x89e864]
lea ecx, [ecx + ebx*8 + 0x27144]
call fcn.00432f90
test eax, eax
jle 0x41160c
mov edx, dword [0x89e864]
lea ecx, [edx + ebx*8 + 0x27144]
call fcn.00432f90
lea ecx, [esp + 0x58]
mov edi, eax
call fcn.00432f90
imul edi, eax
mov ecx, dword [0x89e864]
mov eax, 0x51eb851f
imul edi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
lea edi, [ecx + ebx*8 + 0x27144]
call fcn.00418060
mov edx, dword [0x89e864]
lea ecx, [edx + ebx*8 + 0x27104]
call fcn.00432f90
test eax, eax
jle 0x4116b3
lea ecx, [esp + 0x34]
call fcn.00417e00
mov byte [esp + 0x7e4], 0xf
mov eax, dword [0x89e864]
lea ecx, [eax + ebx*8 + 0x27104]
call fcn.00432f90
mov ecx, dword [0x89e864]
add ecx, 0x20334
mov edi, eax
call fcn.00432f90
imul edi, eax
mov eax, 0x51eb851f
imul edi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edi, [esp + 0x34]
call fcn.00417f50
mov ecx, dword [0x89e864]
lea edi, [ecx + ebx*8 + 0x27104]
xor eax, eax
call fcn.00417f50
lea ecx, [esp + 0x34]
call fcn.00432f90
mov ecx, dword [0x89e864]
push eax
push ebx
call fcn.00432770
lea ecx, [esp + 0x34]
mov byte [esp + 0x7e4], 0xe
call fcn.00417ee0
mov edx, dword [0x89e864]
lea ecx, [edx + ebx*8 + 0x27144]
call fcn.00432f90
test eax, eax
jle 0x411713
mov eax, dword [0x89e864]
lea ecx, [eax + ebx*8 + 0x27144]
call fcn.00432f90
mov ecx, dword [0x89e864]
add ecx, 0x2032c
mov edi, eax
call fcn.00432f90
imul edi, eax
mov ecx, dword [0x89e864]
mov eax, 0x51eb851f
imul edi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edi, [ecx + ebx*8 + 0x27144]
call fcn.00417f50
mov edx, dword [0x89e864]
lea ecx, [edx + ebx*8 + 0x265f8]
call fcn.00418340
test al, 1
je 0x411801
mov eax, dword [0x89e864]
lea ecx, [eax + ebx*8 + 0x27104]
call fcn.00432f90
lea ecx, [eax + eax*4]
shl ecx, 1
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
push ecx
mov ecx, dword [0x89e864]
push ebx
call fcn.00432770
mov edx, dword [0x89e864]
lea ecx, [edx + ebx*8 + 0x27144]
call fcn.00432f90
lea ecx, [eax + eax*4]
shl ecx, 2
mov eax, 0x51eb851f
imul ecx
mov ecx, dword [0x89e864]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
lea edi, [ecx + ebx*8 + 0x27144]
call fcn.00418060
mov eax, dword [0x89e864]
lea edx, [esp + 0x1c]
push edx
lea ecx, [eax + ebx*8 + 0x27104]
mov dword [esp + 0x20], esi
call fcn.00408760
test al, al
je 0x4117cf
mov ecx, dword [0x89e864]
lea edi, [ecx + ebx*8 + 0x27104]
xor eax, eax
call fcn.00417f50
mov eax, dword [0x89e864]
lea edx, [esp + 0x1c]
push edx
lea ecx, [eax + ebx*8 + 0x27144]
mov dword [esp + 0x20], esi
call fcn.00408760
test al, al
je 0x411801
mov ecx, dword [0x89e864]
lea edi, [ecx + ebx*8 + 0x27144]
xor eax, eax
call fcn.00417f50
inc ebx
cmp ebx, 8
jl 0x411550
mov ecx, dword [0x89e864]
add ecx, 0x1aaa8
call fcn.00432f90
mov ecx, dword [0x89e864]
add ecx, 0x1aa9c
mov esi, eax
call fcn.00432f90
cmp eax, esi
jne 0x41189a
mov ecx, dword [0x89e864]
add ecx, 0x24604
call fcn.00432f90
cmp eax, 3
je 0x411862
mov ecx, dword [0x89e864]
add ecx, 0x272ac
call fcn.00418340
cmp al, 1
jne 0x41189a
mov ecx, dword [0x89e864]
add ecx, 0x272bc
call fcn.00418340
test al, al
jne 0x41189a
cmp dword [0x89eddc], 0xb
jne 0x411895
mov ecx, dword [0x89e784]
add ecx, 0x11c8
call fcn.00418340
cmp al, 1
je 0x41189a
call fcn.00415c30
lea ecx, [esp + 0x2c]
mov byte [esp + 0x7e4], 0xd
call fcn.00417ee0
lea ecx, [esp + 0x58]
mov byte [esp + 0x7e4], 4
call fcn.00417ee0
mov edi, dword [0x89e864]
add edi, 0x272a4
mov al, 1
call fcn.004182c0
jmp case.0x40fc3f.4116
mov eax, dword [ebp + 0x10]
movzx eax, byte [eax]
lea edi, [edx + 0x1aaa8]
call fcn.00417f50
mov ecx, dword [0x89e864]
add ecx, 0x1aaa8
call fcn.00432f90
mov ecx, dword [0x89e864]
add ecx, 0x1aa9c
mov esi, eax
call fcn.00432f90
cmp esi, eax
jne 0x411940
push 0
push 0x5fca7c
push 0x5fb1f4
push 0
call fcn.004d3b30
mov ebx, 0x5b
mov edi, eax
call fcn.00403270
push eax
call fcn.0056c845
add esp, 0x14
test eax, eax
je 0x411940
mov edi, eax
call fcn.00535850
mov ecx, dword [0x89e864]
add ecx, 0x1aaa8
call fcn.00432f90
mov ecx, eax
mov eax, dword [0x89e864]
cmp byte [ecx + eax + 0x24846], 3
jne case.0x40fc3f.4116
lea ecx, [eax + 0x1aaa8]
call fcn.00432f90
mov edx, dword [0x89e864]
mov byte [eax + edx + 0x24846], 1
jmp case.0x40fc3f.4116
mov esi, dword [ebp + 0x10]
movzx eax, byte [esi]
lea ebx, [edx + 0x263a0]
push eax
call fcn.0041bd20
mov edx, dword [ebx + 0x20]
mov eax, dword [0x89e864]
dec edx
mov dword [ebx + 0x20], edx
movzx edi, byte [esi]
mov cl, byte [edi + eax + 0x26338]
xor ebx, ebx
cmp cl, bl
je 0x4119d0
mov byte [edi + eax + 0x26338], bl
mov eax, dword [eax + edi*4 + 0x80834]
push eax
mov ecx, 0x7755ac
call fcn.0054d610
mov eax, dword [0x89e864]
cmp byte [edi + eax + 0x26330], bl
je 0x4119f7
mov byte [edi + eax + 0x26330], bl
mov ecx, dword [eax + edi*4 + 0x80814]
push ecx
mov ecx, 0x7755ac
call fcn.0054d610
mov eax, dword [0x89e864]
mov ecx, dword [0x89eddc]
cmp ecx, 3
jne 0x411c03
mov dl, byte [eax + 0x245f1]
mov cl, byte [0x89ee46]
dec dl
cmp cl, 1
mov byte [eax + 0x245f1], dl
movzx edx, byte [esi]
mov byte [edx + eax + 0x24846], bl
jne 0x411a3b
movzx ecx, byte [esi]
lea edi, [eax + ecx*8 + 0x29408]
or eax, 0xffffffff
call fcn.00417f50
cmp dword [0x89eddc], 0xb
movzx eax, byte [esi]
sete dl
push edx
push eax
mov eax, 0x8a38b0
call fcn.00459f30
mov ecx, dword [0x89e864]
mov eax, dword [ecx + 0x7fa70]
cmp eax, ebx
je 0x411be7
xor edx, edx
cmp eax, ebx
mov dword [esp + 0x10], edx
jle 0x411be7
jmp 0x411a80
mov ecx, dword [0x89e864]
add ecx, 0x7fa6c
mov eax, edx
call fcn.00419650
mov edi, dword [eax]
mov esi, dword [0x89e864]
mov edx, edi
mov dword [esp + 0x1c], edi
call fcn.00424660
test al, al
je 0x411bc8
mov ecx, edi
call fcn.00431730
mov ebx, 0xc303
mov esi, 0x8a38b0
call fcn.00459870
mov eax, dword [0x8a4424]
mov esi, dword [0x89e784]
mov edx, edi
mov byte [eax + 0x8a4224], dl
mov eax, dword [0x8a4424]
inc eax
mov dword [0x8a4424], eax
add esi, 0x12bc
mov ecx, 0x10
lea edi, [eax + 0x8a4224]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [0x8a4424]
add ecx, 0x40
cmp edx, 0xe
mov dword [0x8a4424], ecx
jne 0x411b7c
mov ecx, dword [0x89e864]
mov ecx, dword [ecx + 0x27350]
add ecx, 0x2a4
call fcn.00418340
test al, al
jne 0x411b41
mov edx, dword [0x89e864]
mov edi, dword [edx + 0x27350]
add edi, 0x2a4
mov al, 1
call fcn.004182c0
mov eax, dword [0x89e864]
mov ecx, dword [eax + 0x27350]
push 0
push ecx
call fcn.004738e0
mov edx, dword [0x8a4424]
mov word [edx + 0x8a4224], ax
mov ecx, dword [0x8a4424]
mov eax, dword [0x89e864]
add ecx, 2
push 0
mov dword [0x8a4424], ecx
call fcn.004271a0
push 0x8a38b0
or ecx, 0xffffffff
call fcn.00459a50
mov edi, dword [0x89e864]
mov esi, dword [esp + 0x10]
add edi, 0x7fa6c
mov ebx, 1
mov edx, esi
call fcn.00419670
mov eax, dword [0x89e864]
mov ecx, dword [eax + 0x7fa70]
dec esi
test ecx, ecx
mov dword [esp + 0x10], esi
jne 0x411bc8
push 0xc302
push 0x8a38b0
call fcn.0045a0d0
mov edx, dword [esp + 0x10]
mov ecx, dword [0x89e864]
mov eax, dword [ecx + 0x7fa70]
inc edx
cmp edx, eax
mov dword [esp + 0x10], edx
jl 0x411a80
xor ebx, ebx
mov ecx, dword [0x89eddc]
cmp ecx, 3
jne 0x411bfe
cmp dword [0x89e744], ecx
je case.0x40fc3f.4116
mov eax, dword [0x89e864]
mov dl, byte [eax + 0x245f1]
mov esi, dword [ebp + 0x10]
dec dl
cmp ecx, 9
mov byte [eax + 0x245f1], dl
movzx edx, byte [esi]
mov byte [edx + eax + 0x24846], bl
jne 0x411c3e
cmp byte [0x89ee46], 1
jne 0x411c3e
movzx ecx, byte [esi]
lea edi, [eax + ecx*8 + 0x29408]
or eax, 0xffffffff
call fcn.00417f50
cmp dword [0x89eddc], 0xb
movzx eax, byte [esi]
sete dl
push edx
push eax
mov eax, 0x8a38b0
call fcn.00459f30
mov esi, dword [0x89e864]
mov eax, dword [esi + 0x7fa70]
cmp eax, ebx
je case.0x40fc3f.4116
mov dword [esp + 0x10], ebx
jle case.0x40fc3f.4116
cmp ebx, eax
jae 0x412795
mov ecx, dword [esi + 0x7fa6c]
mov edi, dword [ecx + ebx*4]
lea eax, [ecx + ebx*4]
mov edx, edi
mov dword [esp + 0x1c], edi
call fcn.00424660
test al, al
je 0x411dd9
mov ecx, edi
call fcn.00431730
mov ebx, 0xc303
mov esi, 0x8a38b0
call fcn.00459870
mov eax, dword [0x8a4424]
mov esi, dword [0x89e784]
mov edx, edi
mov byte [eax + 0x8a4224], dl
mov eax, dword [0x8a4424]
inc eax
mov dword [0x8a4424], eax
add esi, 0x12bc
mov ecx, 0x10
lea edi, [eax + 0x8a4224]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [0x8a4424]
add ecx, 0x40
cmp edx, 0xe
mov dword [0x8a4424], ecx
jne 0x411d6a
mov ecx, dword [0x89e864]
mov ecx, dword [ecx + 0x27350]
add ecx, 0x2a4
call fcn.00418340
test al, al
jne 0x411d2f
mov edx, dword [0x89e864]
mov edi, dword [edx + 0x27350]
add edi, 0x2a4
mov al, 1
call fcn.004182c0
mov eax, dword [0x89e864]
mov ecx, dword [eax + 0x27350]
push 0
push ecx
call fcn.004738e0
mov edx, dword [0x8a4424]
mov word [edx + 0x8a4224], ax
mov ecx, dword [0x8a4424]
mov eax, dword [0x89e864]
add ecx, 2
push 0
mov dword [0x8a4424], ecx
call fcn.004271a0
push 0x8a38b0
or ecx, 0xffffffff
call fcn.00459a50
mov edi, dword [0x89e864]
mov esi, dword [esp + 0x10]
add edi, 0x7fa6c
mov ebx, 1
mov edx, esi
call fcn.00419670
dec esi
mov dword [esp + 0x10], esi
mov esi, dword [0x89e864]
mov eax, dword [esi + 0x7fa70]
test eax, eax
jne 0x411dbd
push 0xc302
push 0x8a38b0
call fcn.0045a0d0
mov esi, dword [0x89e864]
mov ebx, dword [esp + 0x10]
mov eax, dword [esi + 0x7fa70]
inc ebx
cmp ebx, eax
mov dword [esp + 0x10], ebx
jl 0x411c77
jmp case.0x40fc3f.4116
mov esi, dword [0x89e864]
jmp 0x411dc1
mov eax, dword [ebp + 0x10]
lea ecx, [eax + 1]
mov al, byte [eax]
push ecx
push 0x8a38b0
call fcn.0045a100
jmp case.0x40fc3f.4116
cmp eax, 0x5001
je 0x4125f3
cmp eax, 0x5101
je 0x412552
cmp eax, 0x6001
jne case.0x40fc3f.4116
mov eax, dword [ebp + 0x10]
cmp word [eax], bx
jne case.0x40fc3f.4116
mov esi, eax
movzx eax, word [esi + 2]
add esi, 2
lea edi, [edx + 0x55f28]
call fcn.00417f50
mov ecx, eax
call fcn.00432f90
mov ecx, dword [0x89e864]
add ecx, 0x1aa9c
mov edi, eax
add esi, 2
call fcn.00432f90
cmp edi, ebx
mov ecx, dword [0x89e864]
mov byte [eax + ecx + 0x80b6a], 0
jle 0x4124dd
mov dword [esp + 0x1c], edi
mov edx, dword [esi]
mov eax, dword [esi + 4]
add esi, 4
lea edi, [esp + 0x50]
or bl, 0xff
mov dword [esp + 0x58], edx
call fcn.00417f50
mov ecx, eax
call fcn.00432f90
mov al, byte [esi + 4]
add esi, 4
test al, al
mov al, byte [esi + 1]
setne byte [esp + 0x17]
inc esi
inc esi
mov byte [esp + 0x2b], al
cmp byte [esi], 0
setne al
inc esi
test al, al
mov byte [esp + 0x24], al
je 0x411f10
mov ecx, dword [esi]
add esi, 4
cmp ecx, 0x151bc
lea edi, [esp + 0x60]
jle 0x411ef6
mov eax, 0x184178b9
imul ecx
sar edx, 0xd
mov eax, edx
shr eax, 0x1f
add eax, edx
call fcn.00417f50
lea ecx, [esp + 0x70]
push ecx
mov edx, edi
push edx
call fcn.00417f80
lea ecx, [esp + 0x70]
call fcn.00417ee0
mov bl, 3
jmp 0x411f10
mov eax, 0x91a2b3c5
imul ecx
add edx, ecx
sar edx, 0xb
mov eax, edx
shr eax, 0x1f
add eax, edx
call fcn.00417f50
mov bl, 4
cmp byte [esi], 0
setne al
inc esi
test al, al
je 0x411f30
mov eax, dword [esi]
lea edi, [esp + 0x78]
call fcn.00417f50
mov ecx, eax
call fcn.00432f90
add esi, 4
cmp byte [esi], 0
setne al
inc esi
test al, al
je 0x411f50
mov eax, dword [esi]
lea edi, [esp + 0x68]
call fcn.00417f50
mov ecx, eax
call fcn.00432f90
add esi, 4
cmp byte [esi], 0
setne byte [esp + 0x18]
inc esi
lea ecx, [esp + 0x50]
mov dword [esp + 0x10], esi
call fcn.00432f90
cmp eax, 0x31999
jle 0x412242
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x54]
mov dword [esp + 0x38], 0x34000
call fcn.00408760
test al, al
je 0x412242
lea ecx, [esp + 0xd0]
push ecx
call fcn.00412f60
lea ecx, [esp + 0x2d0]
mov byte [esp + 0x7e4], 5
call fcn.0040afa0
lea ecx, [esp + 0x50]
mov byte [esp + 0x7e4], 6
call fcn.00432f90
push eax
mov eax, dword [0x89e864]
lea edx, [esp + 0x2d4]
push edx
push eax
mov al, 1
call fcn.0042efd0
mov eax, dword [esp + 0x58]
lea edi, [esp + 0xdc]
call fcn.00417f50
lea ecx, [esp + 0x50]
lea edi, [esp + 0xe4]
call fcn.00417f00
mov cl, byte [esp + 0x2b]
mov byte [esp + 0x100], cl
lea ecx, [esp + 0x78]
lea edi, [esp + 0x104]
call fcn.00417f00
lea ecx, [esp + 0x68]
lea edi, [esp + 0x114]
call fcn.00417f00
mov al, byte [esp + 0x17]
lea edi, [esp + 0xf8]
call fcn.004182c0
lea ecx, [esp + 0x60]
lea edi, [esp + 0x12c]
mov byte [esp + 0x134], bl
call fcn.00417f00
mov al, byte [esp + 0x24]
lea edi, [esp + 0x124]
call fcn.004182c0
mov al, byte [esp + 0x18]
lea edi, [esp + 0x11c]
call fcn.004182c0
mov eax, dword [0x89e864]
mov dl, byte [esp + 0x2d9]
add eax, 0x244f0
push eax
lea ebx, [esp + 0xd4]
mov byte [esp + 0xf0], dl
call fcn.004195d0
mov ecx, dword [0x89e864]
add ecx, 0x24510
push ecx
call fcn.004195d0
mov al, byte [esp + 0x17]
test al, al
je 0x412210
lea ecx, [esp + 0x50]
call fcn.00432f90
cmp eax, 0x32001
je 0x412210
mov eax, dword [0x89e864]
mov ecx, dword [eax + 0x80a78]
test ecx, ecx
mov cl, byte [esp + 0x2d9]
je 0x41219e
movzx edx, cl
cmp dword [eax + edx*4 + 0x80a64], 0xffffffff
je 0x41219e
mov esi, dword [0x89edfc]
push 0x600e
call fcn.004511d0
mov eax, dword [0x89edfc]
mov ecx, dword [eax + 0x4098]
mov esi, dword [0x89e864]
mov word [ecx + eax + 0x98], 1
mov ebx, dword [eax + 0x4098]
add ebx, 2
mov dword [eax + 0x4098], ebx
movzx edx, byte [esp + 0x2d9]
mov edx, dword [esi + edx*4 + 0x80a64]
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.00451370
lea ecx, [esp + 0x2d0]
mov byte [esp + 0x7e4], 5
call fcn.00413330
lea eax, [esp + 0xd0]
push eax
mov byte [esp + 0x7e8], bl
call fcn.004131d0
mov esi, dword [esp + 0x10]
jmp 0x4124d3
movzx ecx, cl
lea edi, [eax + ecx*8 + 0x1aa74]
lea ecx, [esp + 0x50]
call fcn.00417f00
movzx edx, byte [esp + 0x2d9]
mov eax, dword [0x89e864]
mov ecx, dword [esp + 0x58]
mov dword [eax + edx*4 + 0x80a64], ecx
movzx edx, byte [esp + 0x2d9]
lea edi, [eax + edx*8 + 0x55f50]
mov eax, dword [esp + 0x2c]
call fcn.00417f50
movzx eax, byte [esp + 0x2d9]
dec eax
je 0x412200
dec eax
jne 0x412210
mov eax, dword [0x89e864]
mov dword [eax + 0x80810], 1
jmp 0x412210
mov ecx, dword [0x89e864]
mov dword [ecx + 0x8080c], 1
inc dword [esp + 0x2c]
lea ecx, [esp + 0x2d0]
mov byte [esp + 0x7e4], 5
call fcn.00413330
lea edx, [esp + 0xd0]
push edx
mov byte [esp + 0x7e8], 4
call fcn.004131d0
jmp 0x41248f
lea eax, [esp + 0x80]
push eax
call fcn.00413650
mov byte [esp + 0x7e4], 7
mov eax, dword [esp + 0x58]
lea edi, [esp + 0x88]
call fcn.00417f50
lea ecx, [esp + 0x50]
lea edi, [esp + 0x90]
call fcn.00417f00
mov cl, byte [esp + 0x2b]
mov al, byte [esp + 0x17]
lea edi, [esp + 0x98]
mov dword [esp + 0x84], 0
mov byte [esp + 0x80], cl
call fcn.004182c0
lea ecx, [esp + 0x68]
lea edi, [esp + 0xa0]
call fcn.00417f00
lea ecx, [esp + 0x60]
lea edi, [esp + 0xb8]
mov byte [esp + 0xc0], bl
call fcn.00417f00
mov al, byte [esp + 0x24]
lea edi, [esp + 0xb0]
call fcn.004182c0
mov al, byte [esp + 0x18]
lea edi, [esp + 0xa8]
call fcn.004182c0
mov edx, dword [0x89e864]
add edx, 0x244c0
push edx
lea ebx, [esp + 0x84]
call fcn.00419550
mov eax, dword [0x89e864]
add eax, 0x24500
push eax
call fcn.00419550
mov ecx, dword [0x89e864]
add ecx, 0x244d0
push ecx
call fcn.00419550
mov al, byte [esp + 0x17]
test al, al
je 0x41247a
lea ecx, [esp + 0x50]
call fcn.00432f90
cmp eax, 0x32001
je 0x41247a
lea ecx, [esp + 0x50]
call fcn.00432f90
mov ebx, eax
sar ebx, 0x10
lea ecx, [esp + 0x50]
and bl, 0xf
call fcn.00432f90
mov ecx, dword [0x89e864]
mov edi, eax
mov eax, dword [ecx + 0x80a78]
and edi, 0x7fff
test eax, eax
je 0x412424
movzx eax, bl
lea eax, [eax*4 + 0x80a54]
cmp dword [eax + ecx], 0xffffffff
mov dword [esp + 0x34], eax
je 0x412424
mov esi, dword [0x89edfc]
push 0x600e
call fcn.004511d0
mov eax, dword [0x89edfc]
mov edx, dword [eax + 0x4098]
mov esi, dword [esp + 0x34]
mov word [edx + eax + 0x98], 1
mov ebx, dword [eax + 0x4098]
mov edx, dword [0x89e864]
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.00451370
lea eax, [esp + 0x80]
push eax
mov byte [esp + 0x7e8], bl
call fcn.004137f0
mov esi, dword [esp + 0x10]
jmp 0x4124d3
cmp bl, 3
jne 0x412439
movzx eax, di
or eax, 0x8000
lea edi, [ecx + 0x1aa6c]
jmp 0x412462
add ecx, 0x1aa94
call fcn.00418340
neg al
movzx ecx, di
movzx edx, bl
sbb eax, eax
and eax, 0x8000
or eax, ecx
mov ecx, dword [0x89e864]
lea edi, [ecx + edx*8 + 0x1aa54]
call fcn.00417f50
mov eax, dword [0x89e864]
mov ecx, dword [esp + 0x58]
movzx edx, bl
mov dword [eax + edx*4 + 0x80a54], ecx
lea edx, [esp + 0x80]
push edx
mov byte [esp + 0x7e8], 4
call fcn.004137f0
lea ecx, [esp + 0x50]
call fcn.00432f90
cmp eax, 0x320e6
jg 0x4124b9
je 0x4124b5
sub eax, 0x32001
je 0x4124b1
sub eax, 0x76
jne 0x4124d3
push 2
jmp 0x4124c2
push 1
jmp 0x4124c2
push 8
jmp 0x4124c2
cmp eax, 0x38113
jne 0x4124d3
push 4
mov edi, dword [0x89e864]
add edi, 0x806d0
call fcn.004182f0
dec dword [esp + 0x1c]
jne 0x411e71
mov eax, dword [0x89e864]
push eax
xor ecx, ecx
call fcn.00431bc0
mov eax, dword [0x89e864]
mov byte [eax + 0x244b5], 1
mov dword [eax + 0x80a78], 0
call fcn.00432800
mov esi, dword [0x89e760]
add esi, 0x80
call fcn.0044fcd0
push 0
push 0x5fcabc
push 0x5fb1f4
push 0
call fcn.004d3b30
mov ebx, 0x15
mov edi, eax
call fcn.00403270
push eax
call fcn.0056c845
add esp, 0x14
test eax, eax
je case.0x40fc3f.4116
mov edi, eax
call fcn.0053df80
jmp case.0x40fc3f.4116
xor eax, eax
mov byte [esp + 0xd0], 0
mov ecx, 0x7f
lea edi, [esp + 0xd1]
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 0x4125d1
lea ecx, [ecx]
mov ecx, dword [ebp + 0x10]
mov cl, byte [esi + ecx]
cmp cl, 0xd
je 0x4125c9
cmp cl, 0xa
jne 0x4125c1
mov edx, dword [0x89eddc]
mov ecx, dword [edx*4 + 0x89e758]
mov edx, dword [ecx]
push eax
push 2
lea eax, [esp + 0xd8]
push eax
call dword [edx + 0x2c]
xor eax, eax
mov ecx, 0x80
lea edi, [esp + 0xd0]
rep stosd dword es:[edi], eax
xor edx, edx
jmp 0x4125c9
mov byte [esp + edx + 0xd0], cl
inc edx
mov ecx, dword [ebp + 8]
inc esi
cmp esi, ecx
jl 0x412580
mov ecx, dword [0x89eddc]
mov ecx, dword [ecx*4 + 0x89e758]
mov edx, dword [ecx]
push eax
push 2
lea eax, [esp + 0xd8]
push eax
call dword [edx + 0x2c]
jmp case.0x40fc3f.4116
mov ecx, dword [ebp + 0x10]
cmp word [ecx], bx
jne case.0x40fc3f.4116
mov edx, dword [0x89eddc]
mov eax, dword [edx*4 + 0x89e758]
mov esi, dword [eax]
push 6
push 3
push 0x1004
push 0x8a3708
call fcn.0044ee40
mov ecx, dword [0x89eddc]
mov ecx, dword [ecx*4 + 0x89e758]
push eax
call dword [esi + 0x2c]
push 0
push 0x5fca44
push 0x5fb1f4
push 0
call fcn.004d3b30
mov ebx, 0xc7
mov edi, eax
call fcn.00403270
push eax
call fcn.0056c845
add esp, 0x14
test eax, eax
je case.0x40fc3f.4116
mov esi, eax
call fcn.005126d0
jmp case.0x40fc3f.4116
mov ecx, dword [edx + 0x1a2bc]
push 1
lea eax, [esp + 0x28]
push eax
push ecx
mov byte [esp + 0x30], 1
call fcn.004d3720
mov esi, eax
call fcn.0040ae40
mov esi, dword [ebp + 0x10]
mov edx, dword [esi]
xor eax, eax
add esi, 4
mov ecx, 0x28
lea edi, [esp + 0xd0]
rep stosd dword es:[edi], eax
mov eax, dword [esi]
mov cl, byte [esi + 4]
add esi, 4
mov dword [esp + 0xe8], edx
inc esi
mov edx, esi
mov dword [esp + 0xd0], eax
mov eax, dword [edx]
mov byte [esp + 0xec], cl
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0xd8], ecx
add esi, 0xc
mov dword [esp + 0xd4], eax
mov eax, dword [esi]
lea ecx, [esp + 0x34]
push ecx
mov dword [esp + 0xe0], edx
mov dword [esp + 0x38], eax
add esi, 4
call fcn.0056b253
mov dx, word [eax + 0x14]
mov cl, byte [eax + 0x10]
add dx, 0x76c
add esp, 4
inc cl
mov byte [esp + 0xe4], cl
movzx ecx, byte [esi]
mov word [esp + 0xe2], dx
mov dl, byte [eax + 0xc]
mov eax, ecx
shr ecx, 2
inc esi
mov byte [esp + 0xe5], dl
lea edi, [esp + 0xed]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [0x89e864]
mov edx, dword [esi + 0x24498]
xor ecx, ecx
cmp edx, ebx
jle 0x412775
mov ebx, dword [esp + 0xd0]
xor edi, edi
cmp ecx, dword [esi + 0x24498]
jae 0x412795
mov eax, dword [esi + 0x24494]
add eax, edi
cmp dword [eax], ebx
je 0x412789
inc ecx
add edi, 0xa0
cmp ecx, edx
jl 0x412756
lea ecx, [esp + 0xd0]
push ecx
add esi, 0x24494
push esi
call fcn.004194b0
mov byte [0x89edd0], 1
jmp case.0x40fc3f.4116
push 0x80070057
call fcn.004010c0
cmp eax, 0x6107
jg 0x412982
je 0x4128c0
sub eax, 0x6032
je 0x41284d
sub eax, 0xcf
je 0x41280c
sub eax, 4
jne case.0x40fc3f.4116
lea edi, [edx + 0x1a984]
mov edx, dword [ebp + 0x10]
mov eax, dword [edx + 2]
call fcn.00417f50
mov eax, dword [0x89e864]
cmp dword [eax + 0x18994], ebx
je case.0x40fc3f.4116
push 4
call fcn.00414340
mov ecx, dword [0x89e864]
add esp, 4
mov dword [ecx + 0x18994], 0
jmp case.0x40fc3f.4116
mov eax, dword [ebp + 0x10]
cmp word [eax], bx
lea edi, [edx + 0x1a98c]
jne 0x412845
mov ecx, eax
mov eax, dword [ecx + 2]
call fcn.00417f50
mov esi, dword [0x89edfc]
push 0x6104
call fcn.004511d0
mov edx, dword [0x89edfc]
push edx
call fcn.00451370
jmp case.0x40fc3f.4116
or eax, 0xffffffff
jmp 0x412bfc
xor eax, 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 dword [esp + 0x4c], eax
mov eax, dword [ebp + 0x10]
mov ecx, eax
mov esi, dword [ecx]
mov dword [esp + 0x34], esi
mov esi, dword [ecx + 4]
mov ecx, dword [ecx + 8]
add eax, 0xc
mov dword [esp + 0x3c], ecx
mov ecx, dword [eax]
add eax, 4
mov dword [esp + 0x44], ecx
mov cl, byte [eax]
movzx eax, byte [eax + 1]
mov byte [esp + 0x48], cl
lea ecx, [esp + 0x34]
push ecx
lea ebx, [edx + 0x244a4]
mov dword [esp + 0x3c], esi
mov dword [esp + 0x50], eax
call fcn.00419500
mov edx, dword [0x89e864]
mov byte [edx + 0x244b4], 1
jmp case.0x40fc3f.4116
mov eax, dword [ebp + 0x10]
cmp word [eax], bx
jne case.0x40fc3f.4116
movzx ecx, word [edx + 0x80640]
mov ax, word [eax + 2]
push 0
push 0x5fb1b8
push 0x5fb1f4
push 0
mov word [edx + ecx*2 + 0x80638], ax
call fcn.004d3b30
mov ebx, 0x258
mov edi, eax
call fcn.00403270
push eax
call fcn.0056c845
mov ecx, eax
add esp, 0x14
test ecx, ecx
jne 0x412964
push 0xa4
call fcn.0056ae19
add esp, 4
mov dword [esp + 0x34], eax
test eax, eax
mov byte [esp + 0x7e4], 0x12
je 0x412948
mov ecx, dword [0x89e864]
movzx edx, word [ecx + 0x80640]
movzx ecx, word [ecx + edx*2 + 0x80638]
push ecx
push eax
call fcn.0052ece0
jmp 0x41294a
xor eax, eax
push eax
mov byte [esp + 0x7e8], 4
call fcn.004d3b30
mov ecx, eax
call fcn.00406b20
jmp case.0x40fc3f.4116
mov eax, dword [0x89e864]
movzx edx, word [eax + 0x80640]
movzx eax, word [eax + edx*2 + 0x80638]
call fcn.0052ee20
jmp case.0x40fc3f.4116
sub eax, 0x6109
je 0x412beb
sub eax, 0xef8
je 0x412b84
sub eax, 0x10
jne case.0x40fc3f.4116
mov eax, dword [ebp + 0x10]
cmp word [eax], bx
jne 0x412ac5
mov edi, eax
movzx ebx, word [edi + 2]
add edi, 2
lea esi, [edx + 0x80ddc]
add edi, 2
call fcn.00418290
test ebx, ebx
jle 0x412ac5
mov esi, ebx
mov edi, edi
xor ecx, 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
mov dword [esp + 0x94], ecx
mov dword [esp + 0x98], ecx
push 0xc
mov dword [esp + 0xa0], ecx
lea edx, [esp + 0x84]
mov dword [esp + 0xa4], ecx
push edi
push edx
mov dword [esp + 0xb0], ecx
call fcn.0056cca0
push 8
add edi, 0xc
lea eax, [esp + 0x9d]
push edi
push eax
call fcn.0056cca0
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 + 0xb4], ecx
mov cx, word [edi + 2]
add edi, 2
add cx, 5
add dx, 5
add edi, 2
mov word [esp + 0xba], cx
mov cx, word [edi]
mov word [esp + 0xb8], dx
movzx edx, cx
push edx
push eax
mov dword [esp + 0xb8], eax
lea eax, [esp + 0xa0]
push eax
push str._s__d__d_n
mov word [esp + 0xcc], cx
add edi, 2
call fcn.0044eaf0
mov ecx, dword [0x89e864]
add esp, 0x28
add ecx, 0x80ddc
lea eax, [esp + 0x80]
call fcn.00418210
dec esi
jne 0x4129d0
push 0
push 0x5fcabc
push 0x5fb1f4
push 0
call fcn.004d3b30
mov ebx, 0x15
mov edi, eax
call fcn.00403270
push eax
call fcn.0056c845
add esp, 0x14
test eax, eax
jne case.0x40fc3f.4116
push 0xe8
call fcn.0056ae19
add esp, 4
mov dword [esp + 0x34], eax
test eax, eax
mov byte [esp + 0x7e4], 0x10
je 0x412b1c
push eax
call fcn.0053c8f0
mov esi, eax
jmp 0x412b1e
xor esi, esi
mov bl, 4
mov byte [esp + 0x7e4], bl
call fcn.004d3b30
call fcn.004033d0
push 0x94
call fcn.0056ae19
add esp, 4
mov dword [esp + 0x34], eax
test eax, eax
mov byte [esp + 0x7e4], 0x11
je 0x412b6c
push eax
call fcn.00520460
mov esi, eax
mov byte [esp + 0x7e4], bl
call fcn.004d3b30
call fcn.004033d0
jmp case.0x40fc3f.4116
xor esi, esi
mov byte [esp + 0x7e4], bl
call fcn.004d3b30
call fcn.004033d0
jmp case.0x40fc3f.4116
mov ecx, dword [ebp + 0x10]
cmp word [ecx], bx
jne case.0x40fc3f.4116
mov edi, ecx
movzx ebx, word [edi + 2]
add edi, 2
lea esi, [edx + 0x80dcc]
add edi, 2
call fcn.00418290
test ebx, ebx
jle case.0x40fc3f.4116
mov esi, ebx
lea ecx, [ecx]
mov edx, dword [edi]
mov ax, word [edi + 4]
add edi, 4
mov ecx, dword [edi + 2]
add ax, 5
mov word [esp + 0x38], ax
mov eax, dword [0x89e864]
add edi, 2
add eax, 0x80dcc
lea ebx, [esp + 0x34]
mov dword [esp + 0x34], edx
mov dword [esp + 0x3c], ecx
add edi, 4
call fcn.00418190
dec esi
jne 0x412bb0
jmp case.0x40fc3f.4116
mov eax, dword [ebp + 0x10]
cmp word [eax], bx
jne case.0x40fc3f.4116
mov eax, dword [eax + 2]
lea edi, [edx + 0x1a994]
call fcn.00417f50
mov edx, dword [0x89eddc]
mov ecx, dword [edx*4 + 0x89e758]
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 [0x92e648], 1
jne 0x412c4e
or dword [0x92e648], 1
push 0x92e600
mov byte [esp + 0x7e8], 0x13
call fcn.004d3390
push 0x589b40
call fcn.0056b241
add esp, 4
push 0x92e630
mov dword [esp + 0x20], 0x92e630
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [esp + 0x7e4], 0x14
mov esi, dword [esp + 0x64]
lea edi, [esi + 1]
cmp esi, edi
jge 0x412c90
lea eax, [esp + 0x70]
push eax
lea ebx, [esp + 0x38]
mov eax, 0x92e610
mov dword [esp + 0x38], esi
call fcn.00417d40
inc esi
cmp esi, edi
jl 0x412c74
push 0x92e630
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test byte [0x92e648], 1
mov dword [esp + 0x68], vtable.Xenesis2::Foundation::Memory::xEncryptData_int_.0
jne 0x412cd2
or dword [0x92e648], 1
push 0x92e600
mov byte [esp + 0x7e8], 0x15
call fcn.004d3390
push 0x589b40
call fcn.0056b241
add esp, 4
mov esi, dword [esp + 0x6c]
push 0x92e630
mov dword [esp + 0x20], 0x92e630
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea edi, [esi + 1]
cmp esi, edi
mov byte [esp + 0x7e4], 0x16
jge 0x412d1c
jmp 0x412d00
lea ecx, [esp + 0x70]
push ecx
lea ebx, [esp + 0x38]
mov eax, 0x92e610
mov dword [esp + 0x38], esi
call fcn.00417d40
inc esi
cmp esi, edi
jl 0x412d00
push 0x92e630
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test byte [0x92e648], 1
mov dword [esp + 0x78], vtable.Xenesis2::Foundation::Memory::xEncryptData_int_.0
jne 0x412d5e
or dword [0x92e648], 1
push 0x92e600
mov byte [esp + 0x7e8], 0x17
call fcn.004d3390
push 0x589b40
call fcn.0056b241
add esp, 4
mov esi, dword [esp + 0x7c]
push 0x92e630
mov dword [esp + 0x20], 0x92e630
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea edi, [esi + 1]
cmp esi, edi
mov byte [esp + 0x7e4], 0x18
jge 0x412da0
lea edx, [esp + 0x70]
push edx
lea ebx, [esp + 0x38]
mov eax, 0x92e610
mov dword [esp + 0x38], esi
call fcn.00417d40
inc esi
cmp esi, edi
jl 0x412d84
mov esi, dword [esp + 0xcc]
push 0x92e630
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test byte [0x92e648], 1
jne 0x412de1
or dword [0x92e648], 1
push 0x92e600
mov byte [esp + 0x7e8], 0x19
call fcn.004d3390
push 0x589b40
call fcn.0056b241
add esp, 4
push 0x92e630
mov dword [esp + 0x20], 0x92e630
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea edi, [esi + 1]
cmp esi, edi
mov byte [esp + 0x7e4], 0x1a
jge 0x412e1f
lea eax, [esp + 0x70]
push eax
lea ebx, [esp + 0x38]
mov eax, 0x92e610
mov dword [esp + 0x38], esi
call fcn.00417d40
inc esi
cmp esi, edi
jl 0x412e03
push 0x92e630
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test byte [0x92e648], 1
mov dword [esp + 0x50], vtable.Xenesis2::Foundation::Memory::xEncryptData_int_.0
jne 0x412e64
or dword [0x92e648], 1
push 0x92e600
mov dword [esp + 0x7e8], 0x1b
call fcn.004d3390
push 0x589b40
call fcn.0056b241
add esp, 4
mov esi, dword [esp + 0x54]
push 0x92e630
mov dword [esp + 0x20], 0x92e630
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea edi, [esi + 1]
cmp esi, edi
mov dword [esp + 0x7e4], 0x1c
jge 0x412eac
lea ecx, [ecx]
lea ecx, [esp + 0x70]
push ecx
lea ebx, [esp + 0x38]
mov eax, 0x92e610
mov dword [esp + 0x38], esi
call fcn.00417d40
inc esi
cmp esi, edi
jl 0x412e90
push 0x92e630
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [esp + 0x7dc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret