40fd01:	2b 45 f0             	sub    -0x10(%ebp),%eax
40fd04:	89 45 d8             	mov    %eax,-0x28(%ebp)
40fd07:	8d 04 3b             	lea    (%ebx,%edi,1),%eax
40fd0a:	99                   	cltd
40fd0b:	2b c2                	sub    %edx,%eax
40fd0d:	8b c8                	mov    %eax,%ecx
40fd0f:	8b 45 d8             	mov    -0x28(%ebp),%eax
40fd12:	99                   	cltd
40fd13:	2b c2                	sub    %edx,%eax
40fd15:	d1 f9                	sar    $1,%ecx
40fd17:	d1 f8                	sar    $1,%eax
40fd19:	2b c8                	sub    %eax,%ecx
40fd1b:	8b 45 dc             	mov    -0x24(%ebp),%eax
40fd1e:	3b f0                	cmp    %eax,%esi
40fd20:	7d 04                	jge    0x40fd26
40fd22:	8b f0                	mov    %eax,%esi
40fd24:	eb 14                	jmp    0x40fd3a
40fd26:	8b 45 d4             	mov    -0x2c(%ebp),%eax
40fd29:	8b 55 e4             	mov    -0x1c(%ebp),%edx
40fd2c:	03 c6                	add    %esi,%eax
40fd2e:	3b c2                	cmp    %edx,%eax
40fd30:	7e 08                	jle    0x40fd3a
40fd32:	8b 75 ec             	mov    -0x14(%ebp),%esi
40fd35:	2b 75 f4             	sub    -0xc(%ebp),%esi
40fd38:	03 f2                	add    %edx,%esi
40fd3a:	3b cf                	cmp    %edi,%ecx
40fd3c:	7d 04                	jge    0x40fd42
40fd3e:	8b cf                	mov    %edi,%ecx
40fd40:	eb 11                	jmp    0x40fd53
40fd42:	8b 45 d8             	mov    -0x28(%ebp),%eax
40fd45:	03 c1                	add    %ecx,%eax
40fd47:	3b c3                	cmp    %ebx,%eax
40fd49:	7e 08                	jle    0x40fd53
40fd4b:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40fd4e:	2b 4d f8             	sub    -0x8(%ebp),%ecx
40fd51:	03 cb                	add    %ebx,%ecx
40fd53:	6a 15                	push   $0x15
40fd55:	6a ff                	push   $0xffffffff
40fd57:	6a ff                	push   $0xffffffff
40fd59:	51                   	push   %ecx
40fd5a:	56                   	push   %esi
40fd5b:	6a 00                	push   $0x0
40fd5d:	ff 75 d0             	push   -0x30(%ebp)
40fd60:	ff 15 a4 b2 41 00    	call   *0x41b2a4
40fd66:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40fd69:	5f                   	pop    %edi
40fd6a:	5e                   	pop    %esi
40fd6b:	33 cd                	xor    %ebp,%ecx
40fd6d:	5b                   	pop    %ebx
40fd6e:	e8 6d 3b 00 00       	call   0x4138e0
40fd73:	c9                   	leave
40fd74:	c3                   	ret
40fd75:	8b ff                	mov    %edi,%edi
40fd77:	56                   	push   %esi
40fd78:	57                   	push   %edi
40fd79:	6a 00                	push   $0x0
40fd7b:	ff 15 84 b2 41 00    	call   *0x41b284
40fd81:	8b f0                	mov    %eax,%esi
40fd83:	85 f6                	test   %esi,%esi
40fd85:	74 16                	je     0x40fd9d
40fd87:	6a 5a                	push   $0x5a
40fd89:	56                   	push   %esi
40fd8a:	ff 15 a4 b0 41 00    	call   *0x41b0a4
40fd90:	56                   	push   %esi
40fd91:	6a 00                	push   $0x0
40fd93:	8b f8                	mov    %eax,%edi
40fd95:	ff 15 80 b2 41 00    	call   *0x41b280
40fd9b:	eb 03                	jmp    0x40fda0
40fd9d:	6a 60                	push   $0x60
40fd9f:	5f                   	pop    %edi
40fda0:	8b c7                	mov    %edi,%eax
40fda2:	5f                   	pop    %edi
40fda3:	5e                   	pop    %esi
40fda4:	c3                   	ret
40fda5:	cc                   	int3
40fda6:	cc                   	int3
40fda7:	cc                   	int3
40fda8:	cc                   	int3
40fda9:	cc                   	int3
40fdaa:	cc                   	int3
40fdab:	cc                   	int3
40fdac:	cc                   	int3
40fdad:	cc                   	int3
40fdae:	cc                   	int3
40fdaf:	cc                   	int3
40fdb0:	8b ff                	mov    %edi,%edi
40fdb2:	55                   	push   %ebp
40fdb3:	8b ec                	mov    %esp,%ebp
40fdb5:	56                   	push   %esi
40fdb6:	8b 75 08             	mov    0x8(%ebp),%esi
40fdb9:	57                   	push   %edi
40fdba:	8b 7d 0c             	mov    0xc(%ebp),%edi
40fdbd:	6a 0d                	push   $0xd
40fdbf:	8d 04 3e             	lea    (%esi,%edi,1),%eax
40fdc2:	a8 01                	test   $0x1,%al
40fdc4:	74 0d                	je     0x40fdd3
40fdc6:	ff 15 5c b2 41 00    	call   *0x41b25c
40fdcc:	35 ff ff ff 00       	xor    $0xffffff,%eax
40fdd1:	eb 06                	jmp    0x40fdd9
40fdd3:	ff 15 5c b2 41 00    	call   *0x41b25c
40fdd9:	50                   	push   %eax
40fdda:	57                   	push   %edi
40fddb:	56                   	push   %esi
40fddc:	ff 75 10             	push   0x10(%ebp)
40fddf:	ff 15 a8 b0 41 00    	call   *0x41b0a8
40fde5:	5f                   	pop    %edi
40fde6:	5e                   	pop    %esi
40fde7:	5d                   	pop    %ebp
40fde8:	c2 0c 00             	ret    $0xc
40fdeb:	8b ff                	mov    %edi,%edi
40fded:	55                   	push   %ebp
40fdee:	8b ec                	mov    %esp,%ebp
40fdf0:	83 ec 0c             	sub    $0xc,%esp
40fdf3:	53                   	push   %ebx
40fdf4:	57                   	push   %edi
40fdf5:	8b c2                	mov    %edx,%eax
40fdf7:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40fdfa:	6a 02                	push   $0x2
40fdfc:	33 ff                	xor    %edi,%edi
40fdfe:	8d 55 fc             	lea    -0x4(%ebp),%edx
40fe01:	5b                   	pop    %ebx
40fe02:	8b c8                	mov    %eax,%ecx
40fe04:	89 7d fc             	mov    %edi,-0x4(%ebp)
40fe07:	89 7d f8             	mov    %edi,-0x8(%ebp)
40fe0a:	e8 d6 fb ff ff       	call   0x40f9e5
40fe0f:	85 c0                	test   %eax,%eax
40fe11:	74 3f                	je     0x40fe52
40fe13:	39 7d fc             	cmp    %edi,-0x4(%ebp)
40fe16:	74 3a                	je     0x40fe52
40fe18:	8b 0d 80 93 41 00    	mov    0x419380,%ecx
40fe1e:	8d 55 f8             	lea    -0x8(%ebp),%edx
40fe21:	57                   	push   %edi
40fe22:	e8 94 fd ff ff       	call   0x40fbbb
40fe27:	8b 7d f8             	mov    -0x8(%ebp),%edi
40fe2a:	85 ff                	test   %edi,%edi
40fe2c:	74 1a                	je     0x40fe48
40fe2e:	ff 75 0c             	push   0xc(%ebp)
40fe31:	57                   	push   %edi
40fe32:	ff 75 fc             	push   -0x4(%ebp)
40fe35:	ff 75 f4             	push   -0xc(%ebp)
40fe38:	ff 15 38 b2 41 00    	call   *0x41b238
40fe3e:	57                   	push   %edi
40fe3f:	8b d8                	mov    %eax,%ebx
40fe41:	ff 15 24 b3 41 00    	call   *0x41b324
40fe47:	59                   	pop    %ecx
40fe48:	ff 75 fc             	push   -0x4(%ebp)
40fe4b:	ff 15 24 b3 41 00    	call   *0x41b324
40fe51:	59                   	pop    %ecx
40fe52:	5f                   	pop    %edi
40fe53:	8b c3                	mov    %ebx,%eax
40fe55:	5b                   	pop    %ebx
40fe56:	c9                   	leave
40fe57:	c2 08 00             	ret    $0x8
40fe5a:	6a 04                	push   $0x4
40fe5c:	b8 ed 43 41 00       	mov    $0x4143ed,%eax
40fe61:	e8 d9 3d 00 00       	call   0x413c3f
40fe66:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40fe69:	51                   	push   %ecx
40fe6a:	51                   	push   %ecx
40fe6b:	e8 2b 31 00 00       	call   0x412f9b
40fe70:	8d 41 1c             	lea    0x1c(%ecx),%eax
40fe73:	89 45 f0             	mov    %eax,-0x10(%ebp)
40fe76:	83 60 04 00          	andl   $0x0,0x4(%eax)
40fe7a:	c7 00 54 15 40 00    	movl   $0x401554,(%eax)
40fe80:	c7 01 c8 17 40 00    	movl   $0x4017c8,(%ecx)
40fe86:	8b c1                	mov    %ecx,%eax
40fe88:	e8 8f 3d 00 00       	call   0x413c1c
40fe8d:	c2 04 00             	ret    $0x4
40fe90:	8b ff                	mov    %edi,%edi
40fe92:	55                   	push   %ebp
40fe93:	8b ec                	mov    %esp,%ebp
40fe95:	56                   	push   %esi
40fe96:	8b f1                	mov    %ecx,%esi
40fe98:	e8 15 00 00 00       	call   0x40feb2
40fe9d:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
40fea1:	74 08                	je     0x40feab
40fea3:	56                   	push   %esi
40fea4:	ff 15 cc b2 41 00    	call   *0x41b2cc
40feaa:	59                   	pop    %ecx
40feab:	8b c6                	mov    %esi,%eax
40fead:	5e                   	pop    %esi
40feae:	5d                   	pop    %ebp
40feaf:	c2 04 00             	ret    $0x4
40feb2:	8b ff                	mov    %edi,%edi
40feb4:	55                   	push   %ebp
40feb5:	8b ec                	mov    %esp,%ebp
40feb7:	6a ff                	push   $0xffffffff
40feb9:	68 08 44 41 00       	push   $0x414408
40febe:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40fec4:	50                   	push   %eax
40fec5:	56                   	push   %esi
40fec6:	57                   	push   %edi
40fec7:	a1 18 51 41 00       	mov    0x415118,%eax
40fecc:	33 c5                	xor    %ebp,%eax
40fece:	50                   	push   %eax
40fecf:	8d 45 f4             	lea    -0xc(%ebp),%eax
40fed2:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40fed8:	8b f9                	mov    %ecx,%edi
40feda:	8d 77 1c             	lea    0x1c(%edi),%esi
40fedd:	c7 07 c8 17 40 00    	movl   $0x4017c8,(%edi)
40fee3:	8b ce                	mov    %esi,%ecx
40fee5:	e8 9c 88 ff ff       	call   0x408786
40feea:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40feee:	8b ce                	mov    %esi,%ecx
40fef0:	c7 06 54 15 40 00    	movl   $0x401554,(%esi)
40fef6:	e8 8b 88 ff ff       	call   0x408786
40fefb:	8b cf                	mov    %edi,%ecx
40fefd:	e8 e0 30 00 00       	call   0x412fe2
40ff02:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40ff05:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40ff0c:	59                   	pop    %ecx
40ff0d:	5f                   	pop    %edi
40ff0e:	5e                   	pop    %esi
40ff0f:	c9                   	leave
40ff10:	c3                   	ret
40ff11:	6a 08                	push   $0x8
40ff13:	b8 33 44 41 00       	mov    $0x414433,%eax
40ff18:	e8 22 3d 00 00       	call   0x413c3f
40ff1d:	8b f9                	mov    %ecx,%edi
40ff1f:	89 7d f0             	mov    %edi,-0x10(%ebp)
40ff22:	51                   	push   %ecx
40ff23:	51                   	push   %ecx
40ff24:	e8 72 30 00 00       	call   0x412f9b
40ff29:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40ff2d:	8d 5f 1c             	lea    0x1c(%edi),%ebx
40ff30:	89 5d ec             	mov    %ebx,-0x14(%ebp)
40ff33:	8d 73 04             	lea    0x4(%ebx),%esi
40ff36:	83 26 00             	andl   $0x0,(%esi)
40ff39:	c7 03 54 15 40 00    	movl   $0x401554,(%ebx)
40ff3f:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
40ff43:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40ff47:	74 2e                	je     0x40ff77
40ff49:	8b cb                	mov    %ebx,%ecx
40ff4b:	e8 36 88 ff ff       	call   0x408786
40ff50:	8b 4d 08             	mov    0x8(%ebp),%ecx
40ff53:	56                   	push   %esi
40ff54:	68 04 40 40 00       	push   $0x404004
40ff59:	51                   	push   %ecx
40ff5a:	8b 01                	mov    (%ecx),%eax
40ff5c:	8b 30                	mov    (%eax),%esi
40ff5e:	8b ce                	mov    %esi,%ecx
40ff60:	ff 15 90 b3 41 00    	call   *0x41b390
40ff66:	ff d6                	call   *%esi
40ff68:	85 c0                	test   %eax,%eax
40ff6a:	79 0b                	jns    0x40ff77
40ff6c:	8b cb                	mov    %ebx,%ecx
40ff6e:	e8 13 88 ff ff       	call   0x408786
40ff73:	83 63 04 00          	andl   $0x0,0x4(%ebx)
40ff77:	c7 07 cc 17 40 00    	movl   $0x4017cc,(%edi)
40ff7d:	8b c7                	mov    %edi,%eax
40ff7f:	e8 98 3c 00 00       	call   0x413c1c
40ff84:	c2 04 00             	ret    $0x4
40ff87:	cc                   	int3
40ff88:	cc                   	int3
40ff89:	cc                   	int3
40ff8a:	cc                   	int3
40ff8b:	cc                   	int3
40ff8c:	cc                   	int3
40ff8d:	cc                   	int3
40ff8e:	cc                   	int3
40ff8f:	cc                   	int3
40ff90:	8b ff                	mov    %edi,%edi
40ff92:	55                   	push   %ebp
40ff93:	8b ec                	mov    %esp,%ebp
40ff95:	56                   	push   %esi
40ff96:	8b f1                	mov    %ecx,%esi
40ff98:	e8 3f 7e ff ff       	call   0x407ddc
40ff9d:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
40ffa1:	74 08                	je     0x40ffab
40ffa3:	56                   	push   %esi
40ffa4:	ff 15 cc b2 41 00    	call   *0x41b2cc
40ffaa:	59                   	pop    %ecx
40ffab:	8b c6                	mov    %esi,%eax
40ffad:	5e                   	pop    %esi
40ffae:	5d                   	pop    %ebp
40ffaf:	c2 04 00             	ret    $0x4
40ffb2:	8b ff                	mov    %edi,%edi
40ffb4:	55                   	push   %ebp
40ffb5:	8b ec                	mov    %esp,%ebp
40ffb7:	8b 45 10             	mov    0x10(%ebp),%eax
40ffba:	85 c0                	test   %eax,%eax
40ffbc:	74 03                	je     0x40ffc1
40ffbe:	83 20 00             	andl   $0x0,(%eax)
40ffc1:	8b 49 20             	mov    0x20(%ecx),%ecx
40ffc4:	85 c9                	test   %ecx,%ecx
40ffc6:	74 1c                	je     0x40ffe4
40ffc8:	56                   	push   %esi
40ffc9:	8b 31                	mov    (%ecx),%esi
40ffcb:	50                   	push   %eax
40ffcc:	ff 75 0c             	push   0xc(%ebp)
40ffcf:	68 04 04 00 00       	push   $0x404
40ffd4:	51                   	push   %ecx
40ffd5:	8b 4e 14             	mov    0x14(%esi),%ecx
40ffd8:	ff 15 90 b3 41 00    	call   *0x41b390
40ffde:	ff 56 14             	call   *0x14(%esi)
40ffe1:	5e                   	pop    %esi
40ffe2:	eb 05                	jmp    0x40ffe9
40ffe4:	b8 05 40 00 80       	mov    $0x80004005,%eax
40ffe9:	5d                   	pop    %ebp
40ffea:	c2 0c 00             	ret    $0xc
40ffed:	8b ff                	mov    %edi,%edi
40ffef:	56                   	push   %esi
40fff0:	8b f1                	mov    %ecx,%esi
40fff2:	85 f6                	test   %esi,%esi
40fff4:	78 04                	js     0x40fffa
40fff6:	33 c0                	xor    %eax,%eax
40fff8:	5e                   	pop    %esi
40fff9:	c3                   	ret
40fffa:	81 fe 17 00 00 c0    	cmp    $0xc0000017,%esi
410000:	75 07                	jne    0x410009
410002:	b8 0e 00 07 80       	mov    $0x8007000e,%eax
410007:	5e                   	pop    %esi
410008:	c3                   	ret
410009:	57                   	push   %edi
41000a:	8b 3d 5c 97 41 00    	mov    0x41975c,%edi
410010:	85 ff                	test   %edi,%edi
410012:	74 24                	je     0x410038
410014:	56                   	push   %esi
410015:	8b cf                	mov    %edi,%ecx
410017:	ff 15 90 b3 41 00    	call   *0x41b390
41001d:	ff d7                	call   *%edi
41001f:	85 c0                	test   %eax,%eax
410021:	74 15                	je     0x410038
410023:	3d 3d 01 00 00       	cmp    $0x13d,%eax
410028:	74 0e                	je     0x410038
41002a:	85 c0                	test   %eax,%eax
41002c:	7e 12                	jle    0x410040
41002e:	0f b7 c0             	movzwl %ax,%eax
410031:	0d 00 00 07 80       	or     $0x80070000,%eax
410036:	eb 08                	jmp    0x410040
410038:	81 ce 00 00 00 10    	or     $0x10000000,%esi
41003e:	8b c6                	mov    %esi,%eax
410040:	5f                   	pop    %edi
410041:	5e                   	pop    %esi
410042:	c3                   	ret
410043:	8b ff                	mov    %edi,%edi
410045:	55                   	push   %ebp
410046:	8b ec                	mov    %esp,%ebp
410048:	68 ff ff 00 80       	push   $0x8000ffff
41004d:	6a 03                	push   $0x3
41004f:	ff 75 04             	push   0x4(%ebp)
410052:	ba 35 13 00 00       	mov    $0x1335,%edx
410057:	6a 00                	push   $0x0
410059:	6a 00                	push   $0x0
41005b:	68 18 41 40 00       	push   $0x404118
410060:	e8 1b 66 ff ff       	call   0x406680
410065:	5d                   	pop    %ebp
410066:	c2 04 00             	ret    $0x4
410069:	8b ff                	mov    %edi,%edi
41006b:	55                   	push   %ebp