40fd32:	e8 52 67 ff ff       	call   0x406489
40fd37:	8d 84 24 80 01 00 00 	lea    0x180(%esp),%eax
40fd3e:	50                   	push   %eax
40fd3f:	6a 01                	push   $0x1
40fd41:	68 c2 00 00 00       	push   $0xc2
40fd46:	ff 35 04 5e 42 00    	push   0x425e04
40fd4c:	ff 15 bc 62 42 00    	call   *0x4262bc
40fd52:	8b cf                	mov    %edi,%ecx
40fd54:	e8 73 ee 00 00       	call   0x41ebcc
40fd59:	8b 8c 24 1c 04 00 00 	mov    0x41c(%esp),%ecx
40fd60:	5f                   	pop    %edi
40fd61:	5e                   	pop    %esi
40fd62:	5b                   	pop    %ebx
40fd63:	33 cc                	xor    %esp,%ecx
40fd65:	e8 06 1b 01 00       	call   0x421870
40fd6a:	8b e5                	mov    %ebp,%esp
40fd6c:	5d                   	pop    %ebp
40fd6d:	c3                   	ret
40fd6e:	8b ff                	mov    %edi,%edi
40fd70:	55                   	push   %ebp
40fd71:	8b ec                	mov    %esp,%ebp
40fd73:	56                   	push   %esi
40fd74:	57                   	push   %edi
40fd75:	8b 7d 08             	mov    0x8(%ebp),%edi
40fd78:	8b f1                	mov    %ecx,%esi
40fd7a:	85 ff                	test   %edi,%edi
40fd7c:	74 1c                	je     0x40fd9a
40fd7e:	2b f2                	sub    %edx,%esi
40fd80:	66 8b 02             	mov    (%edx),%ax
40fd83:	0f b6 4a 01          	movzbl 0x1(%edx),%ecx
40fd87:	66 c1 e0 08          	shl    $0x8,%ax
40fd8b:	66 33 c8             	xor    %ax,%cx
40fd8e:	66 89 0c 16          	mov    %cx,(%esi,%edx,1)
40fd92:	8d 52 02             	lea    0x2(%edx),%edx
40fd95:	83 ef 01             	sub    $0x1,%edi
40fd98:	75 e6                	jne    0x40fd80
40fd9a:	5f                   	pop    %edi
40fd9b:	5e                   	pop    %esi
40fd9c:	5d                   	pop    %ebp
40fd9d:	c2 04 00             	ret    $0x4
40fda0:	8b ff                	mov    %edi,%edi
40fda2:	55                   	push   %ebp
40fda3:	8b ec                	mov    %esp,%ebp
40fda5:	83 ec 14             	sub    $0x14,%esp
40fda8:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
40fdac:	8b c2                	mov    %edx,%eax
40fdae:	8b 0d 30 4e 42 00    	mov    0x424e30,%ecx
40fdb4:	89 45 f8             	mov    %eax,-0x8(%ebp)
40fdb7:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40fdba:	75 08                	jne    0x40fdc4
40fdbc:	33 c0                	xor    %eax,%eax
40fdbe:	40                   	inc    %eax
40fdbf:	e9 89 00 00 00       	jmp    0x40fe4d
40fdc4:	56                   	push   %esi
40fdc5:	8d b0 17 02 ff ff    	lea    -0xfde9(%eax),%esi
40fdcb:	f7 de                	neg    %esi
40fdcd:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40fdd0:	1b f6                	sbb    %esi,%esi
40fdd2:	23 f1                	and    %ecx,%esi
40fdd4:	33 c9                	xor    %ecx,%ecx
40fdd6:	56                   	push   %esi
40fdd7:	51                   	push   %ecx
40fdd8:	51                   	push   %ecx
40fdd9:	51                   	push   %ecx
40fdda:	ff 75 10             	push   0x10(%ebp)
40fddd:	ff 75 0c             	push   0xc(%ebp)
40fde0:	ff 75 08             	push   0x8(%ebp)
40fde3:	50                   	push   %eax
40fde4:	ff 15 dc 60 42 00    	call   *0x4260dc
40fdea:	89 45 fc             	mov    %eax,-0x4(%ebp)
40fded:	85 c0                	test   %eax,%eax
40fdef:	74 5b                	je     0x40fe4c
40fdf1:	57                   	push   %edi
40fdf2:	40                   	inc    %eax
40fdf3:	50                   	push   %eax
40fdf4:	6a 40                	push   $0x40
40fdf6:	ff 15 bc 60 42 00    	call   *0x4260bc
40fdfc:	8b f8                	mov    %eax,%edi
40fdfe:	85 ff                	test   %edi,%edi
40fe00:	75 0c                	jne    0x40fe0e
40fe02:	6a 08                	push   $0x8
40fe04:	ff 15 9c 61 42 00    	call   *0x42619c
40fe0a:	33 c0                	xor    %eax,%eax
40fe0c:	eb 3d                	jmp    0x40fe4b
40fe0e:	56                   	push   %esi
40fe0f:	6a 00                	push   $0x0
40fe11:	ff 75 fc             	push   -0x4(%ebp)
40fe14:	57                   	push   %edi
40fe15:	ff 75 10             	push   0x10(%ebp)
40fe18:	ff 75 0c             	push   0xc(%ebp)
40fe1b:	ff 75 08             	push   0x8(%ebp)
40fe1e:	ff 75 f8             	push   -0x8(%ebp)
40fe21:	ff 15 dc 60 42 00    	call   *0x4260dc
40fe27:	8b f0                	mov    %eax,%esi
40fe29:	85 f6                	test   %esi,%esi
40fe2b:	74 15                	je     0x40fe42
40fe2d:	6a 00                	push   $0x0
40fe2f:	8d 45 ec             	lea    -0x14(%ebp),%eax
40fe32:	50                   	push   %eax
40fe33:	ff 75 fc             	push   -0x4(%ebp)
40fe36:	57                   	push   %edi
40fe37:	ff 75 f4             	push   -0xc(%ebp)
40fe3a:	ff 15 e0 60 42 00    	call   *0x4260e0
40fe40:	8b f0                	mov    %eax,%esi
40fe42:	57                   	push   %edi
40fe43:	ff 15 c0 60 42 00    	call   *0x4260c0
40fe49:	8b c6                	mov    %esi,%eax
40fe4b:	5f                   	pop    %edi
40fe4c:	5e                   	pop    %esi
40fe4d:	c9                   	leave
40fe4e:	c2 0c 00             	ret    $0xc
40fe51:	83 3d f0 5b 42 00 00 	cmpl   $0x0,0x425bf0
40fe58:	74 41                	je     0x40fe9b
40fe5a:	83 3d b8 59 42 00 00 	cmpl   $0x0,0x4259b8
40fe61:	74 08                	je     0x40fe6b
40fe63:	33 c9                	xor    %ecx,%ecx
40fe65:	41                   	inc    %ecx
40fe66:	e9 20 b1 ff ff       	jmp    0x40af8b
40fe6b:	68 84 59 42 00       	push   $0x425984
40fe70:	68 80 59 42 00       	push   $0x425980
40fe75:	68 b0 00 00 00       	push   $0xb0
40fe7a:	ff 35 04 5e 42 00    	push   0x425e04
40fe80:	ff 15 bc 62 42 00    	call   *0x4262bc
40fe86:	6a 00                	push   $0x0
40fe88:	6a 00                	push   $0x0
40fe8a:	68 b1 00 00 00       	push   $0xb1
40fe8f:	ff 35 04 5e 42 00    	push   0x425e04
40fe95:	ff 15 bc 62 42 00    	call   *0x4262bc
40fe9b:	c3                   	ret
40fe9c:	83 3d f0 5b 42 00 00 	cmpl   $0x0,0x425bf0
40fea3:	74 30                	je     0x40fed5
40fea5:	83 3d b8 59 42 00 00 	cmpl   $0x0,0x4259b8
40feac:	74 0a                	je     0x40feb8
40feae:	b9 04 01 20 50       	mov    $0x50200104,%ecx
40feb3:	e9 ba c5 00 00       	jmp    0x41c472
40feb8:	ff 35 84 59 42 00    	push   0x425984
40febe:	ff 35 80 59 42 00    	push   0x425980
40fec4:	68 b1 00 00 00       	push   $0xb1
40fec9:	ff 35 04 5e 42 00    	push   0x425e04
40fecf:	ff 15 bc 62 42 00    	call   *0x4262bc
40fed5:	c3                   	ret
40fed6:	8b ff                	mov    %edi,%edi
40fed8:	55                   	push   %ebp
40fed9:	8b ec                	mov    %esp,%ebp
40fedb:	83 e4 f8             	and    $0xfffffff8,%esp
40fede:	81 ec 6c 04 00 00    	sub    $0x46c,%esp
40fee4:	a1 10 42 42 00       	mov    0x424210,%eax
40fee9:	33 c4                	xor    %esp,%eax
40feeb:	89 84 24 68 04 00 00 	mov    %eax,0x468(%esp)
40fef2:	a1 0c 5e 42 00       	mov    0x425e0c,%eax
40fef7:	83 64 24 18 00       	andl   $0x0,0x18(%esp)
40fefc:	53                   	push   %ebx
40fefd:	56                   	push   %esi
40fefe:	57                   	push   %edi
40feff:	8b fa                	mov    %edx,%edi
40ff01:	89 44 24 20          	mov    %eax,0x20(%esp)
40ff05:	33 db                	xor    %ebx,%ebx
40ff07:	e8 aa e8 00 00       	call   0x41e7b6
40ff0c:	33 f6                	xor    %esi,%esi
40ff0e:	46                   	inc    %esi
40ff0f:	38 5d 08             	cmp    %bl,0x8(%ebp)
40ff12:	74 31                	je     0x40ff45
40ff14:	6a 03                	push   $0x3
40ff16:	5e                   	pop    %esi
40ff17:	ff 35 70 59 42 00    	push   0x425970
40ff1d:	ff 15 e4 60 42 00    	call   *0x4260e4
40ff23:	83 f8 ff             	cmp    $0xffffffff,%eax
40ff26:	74 1d                	je     0x40ff45
40ff28:	a9 00 40 00 00       	test   $0x4000,%eax
40ff2d:	74 16                	je     0x40ff45
40ff2f:	53                   	push   %ebx
40ff30:	68 80 00 00 00       	push   $0x80
40ff35:	6a 02                	push   $0x2
40ff37:	ff 37                	push   (%edi)
40ff39:	ff 35 70 59 42 00    	push   0x425970
40ff3f:	ff 15 0c 90 42 00    	call   *0x42900c
40ff45:	ff 37                	push   (%edi)
40ff47:	ff 15 38 63 42 00    	call   *0x426338
40ff4d:	6a 00                	push   $0x0
40ff4f:	68 80 00 00 00       	push   $0x80
40ff54:	6a 04                	push   $0x4
40ff56:	6a 00                	push   $0x0
40ff58:	56                   	push   %esi
40ff59:	68 00 00 00 c0       	push   $0xc0000000
40ff5e:	ff 37                	push   (%edi)
40ff60:	89 44 24 44          	mov    %eax,0x44(%esp)
40ff64:	ff 15 94 60 42 00    	call   *0x426094
40ff6a:	a3 30 4e 42 00       	mov    %eax,0x424e30
40ff6f:	83 f8 ff             	cmp    $0xffffffff,%eax
40ff72:	0f 84 50 04 00 00    	je     0x4103c8
40ff78:	ff 15 70 61 42 00    	call   *0x426170
40ff7e:	33 c9                	xor    %ecx,%ecx
40ff80:	3d b7 00 00 00       	cmp    $0xb7,%eax
40ff85:	0f 95 c1             	setne  %cl
40ff88:	89 4c 24 2c          	mov    %ecx,0x2c(%esp)
40ff8c:	39 1d f0 5b 42 00    	cmp    %ebx,0x425bf0
40ff92:	74 05                	je     0x40ff99
40ff94:	e8 b8 fe ff ff       	call   0x40fe51
40ff99:	33 f6                	xor    %esi,%esi
40ff9b:	56                   	push   %esi
40ff9c:	56                   	push   %esi
40ff9d:	6a 0e                	push   $0xe
40ff9f:	ff 35 04 5e 42 00    	push   0x425e04
40ffa5:	ff 15 bc 62 42 00    	call   *0x4262bc
40ffab:	56                   	push   %esi
40ffac:	56                   	push   %esi
40ffad:	68 bd 00 00 00       	push   $0xbd
40ffb2:	ff 35 04 5e 42 00    	push   0x425e04
40ffb8:	89 44 24 28          	mov    %eax,0x28(%esp)
40ffbc:	ff 15 bc 62 42 00    	call   *0x4262bc
40ffc2:	8b f0                	mov    %eax,%esi
40ffc4:	85 f6                	test   %esi,%esi
40ffc6:	0f 84 b5 03 00 00    	je     0x410381
40ffcc:	56                   	push   %esi
40ffcd:	ff 15 e8 60 42 00    	call   *0x4260e8
40ffd3:	89 44 24 10          	mov    %eax,0x10(%esp)
40ffd7:	85 c0                	test   %eax,%eax
40ffd9:	0f 84 a2 03 00 00    	je     0x410381
40ffdf:	8b 0d 3c 4e 42 00    	mov    0x424e3c,%ecx
40ffe5:	8d 41 ff             	lea    -0x1(%ecx),%eax
40ffe8:	83 e8 01             	sub    $0x1,%eax
40ffeb:	0f 84 1d 01 00 00    	je     0x41010e
40fff1:	83 e8 01             	sub    $0x1,%eax
40fff4:	0f 84 b4 00 00 00    	je     0x4100ae
40fffa:	83 e8 01             	sub    $0x1,%eax
40fffd:	75 1f                	jne    0x41001e
40ffff:	50                   	push   %eax
410000:	8d 44 24 20          	lea    0x20(%esp),%eax
410004:	50                   	push   %eax
410005:	6a 03                	push   $0x3
410007:	68 24 43 42 00       	push   $0x424324
41000c:	ff 35 30 4e 42 00    	push   0x424e30
410012:	ff 15 e0 60 42 00    	call   *0x4260e0
410018:	8b 0d 3c 4e 42 00    	mov    0x424e3c,%ecx
41001e:	83 f9 04             	cmp    $0x4,%ecx
410021:	74 16                	je     0x410039
410023:	83 f9 05             	cmp    $0x5,%ecx
410026:	74 11                	je     0x410039
410028:	ff 15 ec 60 42 00    	call   *0x4260ec
41002e:	8d 4c 24 24          	lea    0x24(%esp),%ecx
410032:	bb 00 04 00 00       	mov    $0x400,%ebx
410037:	eb 09                	jmp    0x410042
410039:	33 c9                	xor    %ecx,%ecx
41003b:	b8 e9 fd 00 00       	mov    $0xfde9,%eax
410040:	33 db                	xor    %ebx,%ebx
410042:	51                   	push   %ecx
410043:	6a 00                	push   $0x0
410045:	6a 00                	push   $0x0
410047:	6a 00                	push   $0x0
410049:	ff 74 24 28          	push   0x28(%esp)
41004d:	89 44 24 28          	mov    %eax,0x28(%esp)
410051:	ff 74 24 24          	push   0x24(%esp)
410055:	53                   	push   %ebx
410056:	50                   	push   %eax
410057:	ff 15 dc 60 42 00    	call   *0x4260dc
41005d:	83 7c 24 24 00       	cmpl   $0x0,0x24(%esp)
410062:	8b c8                	mov    %eax,%ecx
410064:	75 0c                	jne    0x410072
410066:	8b 44 24 18          	mov    0x18(%esp),%eax
41006a:	85 c0                	test   %eax,%eax
41006c:	74 2c                	je     0x41009a
41006e:	85 c9                	test   %ecx,%ecx
410070:	75 28                	jne    0x41009a
410072:	8b 15 f0 42 42 00    	mov    0x4242f0,%edx
410078:	8b 4c 24 20          	mov    0x20(%esp),%ecx
41007c:	6a 31                	push   $0x31
41007e:	ff 37                	push   (%edi)
410080:	ff 35 a0 42 42 00    	push   0x4242a0
410086:	e8 88 db ff ff       	call   0x40dc13
41008b:	83 f8 02             	cmp    $0x2,%eax
41008e:	0f 84 ed 02 00 00    	je     0x410381
410094:	8b 44 24 18          	mov    0x18(%esp),%eax
410098:	33 db                	xor    %ebx,%ebx
41009a:	8b 54 24 14          	mov    0x14(%esp),%edx
41009e:	50                   	push   %eax
41009f:	ff 74 24 14          	push   0x14(%esp)
4100a3:	53                   	push   %ebx
4100a4:	e8 f7 fc ff ff       	call   0x40fda0
4100a9:	e9 98 00 00 00       	jmp    0x410146
4100ae:	6a 00                	push   $0x0
4100b0:	8d 44 24 20          	lea    0x20(%esp),%eax
4100b4:	50                   	push   %eax
4100b5:	6a 02                	push   $0x2
4100b7:	68 1c 43 42 00       	push   $0x42431c
4100bc:	ff 35 30 4e 42 00    	push   0x424e30
4100c2:	ff 15 e0 60 42 00    	call   *0x4260e0
4100c8:	8b 54 24 10          	mov    0x10(%esp),%edx
4100cc:	8b ca                	mov    %edx,%ecx
4100ce:	ff 74 24 18          	push   0x18(%esp)
4100d2:	e8 97 fc ff ff       	call   0x40fd6e
4100d7:	6a 00                	push   $0x0
4100d9:	8d 44 24 20          	lea    0x20(%esp),%eax
4100dd:	50                   	push   %eax
4100de:	8b 44 24 20          	mov    0x20(%esp),%eax
4100e2:	03 c0                	add    %eax,%eax
4100e4:	50                   	push   %eax
4100e5:	ff 74 24 1c          	push   0x1c(%esp)
4100e9:	ff 35 30 4e 42 00    	push   0x424e30
4100ef:	ff 15 e0 60 42 00    	call   *0x4260e0
4100f5:	8b 54 24 10          	mov    0x10(%esp),%edx
4100f9:	8b ca                	mov    %edx,%ecx
4100fb:	ff 74 24 18          	push   0x18(%esp)
4100ff:	89 44 24 24          	mov    %eax,0x24(%esp)
410103:	e8 66 fc ff ff       	call   0x40fd6e
410108:	8b 44 24 20          	mov    0x20(%esp),%eax
41010c:	eb 38                	jmp    0x410146
41010e:	6a 00                	push   $0x0
410110:	8d 44 24 20          	lea    0x20(%esp),%eax
410114:	50                   	push   %eax
410115:	6a 02                	push   $0x2
410117:	68 20 43 42 00       	push   $0x424320
41011c:	ff 35 30 4e 42 00    	push   0x424e30
410122:	ff 15 e0 60 42 00    	call   *0x4260e0
410128:	6a 00                	push   $0x0
41012a:	8d 44 24 20          	lea    0x20(%esp),%eax
41012e:	50                   	push   %eax
41012f:	8b 44 24 20          	mov    0x20(%esp),%eax
410133:	03 c0                	add    %eax,%eax
410135:	50                   	push   %eax
410136:	ff 74 24 1c          	push   0x1c(%esp)
41013a:	ff 35 30 4e 42 00    	push   0x424e30
410140:	ff 15 e0 60 42 00    	call   *0x4260e0
410146:	85 c0                	test   %eax,%eax
410148:	0f 84 33 02 00 00    	je     0x410381
41014e:	ff 35 30 4e 42 00    	push   0x424e30
410154:	ff 15 f8 60 42 00    	call   *0x4260f8
41015a:	56                   	push   %esi
41015b:	ff 15 f0 60 42 00    	call   *0x4260f0
410161:	a1 3c 4e 42 00       	mov    0x424e3c,%eax
410166:	33 f6                	xor    %esi,%esi
410168:	56                   	push   %esi
410169:	56                   	push   %esi
41016a:	68 b9 00 00 00       	push   $0xb9
41016f:	ff 35 04 5e 42 00    	push   0x425e04
410175:	a3 bc 4e 42 00       	mov    %eax,0x424ebc
41017a:	ff 15 bc 62 42 00    	call   *0x4262bc
410180:	83 3d 3c 4e 42 00 01 	cmpl   $0x1,0x424e3c
410187:	89 35 14 43 42 00    	mov    %esi,0x424314
41018d:	75 0f                	jne    0x41019e
41018f:	85 db                	test   %ebx,%ebx
410191:	75 0b                	jne    0x41019e
410193:	33 d2                	xor    %edx,%edx
410195:	8b cf                	mov    %edi,%ecx
410197:	56                   	push   %esi
410198:	42                   	inc    %edx
410199:	e8 c5 02 00 00       	call   0x410463
41019e:	ff 35 30 4e 42 00    	push   0x424e30
4101a4:	ff 15 54 61 42 00    	call   *0x426154
4101aa:	83 0d 30 4e 42 00 ff 	orl    $0xffffffff,0x424e30
4101b1:	8d 44 24 30          	lea    0x30(%esp),%eax