404dfb:	55                   	push   %ebp
404dfc:	8b ec                	mov    %esp,%ebp
404dfe:	83 ec 20             	sub    $0x20,%esp
404e01:	53                   	push   %ebx
404e02:	33 db                	xor    %ebx,%ebx
404e04:	39 5d 0c             	cmp    %ebx,0xc(%ebp)
404e07:	75 1d                	jne    0x404e26
404e09:	e8 c7 0c 00 00       	call   0x405ad5
404e0e:	53                   	push   %ebx
404e0f:	53                   	push   %ebx
404e10:	53                   	push   %ebx
404e11:	53                   	push   %ebx
404e12:	53                   	push   %ebx
404e13:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
404e19:	e8 07 04 00 00       	call   0x405225
404e1e:	83 c4 14             	add    $0x14,%esp
404e21:	83 c8 ff             	or     $0xffffffff,%eax
404e24:	eb 4e                	jmp    0x404e74
404e26:	8b 45 08             	mov    0x8(%ebp),%eax
404e29:	3b c3                	cmp    %ebx,%eax
404e2b:	74 dc                	je     0x404e09
404e2d:	56                   	push   %esi
404e2e:	ff 75 14             	push   0x14(%ebp)
404e31:	89 45 e8             	mov    %eax,-0x18(%ebp)
404e34:	ff 75 10             	push   0x10(%ebp)
404e37:	89 45 e0             	mov    %eax,-0x20(%ebp)
404e3a:	ff 75 0c             	push   0xc(%ebp)
404e3d:	8d 45 e0             	lea    -0x20(%ebp),%eax
404e40:	50                   	push   %eax
404e41:	c7 45 e4 ff ff ff 7f 	movl   $0x7fffffff,-0x1c(%ebp)
404e48:	c7 45 ec 42 00 00 00 	movl   $0x42,-0x14(%ebp)
404e4f:	e8 cb 3b 00 00       	call   0x408a1f
404e54:	83 c4 10             	add    $0x10,%esp
404e57:	ff 4d e4             	decl   -0x1c(%ebp)
404e5a:	8b f0                	mov    %eax,%esi
404e5c:	78 07                	js     0x404e65
404e5e:	8b 45 e0             	mov    -0x20(%ebp),%eax
404e61:	88 18                	mov    %bl,(%eax)
404e63:	eb 0c                	jmp    0x404e71
404e65:	8d 45 e0             	lea    -0x20(%ebp),%eax
404e68:	50                   	push   %eax
404e69:	53                   	push   %ebx
404e6a:	e8 a6 39 00 00       	call   0x408815
404e6f:	59                   	pop    %ecx
404e70:	59                   	pop    %ecx
404e71:	8b c6                	mov    %esi,%eax
404e73:	5e                   	pop    %esi
404e74:	5b                   	pop    %ebx
404e75:	c9                   	leave
404e76:	c3                   	ret
404e77:	8b ff                	mov    %edi,%edi
404e79:	55                   	push   %ebp
404e7a:	8b ec                	mov    %esp,%ebp
404e7c:	ff 75 10             	push   0x10(%ebp)
404e7f:	6a 00                	push   $0x0
404e81:	ff 75 0c             	push   0xc(%ebp)
404e84:	ff 75 08             	push   0x8(%ebp)
404e87:	e8 6d ff ff ff       	call   0x404df9
404e8c:	83 c4 10             	add    $0x10,%esp
404e8f:	5d                   	pop    %ebp
404e90:	c3                   	ret
404e91:	8b c1                	mov    %ecx,%eax
404e93:	83 60 04 00          	andl   $0x0,0x4(%eax)
404e97:	83 60 08 00          	andl   $0x0,0x8(%eax)
404e9b:	c7 00 78 a2 41 00    	movl   $0x41a278,(%eax)
404ea1:	c3                   	ret
404ea2:	8b ff                	mov    %edi,%edi
404ea4:	55                   	push   %ebp
404ea5:	8b ec                	mov    %esp,%ebp
404ea7:	53                   	push   %ebx
404ea8:	8b 5d 08             	mov    0x8(%ebp),%ebx
404eab:	56                   	push   %esi
404eac:	57                   	push   %edi
404ead:	8b f9                	mov    %ecx,%edi
404eaf:	c7 07 78 a2 41 00    	movl   $0x41a278,(%edi)
404eb5:	8b 03                	mov    (%ebx),%eax
404eb7:	85 c0                	test   %eax,%eax
404eb9:	74 26                	je     0x404ee1
404ebb:	50                   	push   %eax
404ebc:	e8 9f 10 00 00       	call   0x405f60
404ec1:	8b f0                	mov    %eax,%esi
404ec3:	46                   	inc    %esi
404ec4:	56                   	push   %esi
404ec5:	e8 a4 47 00 00       	call   0x40966e
404eca:	59                   	pop    %ecx
404ecb:	59                   	pop    %ecx
404ecc:	89 47 04             	mov    %eax,0x4(%edi)
404ecf:	85 c0                	test   %eax,%eax
404ed1:	74 12                	je     0x404ee5
404ed3:	ff 33                	push   (%ebx)
404ed5:	56                   	push   %esi
404ed6:	50                   	push   %eax
404ed7:	e8 db 46 00 00       	call   0x4095b7
404edc:	83 c4 0c             	add    $0xc,%esp
404edf:	eb 04                	jmp    0x404ee5
404ee1:	83 67 04 00          	andl   $0x0,0x4(%edi)
404ee5:	c7 47 08 01 00 00 00 	movl   $0x1,0x8(%edi)
404eec:	8b c7                	mov    %edi,%eax
404eee:	5f                   	pop    %edi
404eef:	5e                   	pop    %esi
404ef0:	5b                   	pop    %ebx
404ef1:	5d                   	pop    %ebp
404ef2:	c2 04 00             	ret    $0x4
404ef5:	8b ff                	mov    %edi,%edi
404ef7:	55                   	push   %ebp
404ef8:	8b ec                	mov    %esp,%ebp
404efa:	8b c1                	mov    %ecx,%eax
404efc:	8b 4d 08             	mov    0x8(%ebp),%ecx
404eff:	c7 00 78 a2 41 00    	movl   $0x41a278,(%eax)
404f05:	8b 09                	mov    (%ecx),%ecx
404f07:	83 60 08 00          	andl   $0x0,0x8(%eax)
404f0b:	89 48 04             	mov    %ecx,0x4(%eax)
404f0e:	5d                   	pop    %ebp
404f0f:	c2 08 00             	ret    $0x8
404f12:	8b ff                	mov    %edi,%edi
404f14:	55                   	push   %ebp
404f15:	8b ec                	mov    %esp,%ebp
404f17:	53                   	push   %ebx
404f18:	8b 5d 08             	mov    0x8(%ebp),%ebx
404f1b:	56                   	push   %esi
404f1c:	8b f1                	mov    %ecx,%esi
404f1e:	c7 06 78 a2 41 00    	movl   $0x41a278,(%esi)
404f24:	8b 43 08             	mov    0x8(%ebx),%eax
404f27:	89 46 08             	mov    %eax,0x8(%esi)
404f2a:	85 c0                	test   %eax,%eax
404f2c:	8b 43 04             	mov    0x4(%ebx),%eax
404f2f:	57                   	push   %edi
404f30:	74 31                	je     0x404f63
404f32:	85 c0                	test   %eax,%eax
404f34:	74 27                	je     0x404f5d
404f36:	50                   	push   %eax
404f37:	e8 24 10 00 00       	call   0x405f60
404f3c:	8b f8                	mov    %eax,%edi
404f3e:	47                   	inc    %edi
404f3f:	57                   	push   %edi
404f40:	e8 29 47 00 00       	call   0x40966e
404f45:	59                   	pop    %ecx
404f46:	59                   	pop    %ecx
404f47:	89 46 04             	mov    %eax,0x4(%esi)
404f4a:	85 c0                	test   %eax,%eax
404f4c:	74 18                	je     0x404f66
404f4e:	ff 73 04             	push   0x4(%ebx)
404f51:	57                   	push   %edi
404f52:	50                   	push   %eax
404f53:	e8 5f 46 00 00       	call   0x4095b7
404f58:	83 c4 0c             	add    $0xc,%esp
404f5b:	eb 09                	jmp    0x404f66
404f5d:	83 66 04 00          	andl   $0x0,0x4(%esi)
404f61:	eb 03                	jmp    0x404f66
404f63:	89 46 04             	mov    %eax,0x4(%esi)
404f66:	5f                   	pop    %edi
404f67:	8b c6                	mov    %esi,%eax
404f69:	5e                   	pop    %esi
404f6a:	5b                   	pop    %ebx
404f6b:	5d                   	pop    %ebp
404f6c:	c2 04 00             	ret    $0x4
404f6f:	83 79 08 00          	cmpl   $0x0,0x8(%ecx)
404f73:	c7 01 78 a2 41 00    	movl   $0x41a278,(%ecx)
404f79:	74 09                	je     0x404f84
404f7b:	ff 71 04             	push   0x4(%ecx)
404f7e:	e8 9d 00 00 00       	call   0x405020
404f83:	59                   	pop    %ecx
404f84:	c3                   	ret
404f85:	8b 41 04             	mov    0x4(%ecx),%eax
404f88:	85 c0                	test   %eax,%eax
404f8a:	75 05                	jne    0x404f91
404f8c:	b8 80 a2 41 00       	mov    $0x41a280,%eax
404f91:	c3                   	ret
404f92:	8b ff                	mov    %edi,%edi
404f94:	55                   	push   %ebp
404f95:	8b ec                	mov    %esp,%ebp
404f97:	56                   	push   %esi
404f98:	8d 45 08             	lea    0x8(%ebp),%eax
404f9b:	50                   	push   %eax
404f9c:	8b f1                	mov    %ecx,%esi
404f9e:	e8 ff fe ff ff       	call   0x404ea2
404fa3:	c7 06 98 a2 41 00    	movl   $0x41a298,(%esi)
404fa9:	8b c6                	mov    %esi,%eax
404fab:	5e                   	pop    %esi
404fac:	5d                   	pop    %ebp
404fad:	c2 04 00             	ret    $0x4
404fb0:	8b ff                	mov    %edi,%edi
404fb2:	55                   	push   %ebp
404fb3:	8b ec                	mov    %esp,%ebp
404fb5:	56                   	push   %esi
404fb6:	ff 75 08             	push   0x8(%ebp)
404fb9:	8b f1                	mov    %ecx,%esi
404fbb:	e8 52 ff ff ff       	call   0x404f12
404fc0:	c7 06 98 a2 41 00    	movl   $0x41a298,(%esi)
404fc6:	8b c6                	mov    %esi,%eax
404fc8:	5e                   	pop    %esi
404fc9:	5d                   	pop    %ebp
404fca:	c2 04 00             	ret    $0x4
404fcd:	c7 01 98 a2 41 00    	movl   $0x41a298,(%ecx)
404fd3:	e9 97 ff ff ff       	jmp    0x404f6f
404fd8:	8b ff                	mov    %edi,%edi
404fda:	55                   	push   %ebp
404fdb:	8b ec                	mov    %esp,%ebp
404fdd:	56                   	push   %esi
404fde:	8b f1                	mov    %ecx,%esi
404fe0:	e8 8a ff ff ff       	call   0x404f6f
404fe5:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
404fe9:	74 07                	je     0x404ff2
404feb:	56                   	push   %esi
404fec:	e8 45 03 00 00       	call   0x405336
404ff1:	59                   	pop    %ecx
404ff2:	8b c6                	mov    %esi,%eax
404ff4:	5e                   	pop    %esi
404ff5:	5d                   	pop    %ebp
404ff6:	c2 04 00             	ret    $0x4
404ff9:	8b ff                	mov    %edi,%edi
404ffb:	55                   	push   %ebp
404ffc:	8b ec                	mov    %esp,%ebp
404ffe:	56                   	push   %esi
404fff:	8b f1                	mov    %ecx,%esi
405001:	c7 06 98 a2 41 00    	movl   $0x41a298,(%esi)
405007:	e8 63 ff ff ff       	call   0x404f6f
40500c:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
405010:	74 07                	je     0x405019
405012:	56                   	push   %esi
405013:	e8 1e 03 00 00       	call   0x405336
405018:	59                   	pop    %ecx
405019:	8b c6                	mov    %esi,%eax
40501b:	5e                   	pop    %esi
40501c:	5d                   	pop    %ebp
40501d:	c2 04 00             	ret    $0x4
405020:	6a 0c                	push   $0xc
405022:	68 f0 94 42 00       	push   $0x4294f0
405027:	e8 b0 53 00 00       	call   0x40a3dc
40502c:	8b 75 08             	mov    0x8(%ebp),%esi
40502f:	85 f6                	test   %esi,%esi
405031:	74 75                	je     0x4050a8
405033:	83 3d a0 23 c7 00 03 	cmpl   $0x3,0xc723a0
40503a:	75 43                	jne    0x40507f
40503c:	6a 04                	push   $0x4
40503e:	e8 a1 48 00 00       	call   0x4098e4
405043:	59                   	pop    %ecx
405044:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
405048:	56                   	push   %esi
405049:	e8 c9 48 00 00       	call   0x409917
40504e:	59                   	pop    %ecx
40504f:	89 45 e4             	mov    %eax,-0x1c(%ebp)
405052:	85 c0                	test   %eax,%eax
405054:	74 09                	je     0x40505f
405056:	56                   	push   %esi
405057:	50                   	push   %eax
405058:	e8 ea 48 00 00       	call   0x409947
40505d:	59                   	pop    %ecx
40505e:	59                   	pop    %ecx
40505f:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
405066:	e8 0b 00 00 00       	call   0x405076
40506b:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
40506f:	75 37                	jne    0x4050a8
405071:	ff 75 08             	push   0x8(%ebp)
405074:	eb 0a                	jmp    0x405080
405076:	6a 04                	push   $0x4
405078:	e8 8d 47 00 00       	call   0x40980a
40507d:	59                   	pop    %ecx
40507e:	c3                   	ret
40507f:	56                   	push   %esi
405080:	6a 00                	push   $0x0
405082:	ff 35 08 08 43 00    	push   0x430808
405088:	ff 15 9c a0 41 00    	call   *0x41a09c
40508e:	85 c0                	test   %eax,%eax
405090:	75 16                	jne    0x4050a8
405092:	e8 3e 0a 00 00       	call   0x405ad5
405097:	8b f0                	mov    %eax,%esi
405099:	ff 15 98 a0 41 00    	call   *0x41a098
40509f:	50                   	push   %eax
4050a0:	e8 ee 09 00 00       	call   0x405a93
4050a5:	89 06                	mov    %eax,(%esi)
4050a7:	59                   	pop    %ecx
4050a8:	e8 74 53 00 00       	call   0x40a421
4050ad:	c3                   	ret
4050ae:	8b ff                	mov    %edi,%edi
4050b0:	55                   	push   %ebp
4050b1:	8b ec                	mov    %esp,%ebp
4050b3:	51                   	push   %ecx
4050b4:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4050b8:	56                   	push   %esi
4050b9:	8d 45 fc             	lea    -0x4(%ebp),%eax
4050bc:	50                   	push   %eax
4050bd:	ff 75 0c             	push   0xc(%ebp)
4050c0:	ff 75 08             	push   0x8(%ebp)
4050c3:	e8 04 55 00 00       	call   0x40a5cc
4050c8:	8b f0                	mov    %eax,%esi
4050ca:	83 c4 0c             	add    $0xc,%esp
4050cd:	85 f6                	test   %esi,%esi
4050cf:	75 18                	jne    0x4050e9
4050d1:	39 45 fc             	cmp    %eax,-0x4(%ebp)
4050d4:	74 13                	je     0x4050e9
4050d6:	e8 fa 09 00 00       	call   0x405ad5
4050db:	85 c0                	test   %eax,%eax
4050dd:	74 0a                	je     0x4050e9
4050df:	e8 f1 09 00 00       	call   0x405ad5
4050e4:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4050e7:	89 08                	mov    %ecx,(%eax)
4050e9:	8b c6                	mov    %esi,%eax
4050eb:	5e                   	pop    %esi
4050ec:	c9                   	leave
4050ed:	c3                   	ret
4050ee:	8b ff                	mov    %edi,%edi
4050f0:	55                   	push   %ebp
4050f1:	8b ec                	mov    %esp,%ebp
4050f3:	8b 45 08             	mov    0x8(%ebp),%eax
4050f6:	a3 dc 07 43 00       	mov    %eax,0x4307dc
4050fb:	5d                   	pop    %ebp
4050fc:	c3                   	ret
4050fd:	8b ff                	mov    %edi,%edi
4050ff:	55                   	push   %ebp
405100:	8b ec                	mov    %esp,%ebp
405102:	81 ec 28 03 00 00    	sub    $0x328,%esp
405108:	a1 68 b2 42 00       	mov    0x42b268,%eax
40510d:	33 c5                	xor    %ebp,%eax
40510f:	89 45 fc             	mov    %eax,-0x4(%ebp)
405112:	83 a5 d8 fc ff ff 00 	andl   $0x0,-0x328(%ebp)
405119:	53                   	push   %ebx
40511a:	6a 4c                	push   $0x4c
40511c:	8d 85 dc fc ff ff    	lea    -0x324(%ebp),%eax
405122:	6a 00                	push   $0x0
405124:	50                   	push   %eax
405125:	e8 d6 55 00 00       	call   0x40a700
40512a:	8d 85 d8 fc ff ff    	lea    -0x328(%ebp),%eax
405130:	89 85 28 fd ff ff    	mov    %eax,-0x2d8(%ebp)
405136:	8d 85 30 fd ff ff    	lea    -0x2d0(%ebp),%eax
40513c:	83 c4 0c             	add    $0xc,%esp
40513f:	89 85 2c fd ff ff    	mov    %eax,-0x2d4(%ebp)
405145:	89 85 e0 fd ff ff    	mov    %eax,-0x220(%ebp)
40514b:	89 8d dc fd ff ff    	mov    %ecx,-0x224(%ebp)
405151:	89 95 d8 fd ff ff    	mov    %edx,-0x228(%ebp)
405157:	89 9d d4 fd ff ff    	mov    %ebx,-0x22c(%ebp)
40515d:	89 b5 d0 fd ff ff    	mov    %esi,-0x230(%ebp)
405163:	89 bd cc fd ff ff    	mov    %edi,-0x234(%ebp)
405169:	66 8c 95 f8 fd ff ff 	data16 mov %ss,-0x208(%ebp)
405170:	66 8c 8d ec fd ff ff 	data16 mov %cs,-0x214(%ebp)
405177:	66 8c 9d c8 fd ff ff 	data16 mov %ds,-0x238(%ebp)
40517e:	66 8c 85 c4 fd ff ff 	data16 mov %es,-0x23c(%ebp)
405185:	66 8c a5 c0 fd ff ff 	data16 mov %fs,-0x240(%ebp)
40518c:	66 8c ad bc fd ff ff 	data16 mov %gs,-0x244(%ebp)
405193:	9c                   	pushf
405194:	8f 85 f0 fd ff ff    	pop    -0x210(%ebp)
40519a:	8b 45 04             	mov    0x4(%ebp),%eax
40519d:	8d 4d 04             	lea    0x4(%ebp),%ecx
4051a0:	c7 85 30 fd ff ff 01 	movl   $0x10001,-0x2d0(%ebp)
4051a7:	00 01 00
4051aa:	89 85 e8 fd ff ff    	mov    %eax,-0x218(%ebp)
4051b0:	89 8d f4 fd ff ff    	mov    %ecx,-0x20c(%ebp)
4051b6:	8b 49 fc             	mov    -0x4(%ecx),%ecx
4051b9:	89 8d e4 fd ff ff    	mov    %ecx,-0x21c(%ebp)
4051bf:	c7 85 d8 fc ff ff 17 	movl   $0xc0000417,-0x328(%ebp)