Function at 0x416690
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x45a363
mov eax, dword fs:[0]
push eax
sub esp, 0x38c
mov eax, dword [0x477f40]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x248], esi
mov eax, dword [ebp + 8]
lea edi, [esi + 0x24]
mov dword [ebp - 0x270], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x26c], eax
xor eax, eax
mov dword [ebp - 0x264], eax
mov dword [ebp - 0x23c], eax
mov dword [ebp - 0x258], edi
nop
mov esi, dword [ebp - 0x26c]
mov ecx, dword [edi]
call fcn.0040ed60
cmp eax, 0x3a
je 0x416713
cmp esi, 2
je 0x41671c
mov ecx, dword [edi]
call fcn.0040ed60
cmp eax, 0xa
jne 0x41671c
mov ecx, dword [edi]
call fcn.00410560
jmp 0x4166f6
mov ecx, dword [edi]
call fcn.00411300
mov ecx, dword [edi]
mov dword [ebp - 0x268], eax
call fcn.0040ed60
mov esi, dword [ebp - 0x248]
cmp eax, 0x8000
jg 0x416940
je 0x4168d3
cmp eax, 0x2e
jne case.0x416955.32774
mov ecx, dword [edi]
call fcn.00410560
lea eax, [ebp - 0x174]
mov ecx, esi
push eax
call fcn.00415900
push 0x24
mov dword [ebp - 4], 0x4a
call fcn.00435b23
mov esi, eax
add esp, 4
mov dword [ebp - 0x240], esi
mov dword [ebp - 0x2d0], esi
test esi, esi
je 0x41687f
mov ecx, dword [ebp - 0x248]
mov eax, dword [ecx + 0x40]
mov ecx, dword [eax + 8]
sub ecx, dword [eax + 4]
sar ecx, 2
mov dword [ebp - 0x254], ecx
mov dword [esi + 4], 0xffffffff
mov dword [esi], vtable.LabelNode.0
lea ecx, [esi + 8]
xorps xmm0, xmm0
mov byte [ebp - 4], 0x4c
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], 0
lea edx, [ebp - 0x174]
mov dword [ecx + 0x14], 0
cmp dword [ebp - 0x160], 0xf
mov eax, dword [ebp - 0x164]
cmova edx, dword [ebp - 0x174]
mov dword [ebp - 0x25c], edx
mov dword [ebp - 0x24c], eax
cmp eax, 0x7fffffff
ja 0x418610
cmp eax, 0xf
ja 0x41681d
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0x254]
mov dword [ecx + 0x14], 0xf
movups xmm0, xmmword [edx]
movups xmmword [ecx], xmm0
mov dword [esi + 0x20], eax
jmp 0x416889
or eax, 0xf
cmp eax, 0x7fffffff
jbe 0x41682e
mov eax, 0x7fffffff
jmp 0x416839
cmp eax, 0x16
mov edx, 0x16
cmovb eax, edx
mov dword [ebp - 0x23c], eax
lea eax, [ebp - 0x23c]
push eax
push ecx
call fcn.00401590
mov edx, dword [ebp - 0x24c]
mov ecx, dword [ebp - 0x23c]
mov dword [esi + 0x1c], ecx
mov dword [esi + 8], eax
lea ecx, [edx + 1]
mov dword [esi + 0x18], edx
push ecx
push dword [ebp - 0x25c]
push eax
call fcn.004371c0
mov eax, dword [ebp - 0x254]
add esp, 0xc
mov dword [esi + 0x20], eax
jmp 0x416889
mov dword [ebp - 0x240], 0
mov ecx, dword [ebp - 0x160]
mov dword [ebp - 4], 0xffffffff
cmp ecx, 0xf
jbe 0x41749a
mov edx, dword [ebp - 0x174]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4168c4
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x418615
push ecx
push edx
call fcn.00435b53
add esp, 8
jmp 0x41749a
mov ecx, dword [edi]
call fcn.00410560
mov ecx, esi
call fcn.00414ae0
mov ecx, dword [ebp - 0x268]
mov dword [ebp - 0x23c], eax
mov dword [eax + 4], ecx
mov ecx, dword [edi]
call fcn.00411300
mov edx, dword [ebp - 0x23c]
mov dword [ebp - 0x268], eax
mov eax, dword [ebp - 0x270]
mov dword [ebp - 0x23c], edx
mov ecx, dword [eax + 0x20]
cmp ecx, dword [eax + 0x24]
je 0x41691f
mov dword [ecx], edx
add dword [eax + 0x20], 4
jmp 0x41692f
lea edx, [ebp - 0x23c]
push edx
push ecx
lea ecx, [eax + 0x1c]
call fcn.0040d660
mov ecx, dword [edi]
call fcn.0040ed60
cmp eax, 0x2c
je 0x4168d3
jmp 0x4166f0
sub eax, 0x8001
cmp eax, 0x42
ja case.0x416955.32774
movzx eax, byte [eax + 0x4189a8]
jmp dword [eax*4 + 0x41894c]
mov ecx, dword [edi]
call fcn.00410560
cmp eax, 0x8048
jne 0x41866c
mov ecx, dword [edi]
lea eax, [ebp - 0x144]
push eax
call fcn.00411390
mov ecx, dword [edi]
mov dword [ebp - 4], 2
call fcn.00410560
mov eax, dword [ebp - 0x134]
xorps xmm0, xmm0
mov dword [ebp - 0x17c], 0
mov dword [ebp - 0x178], 0
movups xmmword [ebp - 0x18c], xmm0
lea ecx, [eax - 2]
cmp eax, 1
jb 0x418667
dec eax
cmp eax, ecx
cmovb ecx, eax
cmp dword [ebp - 0x130], 0xf
lea eax, [ebp - 0x144]
cmova eax, dword [ebp - 0x144]
push ecx
inc eax
lea ecx, [ebp - 0x18c]
push eax
call fcn.004015f0
or dword [ebp - 0x264], 4
lea ecx, [ebp - 0x144]
call fcn.00402fb0
movups xmm1, xmmword [ebp - 0x18c]
lea ecx, [ebp - 0x144]
movq xmm0, qword [ebp - 0x17c]
movd eax, xmm1
movq qword [ebp - 0x134], xmm0
cmp dword [ebp - 0x130], 0xf
movups xmmword [ebp - 0x144], xmm1
cmova ecx, eax
lea eax, [ebp - 0x2cc]
push eax
lea eax, [ebp - 0x114]
push eax
push 0x104
push ecx
call dword [sym.imp.KERNEL32.dll_GetFullPathNameA]
test eax, eax
je 0x416a6c
lea ecx, [ebp - 0x114]
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x416a50
sub ecx, edx
lea eax, [ebp - 0x114]
push ecx
push eax
lea ecx, [ebp - 0x144]
call fcn.004042c0
lea eax, [ebp - 0x144]
push eax
lea eax, [ebp - 0x1a4]
push eax
call fcn.00434a60
lea ecx, [ebp - 0x144]
mov dword [ebp - 0x23c], eax
cmp ecx, eax
je 0x416b16
mov ecx, dword [ebp - 0x130]
cmp ecx, 0xf
jbe 0x416ad3
mov edx, dword [ebp - 0x144]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x416ac3
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x418615
push ecx
push edx
call fcn.00435b53
mov eax, dword [ebp - 0x23c]
add esp, 8
mov dword [ebp - 0x134], 0
mov dword [ebp - 0x130], 0xf
mov byte [ebp - 0x144], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x144], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x134], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov ecx, dword [ebp - 0x190]
cmp ecx, 0xf
jbe 0x416b50
mov edx, dword [ebp - 0x1a4]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x416b46
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x418615
push ecx
push edx
call fcn.00435b53
add esp, 8
mov ecx, dword [esi + 0x1c]
lea eax, [esi + 0x1c]
mov dword [ebp - 0x23c], ecx
lea ecx, [ebp - 0x144]
push ecx
lea ecx, [ebp - 0x2a0]
mov dword [ebp - 0x24c], eax
push ecx
mov ecx, eax
call fcn.00401c80
mov eax, dword [ebp - 0x298]
cmp byte [eax + 0xd], 0
jne 0x416bf2
add eax, 0x10
lea ecx, [esi + 0x1c]
push eax
lea eax, [ebp - 0x144]
push eax
call fcn.004014e0
test al, al
jne 0x416bf2
mov eax, dword [ebp - 0x23c]
cmp dword [ebp - 0x298], eax
je 0x416bf2
mov ecx, dword [ebp - 0x130]
mov dword [ebp - 4], 0xffffffff
cmp ecx, 0xf
jbe 0x4166f0
mov edx, dword [ebp - 0x144]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x416be3
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x418615
push ecx
push edx
call fcn.00435b53
add esp, 8
jmp 0x4166f0
cmp dword [ebp - 0x130], 0xf
lea eax, [ebp - 0x144]
push 1
cmova eax, dword [ebp - 0x144]
lea ecx, [ebp - 0x398]
push 0x40
push 1
push eax
call fcn.004021b0
mov eax, dword [ebp - 0x398]
mov byte [ebp - 4], 3
mov eax, dword [eax + 4]
cmp dword [ebp + eax - 0x38c], 0
jne 0x418645
lea eax, [ebp - 0x398]
push eax
lea ecx, [ebp - 0x220]
call fcn.0040ea10
lea eax, [esi + 4]
mov byte [ebp - 4], 5
push eax
lea ecx, [ebp - 0x1ec]
mov dword [ebp - 0x23c], eax
call fcn.00402680
lea eax, [ebp - 0x144]
mov byte [ebp - 4], 6
lea ecx, [esi + 4]
cmp ecx, eax
je 0x416c8c
cmp dword [ebp - 0x130], 0xf
push dword [ebp - 0x134]
cmova eax, dword [ebp - 0x144]
push eax
call fcn.004042c0
lea ecx, [esi + 4]
mov eax, dword [edi]
mov dword [ebp - 0x254], eax
lea eax, [ebp - 0x220]
mov dword [edi], eax
lea eax, [ebp - 0x2e0]
push ecx
push eax
lea ecx, [esi + 0x1c]
call fcn.00401c80
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
movq qword [ebp - 0x2ac], xmm0
cmp byte [eax + 0xd], 0
jne 0x416cd9
add eax, 0x10
lea ecx, [esi + 0x1c]
push eax
lea eax, [esi + 4]
push eax
call fcn.004014e0
test al, al
je 0x416d69
mov ecx, dword [ebp - 0x24c]
cmp dword [ecx + 4], 0x6666666
je 0x418640
mov eax, dword [ecx]
mov dword [ebp - 0x25c], eax
mov dword [ebp - 0x278], ecx
push 1
mov byte [ebp - 4], 7
mov dword [ebp - 0x274], 0
call fcn.004145f0
mov esi, eax
mov dword [ebp - 0x274], esi
push dword [ebp - 0x23c]
lea ecx, [esi + 0x10]
mov byte [ebp - 4], 8
call fcn.00402680
mov eax, dword [ebp - 0x25c]
mov ecx, dword [ebp - 0x24c]
push esi
push dword [ebp - 0x2a8]
mov dword [esi], eax
push dword [ebp - 0x2ac]
mov dword [esi + 4], eax
mov dword [esi + 8], eax
mov word [esi + 0xc], 0
mov byte [ebp - 4], 6
mov dword [ebp - 0x274], 0
call fcn.00403b20
mov esi, dword [ebp - 0x248]
push dword [ebp - 0x26c]
mov ecx, esi
call fcn.00416490
mov esi, eax
mov dword [ebp - 0x24c], esi
mov ecx, dword [edi]
mov byte [ebp - 4], 9
call fcn.0040ed60
cmp eax, 0xffffffff
jne 0x41861a
push 0x3c
call fcn.00435b23
add esp, 4
mov dword [ebp - 0x240], eax
mov dword [ebp - 0x2d4], eax
test eax, eax
je 0x416dff
mov dword [ebp - 0x25c], esi
xor esi, esi
mov dword [ebp - 0x24c], esi
mov dword [eax + 4], 0xffffffff
push dword [ebp - 0x23c]
lea ecx, [eax + 8]
mov byte [ebp - 4], 0xc
mov dword [eax], vtable.IncludeNode.0
call fcn.00402680
mov ecx, dword [ebp - 0x240]
xorps xmm0, xmm0
mov eax, dword [ebp - 0x25c]
movups xmmword [ecx + 0x20], xmm0
mov dword [ecx + 0x30], esi
mov dword [ecx + 0x34], 0xf
mov byte [ecx + 0x20], 0
mov dword [ecx + 0x38], eax
jmp 0x416e09
mov dword [ebp - 0x240], 0
mov eax, dword [ebp - 0x254]
mov ecx, dword [ebp - 0x23c]
mov dword [edi], eax
lea eax, [ebp - 0x1ec]
mov byte [ebp - 4], 9
cmp ecx, eax
je 0x416e3f
cmp dword [ebp - 0x1d8], 0xf
push dword [ebp - 0x1dc]
cmova eax, dword [ebp - 0x1ec]
push eax
call fcn.004042c0
test esi, esi
je 0x416e4b
mov eax, dword [esi]
mov ecx, esi
push 1
call dword [eax]
lea ecx, [ebp - 0x1ec]
call fcn.00402fb0
mov esi, dword [ebp - 0x204]
test esi, esi
je 0x416ea3
mov ecx, dword [ebp - 0x1fc]
mov eax, 0x2aaaaaab
sub ecx, esi
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
lea eax, [eax + eax*2]
shl eax, 2
push eax
push esi
call fcn.00412b60
mov dword [ebp - 0x204], 0
mov dword [ebp - 0x200], 0
mov dword [ebp - 0x1fc], 0
lea ecx, [ebp - 0x21c]
call fcn.00402fb0
lea ecx, [ebp - 0x398]
call fcn.00403350
mov eax, dword [ebp - 0x130]
mov dword [ebp - 4], 0xffffffff
cmp eax, 0xf
jbe 0x41749a
push eax
push dword [ebp - 0x144]
lea eax, [ebp - 0x144]
push eax
call fcn.004095e0
jmp 0x41749a
mov ecx, dword [edi]
lea eax, [ebp - 0x1d4]
push eax
call fcn.00411390
mov ecx, dword [edi]
mov dword [ebp - 4], 0xd
call fcn.00410560
xorps xmm0, xmm0
mov dword [ebp - 0x14c], 0
movups xmmword [ebp - 0x15c], xmm0
mov dword [ebp - 0x148], 0xf
mov byte [ebp - 0x15c], 0
cmp dword [esi], 2
mov byte [ebp - 4], 0xe
jne 0x416fcb
mov ecx, dword [edi]
call fcn.0040ed60
cmp eax, 0x3a
jne 0x416f7e
mov ecx, dword [edi]
push 1
call fcn.0040ed80
cmp eax, 0x8043
jne 0x417045
mov ecx, dword [edi]
push 2
call fcn.0040ed80
cmp eax, 0x3d
jne 0x417045
mov ecx, dword [edi]
call fcn.00410560
lea eax, [ebp - 0x12c]
mov ecx, esi
push eax
call fcn.00415900
jmp 0x416f8c
lea eax, [ebp - 0x12c]
mov ecx, esi
push eax
call fcn.00418c40
lea ecx, [ebp - 0x15c]
cmp ecx, eax
je 0x416fbe
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x15c], xmm0
movq xmm0, qword [eax + 0x10]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
movq qword [ebp - 0x14c], xmm0
mov byte [eax], 0
lea ecx, [ebp - 0x12c]
call fcn.00402fb0
jmp 0x417045
lea eax, [ebp - 0x1a4]
mov ecx, esi
push eax
call fcn.00418c40
lea ecx, [ebp - 0x15c]
cmp ecx, eax
je 0x41700b
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x15c], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x14c], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov ecx, dword [ebp - 0x190]
cmp ecx, 0xf
jbe 0x417045
mov edx, dword [ebp - 0x1a4]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x41703b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x418615
push ecx
push edx
call fcn.00435b53
add esp, 8
cmp dword [esi], 2
jne 0x41705b
mov ecx, dword [edi]
call fcn.0040ed60
cmp eax, 0x2e
je 0x417067
cmp dword [esi], 2
je 0x417070
mov ecx, dword [edi]
call fcn.0040ed60
cmp eax, 0x5c
jne 0x417070
mov byte [ebp - 0x24d], 1
jmp 0x417077
mov byte [ebp - 0x24d], 0
lea ecx, [ebp - 0x1d4]
push ecx
lea ecx, [ebp - 0x2b8]
push ecx
lea ecx, [esi + 0x2c]
call fcn.00401c80
mov eax, dword [ebp - 0x2b0]
cmp byte [eax + 0xd], 0
jne 0x4170bf
add eax, 0x10
lea ecx, [esi + 0x2c]
push eax
lea eax, [ebp - 0x1d4]
push eax
call fcn.004014e0
test al, al
jne 0x4170bf
mov eax, dword [esi + 0x2c]
cmp dword [ebp - 0x2b0], eax
jne 0x417241
mov ecx, dword [edi]
call fcn.0040ed60
cmp eax, 0x3d
je 0x417241
cmp byte [ebp - 0x24d], 0
jne 0x417241
mov ecx, dword [edi]
call fcn.0040ed60
cmp eax, 0x5b
je 0x417241
mov ecx, dword [edi]
call fcn.0040ed60
cmp eax, 0x28
jne 0x41719c
mov dword [ebp - 0x254], 1
mov eax, 1
mov ecx, dword [edi]
push eax
mov dword [ebp - 0x23c], eax
call fcn.0040ed80
cmp eax, 0x3a
je 0x4186b3
cmp eax, 0xa
je 0x4186b3
cmp eax, 0x28
jne 0x41713f
mov eax, dword [ebp - 0x23c]
inc dword [ebp - 0x254]
inc eax
jmp 0x41710b
cmp eax, 0x29
jne 0x41714d
sub dword [ebp - 0x254], 1
je 0x417156
mov eax, dword [ebp - 0x23c]
inc eax
jmp 0x41710b
mov eax, dword [ebp - 0x23c]
mov ecx, dword [edi]
inc eax
push eax
call fcn.0040ed80
cmp eax, 0x3a
je 0x41716f
cmp eax, 0xa
jne 0x41719c
mov ecx, dword [edi]
call fcn.00410560
mov ecx, esi
call fcn.00415350
mov ecx, dword [edi]
mov dword [ebp - 0x23c], eax
call fcn.0040ed60
cmp eax, 0x29
jne 0x418691
mov ecx, dword [edi]
call fcn.00410560
jmp 0x4171a9
mov ecx, esi
call fcn.00415350
mov dword [ebp - 0x23c], eax
push 0x40
call fcn.00435b23
mov esi, eax
add esp, 4
mov dword [ebp - 0x2c8], esi
test esi, esi
je 0x4171fd
mov dword [esi + 4], 0
lea eax, [ebp - 0x1d4]
mov byte [ebp - 4], 0x12
push eax
lea ecx, [esi + 8]
mov dword [esi], vtable.CallNode.0
call fcn.00402680
lea eax, [ebp - 0x15c]
mov byte [ebp - 4], 0x13
push eax
lea ecx, [esi + 0x20]
call fcn.00402680
mov eax, dword [ebp - 0x23c]
mov dword [esi + 0x38], eax
jmp 0x4171ff
xor esi, esi
push 0xc
mov byte [ebp - 4], 0xe
call fcn.00435b23
add esp, 4
mov dword [ebp - 0x240], eax
mov dword [ebp - 0x244], eax
test eax, eax
je 0x417232
mov dword [eax + 4], 0xffffffff
mov dword [eax], vtable.ExprStmtNode.0
mov dword [eax + 8], esi
jmp 0x4172dd
mov dword [ebp - 0x240], 0
jmp 0x4172dd
push 0
lea eax, [ebp - 0x15c]
mov ecx, esi
push eax
lea eax, [ebp - 0x1d4]
push eax
call fcn.00419270
mov esi, eax
mov dword [ebp - 0x244], esi
mov ecx, dword [edi]
mov byte [ebp - 4], 0x14
call fcn.0040ed60
cmp eax, 0x3d
jne 0x4186d5
mov ecx, dword [edi]
call fcn.00410560
mov ecx, dword [ebp - 0x248]
push 0
call fcn.00415260
push 0x10
mov dword [ebp - 0x23c], eax
call fcn.00435b23
add esp, 4
mov dword [ebp - 0x240], eax
mov dword [ebp - 0x244], eax
test eax, eax
je 0x4172c7
mov ecx, esi
mov dword [eax + 4], 0xffffffff
mov dword [eax + 8], ecx
xor esi, esi
mov ecx, dword [ebp - 0x23c]
mov dword [eax], vtable.AssNode.0
mov dword [eax + 0xc], ecx
jmp 0x4172d1
mov dword [ebp - 0x240], 0
test esi, esi
je 0x4172dd
mov eax, dword [esi]
mov ecx, esi
push 1
call dword [eax]
mov ecx, dword [ebp - 0x148]
mov byte [ebp - 4], 0xd
cmp ecx, 0xf
jbe 0x41731b
mov edx, dword [ebp - 0x15c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x417311
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x418615
push ecx
push edx
call fcn.00435b53
add esp, 8
mov ecx, dword [ebp - 0x1c0]
mov dword [ebp - 4], 0xffffffff
cmp ecx, 0xf
jbe 0x41749a
mov edx, dword [ebp - 0x1d4]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x417356
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x418615
push ecx
push edx
call fcn.00435b53
add esp, 8
jmp 0x41749a
mov ecx, dword [edi]
call fcn.00410560
mov ecx, esi
call fcn.004159b0
mov ecx, dword [edi]
mov dword [ebp - 0x240], eax
call fcn.0040ed60
cmp eax, 0x8008
jne 0x41749a
mov ecx, dword [edi]
call fcn.00410560
jmp 0x41749a
mov ecx, dword [edi]
call fcn.00410560
push 0
mov ecx, esi
call fcn.00415260
mov esi, eax
mov dword [ebp - 0x244], esi
mov ecx, dword [ebp - 0x248]
push 1
mov dword [ebp - 4], 0x16
call fcn.00416490
mov edi, eax
mov dword [ebp - 0x260], edi
mov eax, dword [ebp - 0x248]
mov byte [ebp - 4], 0x17
mov ecx, dword [eax + 0x24]
call fcn.00411300
mov dword [ebp - 0x23c], eax
mov eax, dword [ebp - 0x248]
mov ecx, dword [eax + 0x24]
call fcn.0040ed60
cmp eax, 0x800b
jne 0x4186fb
mov eax, dword [ebp - 0x248]
mov ecx, dword [eax + 0x24]
call fcn.00410560
push 0x2c
call fcn.00435b23
mov edx, eax
add esp, 4
mov dword [ebp - 0x240], edx
mov dword [ebp - 0x244], edx
test edx, edx
je 0x41746b
mov ecx, dword [ebp - 0x23c]
mov eax, edi
mov dword [edx + 8], ecx
xorps xmm0, xmm0
mov dword [ebp - 0x24c], esi
xor esi, esi
mov ecx, dword [ebp - 0x24c]
xor edi, edi
mov dword [edx + 4], 0xffffffff
mov dword [edx], vtable.WhileNode.0
mov dword [edx + 0xc], ecx
mov dword [edx + 0x10], eax
movups xmmword [edx + 0x14], xmm0
mov dword [edx + 0x24], esi
mov dword [edx + 0x28], 0xf
mov byte [edx + 0x14], 0
jmp 0x417475
mov dword [ebp - 0x240], 0
test edi, edi
je 0x417481
mov eax, dword [edi]
mov ecx, edi
push 1
call dword [eax]
mov dword [ebp - 4], 0xffffffff
test esi, esi
je 0x417494
mov eax, dword [esi]
mov ecx, esi
push 1
call dword [eax]
mov edi, dword [ebp - 0x258]
mov esi, dword [ebp - 0x240]
test esi, esi
je 0x4166f0
mov ecx, dword [ebp - 0x268]
mov dword [esi + 4], ecx
mov ecx, dword [ebp - 0x270]
add ecx, 0x1c
mov dword [ebp - 0x244], esi
mov eax, dword [ecx + 4]
cmp eax, dword [ecx + 8]
je 0x4182ee
mov dword [eax], esi
add dword [ecx + 4], 4
jmp 0x4166f0
mov ecx, dword [edi]
call fcn.00410560
push 1
mov ecx, esi
mov dword [ebp - 0x24c], 0
call fcn.00416490
mov esi, eax
mov dword [ebp - 0x244], esi
mov ecx, dword [edi]
mov dword [ebp - 4], 0x19
call fcn.0040ed60
mov ecx, dword [edi]
mov dword [ebp - 0x23c], eax
call fcn.00411300
mov dword [ebp - 0x25c], eax
mov eax, dword [ebp - 0x23c]
cmp eax, 0x801e
je 0x417532
cmp eax, 0x801f
jne 0x418721
mov ecx, dword [edi]
call fcn.00410560
cmp dword [ebp - 0x23c], 0x801e
jne 0x417558
mov ecx, dword [ebp - 0x248]
push 0
call fcn.00415260
mov dword [ebp - 0x24c], eax
push 0x2c
call fcn.00435b23
mov ecx, eax
add esp, 4
mov dword [ebp - 0x240], ecx
mov dword [ebp - 0x244], ecx
test ecx, ecx
je 0x4175b1
mov edx, dword [ebp - 0x25c]
mov eax, esi
mov dword [ecx + 0xc], eax
xorps xmm0, xmm0
mov eax, dword [ebp - 0x24c]
xor esi, esi
mov dword [ecx + 4], 0xffffffff
mov dword [ecx], vtable.RepeatNode.0
mov dword [ecx + 8], edx
mov dword [ecx + 0x10], eax
movups xmmword [ecx + 0x14], xmm0
mov dword [ecx + 0x24], esi
mov dword [ecx + 0x28], 0xf
mov byte [ecx + 0x14], 0
jmp 0x4175bb
mov dword [ebp - 0x240], 0
mov dword [ebp - 4], 0xffffffff
test esi, esi
je 0x41749a
mov eax, dword [esi]
mov ecx, esi
push 1
call dword [eax]
jmp 0x41749a
mov ecx, dword [edi]
call fcn.00410560
push 0
mov ecx, esi
call fcn.00415260
push 0x20
mov dword [ebp - 0x23c], eax
call fcn.00435b23
add esp, 4
mov dword [ebp - 0x240], eax
mov dword [ebp - 0x244], eax
test eax, eax
je 0x417642
mov ecx, dword [ebp - 0x23c]
mov dword [eax + 4], 0xffffffff
mov dword [eax], vtable.SelectNode.0
mov dword [eax + 8], ecx
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0
mov dword [eax + 0x18], 0
mov dword [eax + 0x1c], 0
jmp 0x41764a
xor eax, eax
mov dword [ebp - 0x240], eax
mov dword [ebp - 0x244], eax
mov dword [ebp - 4], 0x1b
mov ecx, dword [edi]
mov esi, edi
call fcn.0040ed60
cmp eax, 0x3a
je 0x41766a
cmp eax, 0xa
jne 0x417673
mov ecx, dword [edi]
call fcn.00410560
jmp 0x417657
mov ecx, dword [esi]
call fcn.0040ed60
mov ecx, dword [esi]
mov esi, dword [ebp - 0x248]
cmp eax, 0x801a
jne 0x417770
call fcn.00410560
mov ecx, esi
call fcn.00415350
mov esi, eax
mov dword [ebp - 0x25c], esi
mov eax, dword [esi + 8]
sub eax, dword [esi + 4]
mov byte [ebp - 4], 0x1c
test eax, 0xfffffffc
je 0x418747
mov ecx, dword [ebp - 0x248]
push 1
call fcn.00416490
mov edi, eax
mov dword [ebp - 0x24c], edi
push 0xc
mov byte [ebp - 4], 0x1e
call fcn.00435b23
add esp, 4
mov dword [ebp - 0x23c], eax
mov dword [ebp - 0x260], eax
test eax, eax
je 0x41770b
mov edx, edi
mov dword [eax], vtable.CaseNode.0
xor edi, edi
mov dword [eax + 8], edx
mov ecx, esi
mov dword [ebp - 0x24c], edi
xor esi, esi
mov dword [eax + 4], ecx
mov dword [ebp - 0x25c], esi
jmp 0x417713
xor eax, eax
mov dword [ebp - 0x23c], eax
mov ecx, dword [ebp - 0x240]
add ecx, 0x10
mov dword [ebp - 0x254], eax
mov edx, dword [ecx + 4]
cmp edx, dword [ecx + 8]
je 0x417738
mov eax, dword [ebp - 0x23c]
mov dword [edx], eax
add dword [ecx + 4], 4
jmp 0x417745
lea eax, [ebp - 0x254]
push eax
push edx
call fcn.0040d660
test edi, edi
je 0x417751
mov eax, dword [edi]
mov ecx, edi
push 1
call dword [eax]
mov edi, dword [ebp - 0x258]
mov byte [ebp - 4], 0x1b
test esi, esi
je 0x417657
mov eax, dword [esi]
mov ecx, esi
push 1
call dword [eax]
jmp 0x417657
call fcn.0040ed60
mov ecx, dword [edi]
cmp eax, 0x801b
jne 0x4177ce
call fcn.00410560
push 1
mov ecx, esi
call fcn.00416490
mov dword [ebp - 0x23c], eax
mov ecx, dword [edi]
mov byte [ebp - 4], 0x1f
call fcn.0040ed60
cmp eax, 0x801c
jne 0x41876d
mov eax, dword [ebp - 0x240]
mov ecx, dword [ebp - 0x23c]
mov byte [ebp - 4], 0x1b
mov dword [eax + 0xc], ecx
mov ecx, dword [edi]
call fcn.00410560
mov dword [ebp - 4], 0xffffffff
jmp 0x41749a
call fcn.0040ed60
cmp eax, 0x801c
jne 0x41878f
mov ecx, dword [edi]
call fcn.00410560
mov dword [ebp - 4], 0xffffffff
jmp 0x41749a
mov dword [ebp - 0x254], 0
mov dword [ebp - 4], 0x22
mov dword [ebp - 0x25c], 0
mov ecx, dword [edi]
mov byte [ebp - 4], 0x23
call fcn.00410560
push 0
mov ecx, esi
call fcn.00419740
mov ecx, dword [edi]
mov esi, eax
mov dword [ebp - 0x254], esi
call fcn.0040ed60
cmp eax, 0x3d
jne 0x41881f
mov ecx, dword [edi]
call fcn.00410560
cmp eax, 0x8014
jne 0x417960
mov ecx, dword [edi]
call fcn.00410560
mov ecx, dword [ebp - 0x248]
lea eax, [ebp - 0x238]
push eax
call fcn.00415900
mov ecx, dword [ebp - 0x248]
push 1
mov byte [ebp - 4], 0x25
call fcn.00416490
mov edi, eax
mov eax, dword [ebp - 0x258]
mov dword [ebp - 0x25c], edi
mov ecx, dword [eax]
call fcn.00411300
mov dword [ebp - 0x23c], eax
mov eax, dword [ebp - 0x258]
mov ecx, dword [eax]
call fcn.0040ed60
cmp eax, 0x800f
jne 0x4187b1
mov eax, dword [ebp - 0x258]
mov ecx, dword [eax]
call fcn.00410560
push 0x44
call fcn.00435b23
mov ecx, eax
add esp, 4
mov dword [ebp - 0x240], ecx
mov dword [ebp - 0x2c4], ecx
test ecx, ecx
je 0x417946
mov dword [ebp - 0x24c], edi
xor eax, eax
xor edi, edi
mov dword [ebp - 0x254], eax
mov dword [ebp - 0x25c], edi
mov dword [ecx + 4], 0xffffffff
mov eax, dword [ebp - 0x23c]
mov dword [ecx + 8], eax
lea eax, [ebp - 0x238]
mov dword [ecx], vtable.ForEachNode.0
mov dword [ecx + 0xc], esi
add ecx, 0x10
push eax
mov byte [ebp - 4], 0x28
call fcn.00402680
mov esi, dword [ebp - 0x240]
lea ecx, [ebp - 0x238]
mov eax, dword [ebp - 0x24c]
xorps xmm0, xmm0
mov dword [esi + 0x28], eax
movups xmmword [esi + 0x2c], xmm0
mov dword [esi + 0x3c], edi
mov dword [esi + 0x40], 0xf
mov byte [esi + 0x2c], 0
call fcn.00402fb0
jmp 0x417b27
lea ecx, [ebp - 0x238]
mov dword [ebp - 0x240], 0
call fcn.00402fb0
jmp 0x417b27
mov dword [ebp - 0x23c], 0
mov dword [ebp - 0x24c], 0
mov dword [ebp - 0x240], 0
mov esi, dword [ebp - 0x248]
mov ecx, esi
push 0
mov byte [ebp - 4], 0x2b
call fcn.00415260
mov ecx, dword [edi]
mov dword [ebp - 0x23c], eax
call fcn.0040ed60
cmp eax, 0x800d
jne 0x4187fd
mov ecx, dword [edi]
call fcn.00410560
push 0
mov ecx, esi
call fcn.00415260
mov ecx, dword [edi]
mov dword [ebp - 0x24c], eax
call fcn.0040ed60
cmp eax, 0x800e
jne 0x4179e1
mov ecx, dword [edi]
call fcn.00410560
push 0
mov ecx, esi
call fcn.00415260
mov esi, eax
jmp 0x417a0c
push 0xc
call fcn.00435b23
add esp, 4
mov dword [ebp - 0x2c0], eax
mov byte [ebp - 4], 0x2d
test eax, eax
je 0x417a06
push 1
mov ecx, eax
call fcn.0042b5f0
mov esi, eax
jmp 0x417a08
xor esi, esi
mov byte [ebp - 4], 0x2b
mov ecx, dword [ebp - 0x248]
push 1
mov dword [ebp - 0x240], esi
call fcn.00416490
mov edi, eax
mov eax, dword [ebp - 0x258]
mov dword [ebp - 0x25c], edi
mov ecx, dword [eax]
call fcn.00411300
mov dword [ebp - 0x280], eax
mov eax, dword [ebp - 0x258]
mov ecx, dword [eax]
call fcn.0040ed60
cmp eax, 0x800f
jne 0x4187d7
mov eax, dword [ebp - 0x258]
mov ecx, dword [eax]
call fcn.00410560
push 0x38
call fcn.00435b23
add esp, 4
mov dword [ebp - 0x27c], eax
mov byte [ebp - 4], 0x2f
test eax, eax
je 0x417aed
mov eax, dword [ebp - 0x254]
mov ecx, esi
push dword [ebp - 0x280]
mov edx, dword [ebp - 0x24c]
xor esi, esi
mov dword [ebp - 0x244], eax
xor eax, eax
mov dword [ebp - 0x254], eax
mov eax, dword [ebp - 0x23c]
mov dword [ebp - 0x260], eax
mov eax, edi
push eax
push ecx
mov ecx, dword [ebp - 0x27c]
xor edi, edi
push edx
push dword [ebp - 0x260]
mov dword [ebp - 0x23c], 0
push dword [ebp - 0x244]
mov dword [ebp - 0x24c], 0
mov dword [ebp - 0x240], esi
mov dword [ebp - 0x25c], edi
call fcn.004224a0
mov dword [ebp - 0x240], eax
jmp 0x417af7
mov dword [ebp - 0x240], 0
test esi, esi
je 0x417b03
mov eax, dword [esi]
mov ecx, esi
push 1
call dword [eax]
mov eax, dword [ebp - 0x24c]
test eax, eax
je 0x417b15
mov edx, dword [eax]
mov ecx, eax
push 1
call dword [edx]
mov eax, dword [ebp - 0x23c]
test eax, eax
je 0x417b27
mov edx, dword [eax]
mov ecx, eax
push 1
call dword [edx]
test edi, edi
je 0x417b33
mov eax, dword [edi]
mov ecx, edi
push 1
call dword [eax]
mov eax, dword [ebp - 0x254]
mov dword [ebp - 4], 0xffffffff
test eax, eax
je 0x417494
mov edx, dword [eax]
mov ecx, eax
push 1
call dword [edx]
jmp 0x417494
mov ecx, dword [edi]
call fcn.00410560
push 0x20
call fcn.00435b23
add esp, 4
mov dword [ebp - 0x240], eax
mov dword [ebp - 0x244], eax
test eax, eax
je 0x417ba8
xorps xmm0, xmm0
movups xmmword [eax], xmm0
movups xmmword [eax + 0x10], xmm0
mov dword [eax + 4], 0xffffffff
mov dword [eax], vtable.ExitNode.0
movups xmmword [eax + 8], xmm0
mov dword [eax + 0x18], 0
mov dword [eax + 0x1c], 0xf
mov byte [eax + 8], 0
jmp 0x41749a
mov dword [ebp - 0x240], 0
jmp 0x41749a
mov ecx, dword [edi]
call fcn.00410560
lea eax, [ebp - 0x1bc]
mov ecx, esi
push eax
call fcn.00415900
push 0x20
mov dword [ebp - 4], 0x30
call fcn.00435b23
add esp, 4
mov dword [ebp - 0x240], eax
mov dword [ebp - 0x2bc], eax
test eax, eax
je 0x417cb9
mov dword [eax + 4], 0xffffffff
mov dword [eax], vtable.GotoNode.0
lea esi, [eax + 8]
xorps xmm0, xmm0
mov byte [ebp - 4], 0x32
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
lea ecx, [ebp - 0x1bc]
mov dword [esi + 0x14], 0
cmp dword [ebp - 0x1a8], 0xf
mov eax, dword [ebp - 0x1ac]
cmova ecx, dword [ebp - 0x1bc]
mov dword [ebp - 0x260], ecx
mov dword [ebp - 0x244], eax
cmp eax, 0x7fffffff
ja 0x418610
cmp eax, 0xf
ja 0x417c61
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], 0xf
movups xmm0, xmmword [ecx]
movups xmmword [esi], xmm0
jmp 0x417cc3
or eax, 0xf
cmp eax, 0x7fffffff
jbe 0x417c72
mov eax, 0x7fffffff
jmp 0x417c7d
cmp eax, 0x16
mov ecx, 0x16
cmovb eax, ecx
mov dword [ebp - 0x23c], eax
lea eax, [ebp - 0x23c]
push eax
push esi
call fcn.00401590
mov edx, dword [ebp - 0x244]
mov ecx, dword [ebp - 0x23c]
mov dword [esi + 0x14], ecx
mov dword [esi], eax
lea ecx, [edx + 1]
mov dword [esi + 0x10], edx
push ecx
push dword [ebp - 0x260]
push eax
call fcn.004371c0
add esp, 0xc
jmp 0x417cc3
mov dword [ebp - 0x240], 0
mov ecx, dword [ebp - 0x1a8]
mov dword [ebp - 4], 0xffffffff
cmp ecx, 0xf
jbe 0x41749a
mov edx, dword [ebp - 0x1bc]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x417cfe
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x418615
push ecx
push edx
call fcn.00435b53
add esp, 8
jmp 0x41749a
mov ecx, dword [edi]
call fcn.00410560
lea eax, [ebp - 0x18c]
mov ecx, esi
push eax
call fcn.00415900
push 0x20
mov dword [ebp - 4], 0x33
call fcn.00435b23
add esp, 4
mov dword [ebp - 0x240], eax
mov dword [ebp - 0x294], eax
test eax, eax
je 0x417e0f
mov dword [eax + 4], 0xffffffff
mov dword [eax], vtable.GosubNode.0
lea esi, [eax + 8]
xorps xmm0, xmm0
mov byte [ebp - 4], 0x35
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
lea ecx, [ebp - 0x18c]
mov dword [esi + 0x14], 0
cmp dword [ebp - 0x178], 0xf
mov eax, dword [ebp - 0x17c]
cmova ecx, dword [ebp - 0x18c]
mov dword [ebp - 0x260], ecx
mov dword [ebp - 0x244], eax
cmp eax, 0x7fffffff
ja 0x418610
cmp eax, 0xf
ja 0x417db7
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], 0xf
movups xmm0, xmmword [ecx]
movups xmmword [esi], xmm0
jmp 0x417e19
or eax, 0xf
cmp eax, 0x7fffffff
jbe 0x417dc8
mov eax, 0x7fffffff
jmp 0x417dd3
cmp eax, 0x16
mov ecx, 0x16
cmovb eax, ecx
mov dword [ebp - 0x23c], eax
lea eax, [ebp - 0x23c]
push eax
push esi
call fcn.00401590
mov edx, dword [ebp - 0x244]
mov ecx, dword [ebp - 0x23c]
mov dword [esi + 0x14], ecx
mov dword [esi], eax
lea ecx, [edx + 1]
mov dword [esi + 0x10], edx
push ecx
push dword [ebp - 0x260]
push eax
call fcn.004371c0
add esp, 0xc
jmp 0x417e19
mov dword [ebp - 0x240], 0
mov ecx, dword [ebp - 0x178]
mov dword [ebp - 4], 0xffffffff
cmp ecx, 0xf
jbe 0x41749a
mov edx, dword [ebp - 0x18c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x417e54
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x418615
push ecx
push edx
call fcn.00435b53
add esp, 8
jmp 0x41749a
mov ecx, dword [edi]
call fcn.00410560
push 0x24
call fcn.00435b23
add esp, 4
mov dword [ebp - 0x240], eax
mov dword [ebp - 0x284], eax
mov dword [ebp - 4], 0x36
test eax, eax
je 0x417ecf
push 1
mov ecx, esi
call fcn.00415260
mov ecx, dword [ebp - 0x240]
xorps xmm0, xmm0
mov dword [ebp - 4], 0xffffffff
mov dword [ecx + 4], 0xffffffff
mov dword [ecx], vtable.ReturnNode.0
mov dword [ecx + 8], eax
movups xmmword [ecx + 0xc], xmm0
mov dword [ecx + 0x1c], 0
mov dword [ecx + 0x20], 0xf
mov byte [ecx + 0xc], 0
jmp 0x41749a
mov dword [ebp - 0x240], 0
mov dword [ebp - 4], 0xffffffff
jmp 0x41749a
mov ecx, dword [edi]
call fcn.00410560
cmp eax, 0x8014
jne 0x417fa3
mov ecx, dword [edi]
call fcn.00410560
lea eax, [ebp - 0x1a4]
mov ecx, esi
push eax
call fcn.00415900
push 0x20
mov dword [ebp - 4], 0x37
call fcn.00435b23
add esp, 4
mov dword [ebp - 0x240], eax
mov dword [ebp - 0x288], eax
test eax, eax
je 0x417f4f
mov dword [eax + 4], 0xffffffff
lea ecx, [ebp - 0x1a4]
mov byte [ebp - 4], 0x39
push ecx
lea ecx, [eax + 8]
mov dword [eax], vtable.DeleteEachNode.0
call fcn.00402680
jmp 0x417f59
mov dword [ebp - 0x240], 0
mov ecx, dword [ebp - 0x190]
mov dword [ebp - 4], 0xffffffff
cmp ecx, 0xf
jbe 0x41749a
mov edx, dword [ebp - 0x1a4]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x417f94
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x418615
push ecx
push edx
call fcn.00435b53
add esp, 8
jmp 0x41749a
push 0
mov ecx, esi
call fcn.00415260
push 0xc
mov esi, eax
call fcn.00435b23
add esp, 4
mov dword [ebp - 0x240], eax
mov dword [ebp - 0x244], eax
test eax, eax
je 0x417ba8
mov dword [eax + 4], 0xffffffff
mov dword [eax], vtable.DeleteNode.0
mov dword [eax + 8], esi
jmp 0x41749a
mov ecx, dword [edi]
call fcn.00410560
push 0
mov ecx, esi
call fcn.00415260
mov esi, eax
mov dword [ebp - 0x244], esi
mov ecx, dword [edi]
mov dword [ebp - 4], 0x3a
call fcn.0040ed60
cmp eax, 0x8034
je 0x418020
mov ecx, dword [edi]
call fcn.0040ed60
cmp eax, 0x8035
jne 0x418845
mov ecx, dword [edi]
call fcn.0040ed60
mov ecx, dword [edi]
cmp eax, 0x8034
sete byte [ebp - 0x24d]
call fcn.00410560
mov ecx, dword [ebp - 0x248]
push 0
call fcn.00415260
mov edi, eax
mov dword [ebp - 0x260], edi
push 0x14
mov byte [ebp - 4], 0x3c
call fcn.00435b23
mov edx, eax
add esp, 4
mov dword [ebp - 0x240], edx
mov dword [ebp - 0x244], edx
test edx, edx
je 0x41746b
mov eax, esi
mov dword [edx + 4], 0xffffffff
mov ecx, edi
mov dword [edx + 8], eax
mov al, byte [ebp - 0x24d]
xor edi, edi
xor esi, esi
mov dword [edx], vtable.InsertNode.0
mov dword [edx + 0xc], ecx
mov byte [edx + 0x10], al
jmp 0x417475
mov ecx, dword [edi]
call fcn.00410560
push 0
mov ecx, esi
call fcn.00419740
push 0xc
mov dword [ebp - 0x244], eax
call fcn.00435b23
mov esi, eax
add esp, 4
mov dword [ebp - 0x260], esi
test esi, esi
je 0x4180e4
mov eax, dword [ebp - 0x244]
mov dword [esi + 4], 0xffffffff
mov dword [esi], vtable.ReadNode.0
mov dword [esi + 8], eax
jmp 0x4180e6
xor esi, esi
mov ecx, dword [ebp - 0x268]
mov dword [esi + 4], ecx
mov ecx, dword [edi]
call fcn.00411300
mov dword [ebp - 0x268], eax
mov eax, dword [ebp - 0x270]
mov dword [ebp - 0x244], esi
mov ecx, dword [eax + 0x20]
cmp ecx, dword [eax + 0x24]
je 0x418118
mov dword [ecx], esi
add dword [eax + 0x20], 4
jmp 0x418128
lea edx, [ebp - 0x244]
push edx
push ecx
lea ecx, [eax + 0x1c]
call fcn.0040d660
mov ecx, dword [edi]
call fcn.0040ed60
mov esi, dword [ebp - 0x248]
cmp eax, 0x2c
je case.0x416955.32801
jmp 0x4166f0
mov ecx, dword [edi]
call fcn.00410560
push 0x24
cmp eax, 0x8043
jne 0x418228
call fcn.00435b23
add esp, 4
mov dword [ebp - 0x240], eax
mov dword [ebp - 0x28c], eax
mov dword [ebp - 4], 0x3d
test eax, eax
je 0x4181be
mov ecx, dword [edi]
lea eax, [ebp - 0x12c]
push eax
call fcn.00411390
mov ecx, dword [ebp - 0x264]
or ecx, 1
mov dword [ebp - 0x264], ecx
mov dword [ebp - 0x23c], ecx
mov ecx, dword [ebp - 0x240]
mov dword [ecx + 4], 0xffffffff
mov dword [ecx], vtable.RestoreNode.0
add ecx, 8
push eax
mov dword [ebp - 4], 0x3f
call fcn.00402680
jmp 0x4181c8
mov dword [ebp - 0x240], 0
mov eax, dword [ebp - 0x264]
mov dword [ebp - 4], 0xffffffff
test al, 1
je 0x41821c
mov ecx, dword [ebp - 0x118]
and eax, 0xfffffffe
mov dword [ebp - 0x264], eax
cmp ecx, 0xf
jbe 0x41821c
mov edx, dword [ebp - 0x12c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x418212
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x418615
push ecx
push edx
call fcn.00435b53
add esp, 8
mov ecx, dword [edi]
call fcn.00410560
jmp 0x41749a
call fcn.00435b23
add esp, 4
mov dword [ebp - 0x240], eax
mov dword [ebp - 0x290], eax
test eax, eax
je 0x41829f
xorps xmm0, xmm0
mov dword [ebp - 0x164], 0
movups xmmword [ebp - 0x174], xmm0
mov dword [ebp - 0x160], 0xf
mov byte [ebp - 0x174], 0
mov ecx, dword [ebp - 0x264]
or ecx, 2
mov dword [eax + 4], 0xffffffff
mov dword [ebp - 0x264], ecx
mov dword [ebp - 0x23c], ecx
lea ecx, [ebp - 0x174]
mov dword [ebp - 4], 0x43
push ecx
lea ecx, [eax + 8]
mov dword [eax], vtable.RestoreNode.0
call fcn.00402680
jmp 0x4182a9
mov dword [ebp - 0x240], 0
mov eax, dword [ebp - 0x264]
mov dword [ebp - 4], 0xffffffff
test al, 2
je 0x41749a
and eax, 0xfffffffd
mov dword [ebp - 0x264], eax
mov eax, dword [ebp - 0x160]
cmp eax, 0xf
jbe 0x41749a
push eax
push dword [ebp - 0x174]
lea eax, [ebp - 0x174]
push eax
call fcn.004095e0
jmp 0x41749a
lea edx, [ebp - 0x244]
push edx
push eax
call fcn.0040d660
jmp 0x4166f0
cmp dword [ebp - 0x26c], 0
jne 0x41886b
nop dword [eax]
mov ecx, dword [edi]
call fcn.00410560
push 0
mov ecx, esi
call fcn.00415260
push 0x3c
mov dword [ebp - 0x244], eax
call fcn.00435b23
add esp, 4
mov dword [ebp - 0x260], eax
test eax, eax
je 0x418381
mov ecx, dword [ebp - 0x244]
xorps xmm0, xmm0
mov dword [eax + 4], 0xffffffff
movups xmmword [eax + 8], xmm0
mov dword [eax + 0x18], 0
mov dword [eax + 0x1c], 0xf
mov byte [eax + 8], 0
mov dword [eax], vtable.DataDeclNode.0
mov dword [eax + 0x20], ecx
movups xmmword [eax + 0x24], xmm0
mov dword [eax + 0x34], 0
mov dword [eax + 0x38], 0xf
mov byte [eax + 0x24], 0
jmp 0x418383
xor eax, eax
mov ecx, dword [esi + 0x40]
add ecx, 4
mov dword [ebp - 0x244], eax
mov edx, dword [ecx + 4]
cmp edx, dword [ecx + 8]
je 0x41839f
mov dword [edx], eax
add dword [ecx + 4], 4
jmp 0x4183ac
lea eax, [ebp - 0x244]
push eax
push edx
call fcn.0040d660
mov ecx, dword [edi]
call fcn.0040ed60
cmp eax, 0x2c
je 0x418310
jmp 0x4166f0
cmp dword [ebp - 0x26c], 0
jne 0x418890
mov ecx, dword [edi]
call fcn.00410560
mov ecx, esi
call fcn.004189f0
mov ecx, dword [esi + 0x38]
mov edx, dword [ecx + 8]
add ecx, 4
mov dword [ebp - 0x244], eax
cmp edx, dword [ecx + 8]
je 0x4183fb
mov dword [edx], eax
add dword [ecx + 4], 4
jmp 0x4166f0
lea eax, [ebp - 0x244]
push eax
push edx
call fcn.0040d660
jmp 0x4166f0
cmp dword [ebp - 0x26c], 0
jne 0x4188b5
nop word [eax + eax]
mov ecx, dword [edi]
call fcn.00410560
push 1
push 8
mov ecx, esi
call fcn.00419840
mov ecx, dword [esi + 0x34]
add ecx, 4
mov dword [ebp - 0x244], eax
mov edx, dword [ecx + 4]
cmp edx, dword [ecx + 8]
je 0x41844e
mov dword [edx], eax
add dword [ecx + 4], 4
jmp 0x41845b
lea eax, [ebp - 0x244]
push eax
push edx
call fcn.0040d660
mov ecx, dword [edi]
call fcn.0040ed60
cmp eax, 0x2c
je 0x418420
jmp 0x4166f0
cmp dword [ebp - 0x26c], 0
jne 0x4188da
mov ecx, dword [edi]
call fcn.00410560
mov ecx, esi
call fcn.00415430
mov ecx, dword [esi + 0x3c]
jmp 0x4183df
mov ecx, dword [edi]
call fcn.00410560
push 0
push 0x10
mov ecx, esi
call fcn.00419840
push 0xc
mov dword [ebp - 0x244], eax
call fcn.00435b23
mov esi, eax
add esp, 4
mov dword [ebp - 0x260], esi
test esi, esi
je 0x4184dc
mov eax, dword [ebp - 0x244]
mov dword [esi + 4], 0xffffffff
mov dword [esi], vtable.DeclStmtNode.0
mov dword [esi + 8], eax
mov ecx, dword [eax + 4]
mov dword [esi + 4], ecx
jmp 0x4184de
xor esi, esi
mov ecx, dword [ebp - 0x268]
mov dword [esi + 4], ecx
mov ecx, dword [edi]
call fcn.00411300
mov dword [ebp - 0x268], eax
mov eax, dword [ebp - 0x270]
mov dword [ebp - 0x244], esi
mov ecx, dword [eax + 0x20]
cmp ecx, dword [eax + 0x24]
je 0x418510
mov dword [ecx], esi
add dword [eax + 0x20], 4
jmp 0x418520
lea edx, [ebp - 0x244]
push edx
push ecx
lea ecx, [eax + 0x1c]
call fcn.0040d660
mov ecx, dword [edi]
call fcn.0040ed60
mov esi, dword [ebp - 0x248]
cmp eax, 0x2c
je case.0x416955.32790
jmp 0x4166f0
cmp dword [ebp - 0x26c], 0
jne 0x4188ff
mov ecx, dword [edi]
call fcn.00410560
push 0
push 8
mov ecx, esi
call fcn.00419840
push 0xc
mov dword [ebp - 0x244], eax
call fcn.00435b23
mov esi, eax
add esp, 4
mov dword [ebp - 0x260], esi
test esi, esi
je 0x418594
mov eax, dword [ebp - 0x244]
mov dword [esi + 4], 0xffffffff
mov dword [esi], vtable.DeclStmtNode.0
mov dword [esi + 8], eax
mov ecx, dword [eax + 4]
mov dword [esi + 4], ecx
jmp 0x418596
xor esi, esi
mov ecx, dword [ebp - 0x268]
mov dword [esi + 4], ecx
mov ecx, dword [edi]
call fcn.00411300
mov dword [ebp - 0x268], eax
mov eax, dword [ebp - 0x270]
mov dword [ebp - 0x244], esi
mov ecx, dword [eax + 0x20]
cmp ecx, dword [eax + 0x24]
je 0x4185c8
mov dword [ecx], esi
add dword [eax + 0x20], 4
jmp 0x4185d8
lea edx, [ebp - 0x244]
push edx
push ecx
lea ecx, [eax + 0x1c]
call fcn.0040d660
mov ecx, dword [edi]
call fcn.0040ed60
mov esi, dword [ebp - 0x248]
cmp eax, 0x2c
je 0x418548
jmp 0x4166f0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00435db7
mov esp, ebp
pop ebp
ret 8
call fcn.00404120
call fcn.0043a88f
push str.end_of_file
lea ecx, [ebp - 0x12c]
call fcn.00408d00
mov ecx, dword [ebp - 0x248]
lea eax, [ebp - 0x12c]
push eax
mov byte [ebp - 4], 0xa
call fcn.00414690
call fcn.00404100
push str.Unable_to_open_include_file
lea ecx, [ebp - 0x12c]
call fcn.00408d00
lea eax, [ebp - 0x12c]
mov byte [ebp - 4], 4
push eax
mov ecx, esi
call fcn.00414650
call fcn.00404140
push str.include_filename
lea ecx, [ebp - 0x12c]
call fcn.00408d00
lea eax, [ebp - 0x12c]
mov dword [ebp - 4], 1
push eax
mov ecx, esi
call fcn.00414690
push 0x45f3f4
lea ecx, [ebp - 0x12c]
call fcn.00408d00
lea eax, [ebp - 0x12c]
mov byte [ebp - 4], 0x10
push eax
mov ecx, esi
call fcn.00414690
push str.Mismatched_brackets
lea ecx, [ebp - 0x12c]
call fcn.00408d00
lea eax, [ebp - 0x12c]
mov byte [ebp - 4], 0xf
push eax
mov ecx, esi
call fcn.00414650
push str.variable_assignment
lea ecx, [ebp - 0x12c]
call fcn.00408d00
mov ecx, dword [ebp - 0x248]
lea eax, [ebp - 0x12c]
push eax
mov byte [ebp - 4], 0x15
call fcn.00414690
push str.Wend
lea ecx, [ebp - 0x12c]
call fcn.00408d00
mov ecx, dword [ebp - 0x248]
lea eax, [ebp - 0x12c]
push eax
mov byte [ebp - 4], 0x18
call fcn.00414690
push str.Until_or_Forever
lea ecx, [ebp - 0x12c]
call fcn.00408d00
mov ecx, dword [ebp - 0x248]
lea eax, [ebp - 0x12c]
push eax
mov byte [ebp - 4], 0x1a
call fcn.00414690
push str.expression_sequence
lea ecx, [ebp - 0x12c]
call fcn.00408d00
mov ecx, dword [ebp - 0x248]
lea eax, [ebp - 0x12c]
push eax
mov byte [ebp - 4], 0x1d
call fcn.00414690
push str.End_Select
lea ecx, [ebp - 0x12c]
call fcn.00408d00
lea eax, [ebp - 0x12c]
mov byte [ebp - 4], 0x20
push eax
mov ecx, esi
call fcn.00414690
push str.Case__Default_or_End_Select
lea ecx, [ebp - 0x12c]
call fcn.00408d00
lea eax, [ebp - 0x12c]
mov byte [ebp - 4], 0x21
push eax
mov ecx, esi
call fcn.00414690
push str.Next
lea ecx, [ebp - 0x12c]
call fcn.00408d00
mov ecx, dword [ebp - 0x248]
lea eax, [ebp - 0x12c]
push eax
mov byte [ebp - 4], 0x26
call fcn.00414690
push str.Next
lea ecx, [ebp - 0x12c]
call fcn.00408d00
mov ecx, dword [ebp - 0x248]
lea eax, [ebp - 0x12c]
push eax
mov byte [ebp - 4], 0x2e
call fcn.00414690
push str.TO
lea ecx, [ebp - 0x12c]
call fcn.00408d00
lea eax, [ebp - 0x12c]
mov byte [ebp - 4], 0x2c
push eax
mov ecx, esi
call fcn.00414690
push str.variable_assignment
lea ecx, [ebp - 0x12c]
call fcn.00408d00
mov ecx, dword [ebp - 0x248]
lea eax, [ebp - 0x12c]
push eax
mov byte [ebp - 4], 0x24
call fcn.00414690
push str.Before_or_After
lea ecx, [ebp - 0x12c]
call fcn.00408d00
mov ecx, dword [ebp - 0x248]
lea eax, [ebp - 0x12c]
push eax
mov byte [ebp - 4], 0x3b
call fcn.00414690
push str.Data_can_only_appear_in_main_program
lea ecx, [ebp - 0x12c]
call fcn.00408d00
lea eax, [ebp - 0x12c]
mov dword [ebp - 4], 0x45
push eax
mov ecx, esi
call fcn.00414650
push str.Type_can_only_appear_in_main_program
lea ecx, [ebp - 0x12c]
call fcn.00408d00
lea eax, [ebp - 0x12c]
mov dword [ebp - 4], 0x46
push eax
mov ecx, esi
call fcn.00414650
push str.Const_can_only_appear_in_main_program
lea ecx, [ebp - 0x12c]
call fcn.00408d00
lea eax, [ebp - 0x12c]
mov dword [ebp - 4], 0x47
push eax
mov ecx, esi
call fcn.00414650
push str.Function_can_only_appear_in_main_program
lea ecx, [ebp - 0x12c]
call fcn.00408d00
lea eax, [ebp - 0x12c]
mov dword [ebp - 4], 0x48
push eax
mov ecx, esi
call fcn.00414650
push str.Global_can_only_appear_in_main_program
lea ecx, [ebp - 0x12c]
call fcn.00408d00
lea eax, [ebp - 0x12c]
mov dword [ebp - 4], 0x49
push eax
mov ecx, esi
call fcn.00414650
push str.Dialect_must_appear_only_once_at_top_of_program_file
lea ecx, [ebp - 0x12c]
call fcn.00408d00
lea eax, [ebp - 0x12c]
mov dword [ebp - 4], 0
push eax
mov ecx, esi
call fcn.00414650
nop dword [eax]
mov bh, 0x7b
inc ecx
add byte [0x5500417d], cl
jnp 0x418998
add byte [ebx + 0x7e], ah
inc ecx
add byte [ebp + 0x73], ah
inc ecx
add byte [edi - 0xeffbe8d], dl
ja 0x4189a8
add byte [esp + eax*4 + 0x41], ch
add cl, al
add dword [ecx], 0x3b
test dword [ecx], eax
nop
test byte [ecx], al
or eax, 0xd7004184
jne 4295104
add bh, dl
je 0x4189c4
add byte [eax], al
add dword [ecx], 0xffffffa0
add byte [ecx], 0x43
add dword [ecx], case.0x416955.32812
and al, 0x89
inc ecx
add ch, ah
jle 0x4189dc
in eax, 0x7e
inc ecx
add cl, ah
jg 0x4189e0
add bh, ah
outsb dx, byte [esi]
inc ecx
add bl, dh
test dword [ecx], eax
add byte [ecx], al
add al, byte [ebx]
add al, 22
push ss
push ss
push ss
add eax, 370542102
push ss
pop es
push ss
or byte [esi], dl
push ss
or dword [edx], ecx
push ss
or ecx, dword [esi + edx]
or al, 0x16
push ss
push ss
or eax, 0xf0e1616
adc byte [esi], dl
push ss
push ss
push ss
push ss
push ss
push ss
push ss
push ss
adc dword [edx], edx
push ss
push ss
adc edx, dword [esi]
push ss
adc al, 22
push ss
push ss
push ss
push ss
push ss
push ss
push ss
push ss
push ss
push ss
push ss
push ss
push ss
push ss
adc eax, -858993460
int3