40ff3e:	89 01                	mov    %eax,(%ecx)
40ff40:	53                   	push   %ebx
40ff41:	ff 15 bc 62 41 00    	call   *0x4162bc
40ff47:	59                   	pop    %ecx
40ff48:	56                   	push   %esi
40ff49:	ff 15 b8 61 41 00    	call   *0x4161b8
40ff4f:	8b c7                	mov    %edi,%eax
40ff51:	5f                   	pop    %edi
40ff52:	5e                   	pop    %esi
40ff53:	5b                   	pop    %ebx
40ff54:	c9                   	leave
40ff55:	c2 10 00             	ret    $0x10
40ff58:	8b ff                	mov    %edi,%edi
40ff5a:	55                   	push   %ebp
40ff5b:	8b ec                	mov    %esp,%ebp
40ff5d:	51                   	push   %ecx
40ff5e:	51                   	push   %ecx
40ff5f:	56                   	push   %esi
40ff60:	57                   	push   %edi
40ff61:	8b 7d 14             	mov    0x14(%ebp),%edi
40ff64:	8d 45 fc             	lea    -0x4(%ebp),%eax
40ff67:	50                   	push   %eax
40ff68:	8d 45 f8             	lea    -0x8(%ebp),%eax
40ff6b:	33 f6                	xor    %esi,%esi
40ff6d:	50                   	push   %eax
40ff6e:	57                   	push   %edi
40ff6f:	56                   	push   %esi
40ff70:	6a 01                	push   $0x1
40ff72:	ff 75 0c             	push   0xc(%ebp)
40ff75:	ff 75 08             	push   0x8(%ebp)
40ff78:	ff 15 a8 60 41 00    	call   *0x4160a8
40ff7e:	85 c0                	test   %eax,%eax
40ff80:	75 22                	jne    0x40ffa4
40ff82:	ff 15 68 61 41 00    	call   *0x416168
40ff88:	8b f0                	mov    %eax,%esi
40ff8a:	85 f6                	test   %esi,%esi
40ff8c:	7e 09                	jle    0x40ff97
40ff8e:	0f b7 f6             	movzwl %si,%esi
40ff91:	81 ce 00 00 07 80    	or     $0x80070000,%esi
40ff97:	56                   	push   %esi
40ff98:	68 90 42 40 00       	push   $0x404290
40ff9d:	68 c9 01 00 00       	push   $0x1c9
40ffa2:	eb 4c                	jmp    0x40fff0
40ffa4:	ff 37                	push   (%edi)
40ffa6:	ff 15 b8 62 41 00    	call   *0x4162b8
40ffac:	59                   	pop    %ecx
40ffad:	8b c8                	mov    %eax,%ecx
40ffaf:	8b 45 10             	mov    0x10(%ebp),%eax
40ffb2:	89 08                	mov    %ecx,(%eax)
40ffb4:	8d 45 fc             	lea    -0x4(%ebp),%eax
40ffb7:	50                   	push   %eax
40ffb8:	8d 45 f8             	lea    -0x8(%ebp),%eax
40ffbb:	50                   	push   %eax
40ffbc:	57                   	push   %edi
40ffbd:	51                   	push   %ecx
40ffbe:	6a 01                	push   $0x1
40ffc0:	ff 75 0c             	push   0xc(%ebp)
40ffc3:	ff 75 08             	push   0x8(%ebp)
40ffc6:	ff 15 a8 60 41 00    	call   *0x4160a8
40ffcc:	85 c0                	test   %eax,%eax
40ffce:	75 2b                	jne    0x40fffb
40ffd0:	ff 15 68 61 41 00    	call   *0x416168
40ffd6:	8b f0                	mov    %eax,%esi
40ffd8:	85 f6                	test   %esi,%esi
40ffda:	7e 09                	jle    0x40ffe5
40ffdc:	0f b7 f6             	movzwl %si,%esi
40ffdf:	81 ce 00 00 07 80    	or     $0x80070000,%esi
40ffe5:	56                   	push   %esi
40ffe6:	68 90 42 40 00       	push   $0x404290
40ffeb:	68 da 01 00 00       	push   $0x1da
40fff0:	68 20 41 40 00       	push   $0x404120
40fff5:	51                   	push   %ecx
40fff6:	e8 d7 0f 00 00       	call   0x410fd2
40fffb:	5f                   	pop    %edi
40fffc:	8b c6                	mov    %esi,%eax
40fffe:	5e                   	pop    %esi
40ffff:	c9                   	leave
410000:	c2 10 00             	ret    $0x10
410003:	8b ff                	mov    %edi,%edi
410005:	55                   	push   %ebp
410006:	8b ec                	mov    %esp,%ebp
410008:	83 ec 10             	sub    $0x10,%esp
41000b:	53                   	push   %ebx
41000c:	56                   	push   %esi
41000d:	57                   	push   %edi
41000e:	8b d9                	mov    %ecx,%ebx
410010:	8d 45 fc             	lea    -0x4(%ebp),%eax
410013:	8b 4d 08             	mov    0x8(%ebp),%ecx
410016:	33 ff                	xor    %edi,%edi
410018:	21 7d fc             	and    %edi,-0x4(%ebp)
41001b:	ba d4 42 40 00       	mov    $0x4042d4,%edx
410020:	21 7d f8             	and    %edi,-0x8(%ebp)
410023:	50                   	push   %eax
410024:	89 5d f4             	mov    %ebx,-0xc(%ebp)
410027:	e8 aa 11 00 00       	call   0x4111d6
41002c:	85 c0                	test   %eax,%eax
41002e:	0f 84 a3 00 00 00    	je     0x4100d7
410034:	ff 75 fc             	push   -0x4(%ebp)
410037:	8d 4b 34             	lea    0x34(%ebx),%ecx
41003a:	e8 61 98 ff ff       	call   0x4098a0
41003f:	ff 73 34             	push   0x34(%ebx)
410042:	ff 15 7c 61 41 00    	call   *0x41617c
410048:	85 c0                	test   %eax,%eax
41004a:	75 15                	jne    0x410061
41004c:	b8 57 00 07 80       	mov    $0x80070057,%eax
410051:	50                   	push   %eax
410052:	68 e0 42 40 00       	push   $0x4042e0
410057:	68 10 02 00 00       	push   $0x210
41005c:	e9 86 00 00 00       	jmp    0x4100e7
410061:	8b 4d 08             	mov    0x8(%ebp),%ecx
410064:	8d 45 f8             	lea    -0x8(%ebp),%eax
410067:	50                   	push   %eax
410068:	ba 38 43 40 00       	mov    $0x404338,%edx
41006d:	e8 64 11 00 00       	call   0x4111d6
410072:	8b 5d f8             	mov    -0x8(%ebp),%ebx
410075:	85 c0                	test   %eax,%eax
410077:	74 2b                	je     0x4100a4
410079:	8b 75 f4             	mov    -0xc(%ebp),%esi
41007c:	53                   	push   %ebx
41007d:	8d 4e 38             	lea    0x38(%esi),%ecx
410080:	e8 1b 98 ff ff       	call   0x4098a0
410085:	ff 76 38             	push   0x38(%esi)
410088:	ff 15 7c 61 41 00    	call   *0x41617c
41008e:	85 c0                	test   %eax,%eax
410090:	75 2f                	jne    0x4100c1
410092:	b8 57 00 07 80       	mov    $0x80070057,%eax
410097:	50                   	push   %eax
410098:	68 e0 42 40 00       	push   $0x4042e0
41009d:	68 2b 02 00 00       	push   $0x22b
4100a2:	eb 10                	jmp    0x4100b4
4100a4:	b8 57 00 07 80       	mov    $0x80070057,%eax
4100a9:	50                   	push   %eax
4100aa:	68 e0 42 40 00       	push   $0x4042e0
4100af:	68 33 02 00 00       	push   $0x233
4100b4:	68 20 41 40 00       	push   $0x404120
4100b9:	51                   	push   %ecx
4100ba:	8b f8                	mov    %eax,%edi
4100bc:	e8 11 0f 00 00       	call   0x410fd2
4100c1:	85 db                	test   %ebx,%ebx
4100c3:	74 2f                	je     0x4100f4
4100c5:	53                   	push   %ebx
4100c6:	6a 00                	push   $0x0
4100c8:	ff 15 e0 60 41 00    	call   *0x4160e0
4100ce:	50                   	push   %eax
4100cf:	ff 15 e4 60 41 00    	call   *0x4160e4
4100d5:	eb 1d                	jmp    0x4100f4
4100d7:	b8 57 00 07 80       	mov    $0x80070057,%eax
4100dc:	50                   	push   %eax
4100dd:	68 e0 42 40 00       	push   $0x4042e0
4100e2:	68 19 02 00 00       	push   $0x219
4100e7:	68 20 41 40 00       	push   $0x404120
4100ec:	51                   	push   %ecx
4100ed:	8b f8                	mov    %eax,%edi
4100ef:	e8 de 0e 00 00       	call   0x410fd2
4100f4:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
4100f8:	74 12                	je     0x41010c
4100fa:	ff 75 fc             	push   -0x4(%ebp)
4100fd:	6a 00                	push   $0x0
4100ff:	ff 15 e0 60 41 00    	call   *0x4160e0
410105:	50                   	push   %eax
410106:	ff 15 e4 60 41 00    	call   *0x4160e4
41010c:	8b c7                	mov    %edi,%eax
41010e:	5f                   	pop    %edi
41010f:	5e                   	pop    %esi
410110:	5b                   	pop    %ebx
410111:	c9                   	leave
410112:	c2 04 00             	ret    $0x4
410115:	8b ff                	mov    %edi,%edi
410117:	55                   	push   %ebp
410118:	8b ec                	mov    %esp,%ebp
41011a:	83 ec 18             	sub    $0x18,%esp
41011d:	33 c0                	xor    %eax,%eax
41011f:	ba 40 43 40 00       	mov    $0x404340,%edx
410124:	53                   	push   %ebx
410125:	56                   	push   %esi
410126:	57                   	push   %edi
410127:	8b f0                	mov    %eax,%esi
410129:	89 45 ec             	mov    %eax,-0x14(%ebp)
41012c:	8b f8                	mov    %eax,%edi
41012e:	89 45 e8             	mov    %eax,-0x18(%ebp)
410131:	89 45 f4             	mov    %eax,-0xc(%ebp)
410134:	8b d9                	mov    %ecx,%ebx
410136:	8b 4d 08             	mov    0x8(%ebp),%ecx
410139:	89 45 f8             	mov    %eax,-0x8(%ebp)
41013c:	89 45 f0             	mov    %eax,-0x10(%ebp)
41013f:	8d 45 f0             	lea    -0x10(%ebp),%eax
410142:	50                   	push   %eax
410143:	89 75 fc             	mov    %esi,-0x4(%ebp)
410146:	e8 8b 10 00 00       	call   0x4111d6
41014b:	85 c0                	test   %eax,%eax
41014d:	0f 84 0e 02 00 00    	je     0x410361
410153:	ff 75 f0             	push   -0x10(%ebp)
410156:	8d 73 3c             	lea    0x3c(%ebx),%esi
410159:	8b ce                	mov    %esi,%ecx
41015b:	e8 40 97 ff ff       	call   0x4098a0
410160:	ff 36                	push   (%esi)
410162:	ff 15 7c 61 41 00    	call   *0x41617c
410168:	85 c0                	test   %eax,%eax
41016a:	75 64                	jne    0x4101d0
41016c:	b8 57 00 07 80       	mov    $0x80070057,%eax
410171:	50                   	push   %eax
410172:	68 48 43 40 00       	push   $0x404348
410177:	68 77 02 00 00       	push   $0x277
41017c:	68 20 41 40 00       	push   $0x404120
410181:	51                   	push   %ecx
410182:	8b f8                	mov    %eax,%edi
410184:	e8 49 0e 00 00       	call   0x410fd2
410189:	8b 75 fc             	mov    -0x4(%ebp),%esi
41018c:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
410190:	74 09                	je     0x41019b
410192:	ff 75 f4             	push   -0xc(%ebp)
410195:	ff 15 74 60 41 00    	call   *0x416074
41019b:	85 f6                	test   %esi,%esi
41019d:	74 10                	je     0x4101af
41019f:	56                   	push   %esi
4101a0:	6a 00                	push   $0x0
4101a2:	ff 15 e0 60 41 00    	call   *0x4160e0
4101a8:	50                   	push   %eax
4101a9:	ff 15 e4 60 41 00    	call   *0x4160e4
4101af:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
4101b3:	74 12                	je     0x4101c7
4101b5:	ff 75 f0             	push   -0x10(%ebp)
4101b8:	6a 00                	push   $0x0
4101ba:	ff 15 e0 60 41 00    	call   *0x4160e0
4101c0:	50                   	push   %eax
4101c1:	ff 15 e4 60 41 00    	call   *0x4160e4
4101c7:	8b c7                	mov    %edi,%eax
4101c9:	5f                   	pop    %edi
4101ca:	5e                   	pop    %esi
4101cb:	5b                   	pop    %ebx
4101cc:	c9                   	leave
4101cd:	c2 04 00             	ret    $0x4
4101d0:	8b 4d 08             	mov    0x8(%ebp),%ecx
4101d3:	8d 45 fc             	lea    -0x4(%ebp),%eax
4101d6:	50                   	push   %eax
4101d7:	ba 48 28 40 00       	mov    $0x402848,%edx
4101dc:	e8 f5 0f 00 00       	call   0x4111d6
4101e1:	85 c0                	test   %eax,%eax
4101e3:	74 1e                	je     0x410203
4101e5:	ff 75 fc             	push   -0x4(%ebp)
4101e8:	8d 4b 40             	lea    0x40(%ebx),%ecx
4101eb:	e8 b0 96 ff ff       	call   0x4098a0
4101f0:	ff 73 40             	push   0x40(%ebx)
4101f3:	ff 15 7c 61 41 00    	call   *0x41617c
4101f9:	85 c0                	test   %eax,%eax
4101fb:	75 0f                	jne    0x41020c
4101fd:	8d 43 3c             	lea    0x3c(%ebx),%eax
410200:	50                   	push   %eax
410201:	eb 01                	jmp    0x410204
410203:	56                   	push   %esi
410204:	8d 4b 44             	lea    0x44(%ebx),%ecx
410207:	e8 37 ea ff ff       	call   0x40ec43
41020c:	ff 73 40             	push   0x40(%ebx)
41020f:	ff 15 7c 61 41 00    	call   *0x41617c
410215:	89 45 ec             	mov    %eax,-0x14(%ebp)
410218:	85 c0                	test   %eax,%eax
41021a:	0f 84 69 ff ff ff    	je     0x410189
410220:	33 f6                	xor    %esi,%esi
410222:	39 73 24             	cmp    %esi,0x24(%ebx)
410225:	75 15                	jne    0x41023c
410227:	b8 03 40 00 80       	mov    $0x80004003,%eax
41022c:	50                   	push   %eax
41022d:	68 48 43 40 00       	push   $0x404348
410232:	68 a5 02 00 00       	push   $0x2a5
410237:	e9 40 ff ff ff       	jmp    0x41017c
41023c:	39 73 28             	cmp    %esi,0x28(%ebx)
41023f:	75 15                	jne    0x410256
410241:	b8 03 40 00 80       	mov    $0x80004003,%eax
410246:	50                   	push   %eax
410247:	68 48 43 40 00       	push   $0x404348
41024c:	68 a6 02 00 00       	push   $0x2a6
410251:	e9 26 ff ff ff       	jmp    0x41017c
410256:	8d 4d ec             	lea    -0x14(%ebp),%ecx
410259:	51                   	push   %ecx
41025a:	8d 4d f8             	lea    -0x8(%ebp),%ecx
41025d:	51                   	push   %ecx
41025e:	50                   	push   %eax
41025f:	ff 73 40             	push   0x40(%ebx)
410262:	e8 f1 fc ff ff       	call   0x40ff58
410267:	8b f8                	mov    %eax,%edi
410269:	85 ff                	test   %edi,%edi
41026b:	79 1e                	jns    0x41028b
41026d:	57                   	push   %edi
41026e:	68 48 43 40 00       	push   $0x404348
410273:	68 ac 02 00 00       	push   $0x2ac
410278:	68 20 41 40 00       	push   $0x404120
41027d:	51                   	push   %ecx
41027e:	e8 4f 0d 00 00       	call   0x410fd2
410283:	8b 75 f8             	mov    -0x8(%ebp),%esi
410286:	e9 c1 00 00 00       	jmp    0x41034c
41028b:	8d 45 f4             	lea    -0xc(%ebp),%eax
41028e:	50                   	push   %eax
41028f:	56                   	push   %esi
410290:	ff 73 28             	push   0x28(%ebx)
410293:	8b 75 f8             	mov    -0x8(%ebp),%esi
410296:	ff 75 ec             	push   -0x14(%ebp)
410299:	56                   	push   %esi
41029a:	ff 73 24             	push   0x24(%ebx)
41029d:	ff 15 8c 60 41 00    	call   *0x41608c
4102a3:	85 c0                	test   %eax,%eax
4102a5:	75 20                	jne    0x4102c7
4102a7:	50                   	push   %eax
4102a8:	68 48 43 40 00       	push   $0x404348
4102ad:	68 b4 02 00 00       	push   $0x2b4
4102b2:	68 20 41 40 00       	push   $0x404120
4102b7:	51                   	push   %ecx
4102b8:	e8 15 0d 00 00       	call   0x410fd2
4102bd:	bf 05 40 00 80       	mov    $0x80004005,%edi
4102c2:	e9 85 00 00 00       	jmp    0x41034c
4102c7:	56                   	push   %esi
4102c8:	ff 15 bc 62 41 00    	call   *0x4162bc
4102ce:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
4102d2:	59                   	pop    %ecx
4102d3:	ff 73 3c             	push   0x3c(%ebx)
4102d6:	ff 15 7c 61 41 00    	call   *0x41617c
4102dc:	8d 4d e8             	lea    -0x18(%ebp),%ecx
4102df:	51                   	push   %ecx
4102e0:	8d 4d f8             	lea    -0x8(%ebp),%ecx
4102e3:	51                   	push   %ecx
4102e4:	50                   	push   %eax
4102e5:	ff 73 3c             	push   0x3c(%ebx)
4102e8:	e8 6b fc ff ff       	call   0x40ff58
4102ed:	8b f8                	mov    %eax,%edi
4102ef:	85 ff                	test   %edi,%edi
4102f1:	79 10                	jns    0x410303
4102f3:	57                   	push   %edi
4102f4:	68 48 43 40 00       	push   $0x404348
4102f9:	68 c0 02 00 00       	push   $0x2c0
4102fe:	e9 75 ff ff ff       	jmp    0x410278
410303:	8b 75 f8             	mov    -0x8(%ebp),%esi
410306:	8d 45 e8             	lea    -0x18(%ebp),%eax
410309:	50                   	push   %eax
41030a:	56                   	push   %esi
41030b:	6a 00                	push   $0x0
41030d:	6a 01                	push   $0x1
41030f:	6a 00                	push   $0x0
410311:	ff 75 f4             	push   -0xc(%ebp)
410314:	ff 15 90 60 41 00    	call   *0x416090
41031a:	85 c0                	test   %eax,%eax
41031c:	75 0d                	jne    0x41032b
41031e:	50                   	push   %eax
41031f:	68 48 43 40 00       	push   $0x404348
410324:	68 c8 02 00 00       	push   $0x2c8
410329:	eb 87                	jmp    0x4102b2
41032b:	ff 75 e8             	push   -0x18(%ebp)
41032e:	56                   	push   %esi
41032f:	ff 15 a8 61 41 00    	call   *0x4161a8
410335:	89 45 f8             	mov    %eax,-0x8(%ebp)
410338:	39 43 44             	cmp    %eax,0x44(%ebx)
41033b:	74 0f                	je     0x41034c