403e86:	33 c5                	xor    %ebp,%eax
403e88:	50                   	push   %eax
403e89:	8d 45 f0             	lea    -0x10(%ebp),%eax
403e8c:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
403e92:	89 65 e8             	mov    %esp,-0x18(%ebp)
403e95:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
403e9c:	68 00 00 40 00       	push   $0x400000
403ea1:	e8 2a ff ff ff       	call   0x403dd0
403ea6:	83 c4 04             	add    $0x4,%esp
403ea9:	85 c0                	test   %eax,%eax
403eab:	74 55                	je     0x403f02
403ead:	8b 45 08             	mov    0x8(%ebp),%eax
403eb0:	2d 00 00 40 00       	sub    $0x400000,%eax
403eb5:	50                   	push   %eax
403eb6:	68 00 00 40 00       	push   $0x400000
403ebb:	e8 50 ff ff ff       	call   0x403e10
403ec0:	83 c4 08             	add    $0x8,%esp
403ec3:	85 c0                	test   %eax,%eax
403ec5:	74 3b                	je     0x403f02
403ec7:	8b 40 24             	mov    0x24(%eax),%eax
403eca:	c1 e8 1f             	shr    $0x1f,%eax
403ecd:	f7 d0                	not    %eax
403ecf:	83 e0 01             	and    $0x1,%eax
403ed2:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
403ed9:	8b 4d f0             	mov    -0x10(%ebp),%ecx
403edc:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
403ee3:	59                   	pop    %ecx
403ee4:	5f                   	pop    %edi
403ee5:	5e                   	pop    %esi
403ee6:	5b                   	pop    %ebx
403ee7:	8b e5                	mov    %ebp,%esp
403ee9:	5d                   	pop    %ebp
403eea:	c3                   	ret
403eeb:	8b 45 ec             	mov    -0x14(%ebp),%eax
403eee:	8b 08                	mov    (%eax),%ecx
403ef0:	8b 01                	mov    (%ecx),%eax
403ef2:	33 d2                	xor    %edx,%edx
403ef4:	3d 05 00 00 c0       	cmp    $0xc0000005,%eax
403ef9:	0f 94 c2             	sete   %dl
403efc:	8b c2                	mov    %edx,%eax
403efe:	c3                   	ret
403eff:	8b 65 e8             	mov    -0x18(%ebp),%esp
403f02:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
403f09:	33 c0                	xor    %eax,%eax
403f0b:	8b 4d f0             	mov    -0x10(%ebp),%ecx
403f0e:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
403f15:	59                   	pop    %ecx
403f16:	5f                   	pop    %edi
403f17:	5e                   	pop    %esi
403f18:	5b                   	pop    %ebx
403f19:	8b e5                	mov    %ebp,%esp
403f1b:	5d                   	pop    %ebp
403f1c:	c3                   	ret
403f1d:	8b ff                	mov    %edi,%edi
403f1f:	55                   	push   %ebp
403f20:	8b ec                	mov    %esp,%ebp
403f22:	8b 45 08             	mov    0x8(%ebp),%eax
403f25:	a3 8c 0f 43 00       	mov    %eax,0x430f8c
403f2a:	a3 90 0f 43 00       	mov    %eax,0x430f90
403f2f:	a3 94 0f 43 00       	mov    %eax,0x430f94
403f34:	a3 98 0f 43 00       	mov    %eax,0x430f98
403f39:	5d                   	pop    %ebp
403f3a:	c3                   	ret
403f3b:	8b ff                	mov    %edi,%edi
403f3d:	55                   	push   %ebp
403f3e:	8b ec                	mov    %esp,%ebp
403f40:	8b 45 08             	mov    0x8(%ebp),%eax
403f43:	8b 0d dc f0 41 00    	mov    0x41f0dc,%ecx
403f49:	56                   	push   %esi
403f4a:	39 50 04             	cmp    %edx,0x4(%eax)
403f4d:	74 0f                	je     0x403f5e
403f4f:	8b f1                	mov    %ecx,%esi
403f51:	6b f6 0c             	imul   $0xc,%esi,%esi
403f54:	03 75 08             	add    0x8(%ebp),%esi
403f57:	83 c0 0c             	add    $0xc,%eax
403f5a:	3b c6                	cmp    %esi,%eax
403f5c:	72 ec                	jb     0x403f4a
403f5e:	6b c9 0c             	imul   $0xc,%ecx,%ecx
403f61:	03 4d 08             	add    0x8(%ebp),%ecx
403f64:	5e                   	pop    %esi
403f65:	3b c1                	cmp    %ecx,%eax
403f67:	73 05                	jae    0x403f6e
403f69:	39 50 04             	cmp    %edx,0x4(%eax)
403f6c:	74 02                	je     0x403f70
403f6e:	33 c0                	xor    %eax,%eax
403f70:	5d                   	pop    %ebp
403f71:	c3                   	ret
403f72:	ff 35 94 0f 43 00    	push   0x430f94
403f78:	e8 b1 e6 ff ff       	call   0x40262e
403f7d:	59                   	pop    %ecx
403f7e:	c3                   	ret
403f7f:	6a 20                	push   $0x20
403f81:	68 68 e7 41 00       	push   $0x41e768
403f86:	e8 f5 eb ff ff       	call   0x402b80
403f8b:	33 ff                	xor    %edi,%edi
403f8d:	89 7d e4             	mov    %edi,-0x1c(%ebp)
403f90:	89 7d d8             	mov    %edi,-0x28(%ebp)
403f93:	8b 5d 08             	mov    0x8(%ebp),%ebx
403f96:	83 fb 0b             	cmp    $0xb,%ebx
403f99:	7f 4c                	jg     0x403fe7
403f9b:	74 15                	je     0x403fb2
403f9d:	8b c3                	mov    %ebx,%eax
403f9f:	6a 02                	push   $0x2
403fa1:	59                   	pop    %ecx
403fa2:	2b c1                	sub    %ecx,%eax
403fa4:	74 22                	je     0x403fc8
403fa6:	2b c1                	sub    %ecx,%eax
403fa8:	74 08                	je     0x403fb2
403faa:	2b c1                	sub    %ecx,%eax
403fac:	74 64                	je     0x404012
403fae:	2b c1                	sub    %ecx,%eax
403fb0:	75 44                	jne    0x403ff6
403fb2:	e8 4a e8 ff ff       	call   0x402801
403fb7:	8b f8                	mov    %eax,%edi
403fb9:	89 7d d8             	mov    %edi,-0x28(%ebp)
403fbc:	85 ff                	test   %edi,%edi
403fbe:	75 14                	jne    0x403fd4
403fc0:	83 c8 ff             	or     $0xffffffff,%eax
403fc3:	e9 61 01 00 00       	jmp    0x404129
403fc8:	be 8c 0f 43 00       	mov    $0x430f8c,%esi
403fcd:	a1 8c 0f 43 00       	mov    0x430f8c,%eax
403fd2:	eb 60                	jmp    0x404034
403fd4:	ff 77 5c             	push   0x5c(%edi)
403fd7:	8b d3                	mov    %ebx,%edx
403fd9:	e8 5d ff ff ff       	call   0x403f3b
403fde:	8b f0                	mov    %eax,%esi
403fe0:	83 c6 08             	add    $0x8,%esi
403fe3:	8b 06                	mov    (%esi),%eax
403fe5:	eb 5a                	jmp    0x404041
403fe7:	8b c3                	mov    %ebx,%eax
403fe9:	83 e8 0f             	sub    $0xf,%eax
403fec:	74 3c                	je     0x40402a
403fee:	83 e8 06             	sub    $0x6,%eax
403ff1:	74 2b                	je     0x40401e
403ff3:	48                   	dec    %eax
403ff4:	74 1c                	je     0x404012
403ff6:	e8 51 ee ff ff       	call   0x402e4c
403ffb:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
404001:	33 c0                	xor    %eax,%eax
404003:	50                   	push   %eax
404004:	50                   	push   %eax
404005:	50                   	push   %eax
404006:	50                   	push   %eax
404007:	50                   	push   %eax
404008:	e8 34 fc ff ff       	call   0x403c41
40400d:	83 c4 14             	add    $0x14,%esp
404010:	eb ae                	jmp    0x403fc0
404012:	be 94 0f 43 00       	mov    $0x430f94,%esi
404017:	a1 94 0f 43 00       	mov    0x430f94,%eax
40401c:	eb 16                	jmp    0x404034
40401e:	be 90 0f 43 00       	mov    $0x430f90,%esi
404023:	a1 90 0f 43 00       	mov    0x430f90,%eax
404028:	eb 0a                	jmp    0x404034
40402a:	be 98 0f 43 00       	mov    $0x430f98,%esi
40402f:	a1 98 0f 43 00       	mov    0x430f98,%eax
404034:	c7 45 e4 01 00 00 00 	movl   $0x1,-0x1c(%ebp)
40403b:	50                   	push   %eax
40403c:	e8 ed e5 ff ff       	call   0x40262e
404041:	89 45 e0             	mov    %eax,-0x20(%ebp)
404044:	59                   	pop    %ecx
404045:	33 c0                	xor    %eax,%eax
404047:	83 7d e0 01          	cmpl   $0x1,-0x20(%ebp)
40404b:	0f 84 d8 00 00 00    	je     0x404129
404051:	39 45 e0             	cmp    %eax,-0x20(%ebp)
404054:	75 07                	jne    0x40405d
404056:	6a 03                	push   $0x3
404058:	e8 26 da ff ff       	call   0x401a83
40405d:	39 45 e4             	cmp    %eax,-0x1c(%ebp)
404060:	74 07                	je     0x404069
404062:	50                   	push   %eax
404063:	e8 6f fa ff ff       	call   0x403ad7
404068:	59                   	pop    %ecx
404069:	33 c0                	xor    %eax,%eax
40406b:	89 45 fc             	mov    %eax,-0x4(%ebp)
40406e:	83 fb 08             	cmp    $0x8,%ebx
404071:	74 0a                	je     0x40407d
404073:	83 fb 0b             	cmp    $0xb,%ebx
404076:	74 05                	je     0x40407d
404078:	83 fb 04             	cmp    $0x4,%ebx
40407b:	75 1b                	jne    0x404098
40407d:	8b 4f 60             	mov    0x60(%edi),%ecx
404080:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
404083:	89 47 60             	mov    %eax,0x60(%edi)
404086:	83 fb 08             	cmp    $0x8,%ebx
404089:	75 40                	jne    0x4040cb
40408b:	8b 4f 64             	mov    0x64(%edi),%ecx
40408e:	89 4d d0             	mov    %ecx,-0x30(%ebp)
404091:	c7 47 64 8c 00 00 00 	movl   $0x8c,0x64(%edi)
404098:	83 fb 08             	cmp    $0x8,%ebx
40409b:	75 2e                	jne    0x4040cb
40409d:	8b 0d d0 f0 41 00    	mov    0x41f0d0,%ecx
4040a3:	89 4d dc             	mov    %ecx,-0x24(%ebp)
4040a6:	8b 0d d4 f0 41 00    	mov    0x41f0d4,%ecx
4040ac:	8b 15 d0 f0 41 00    	mov    0x41f0d0,%edx
4040b2:	03 ca                	add    %edx,%ecx
4040b4:	39 4d dc             	cmp    %ecx,-0x24(%ebp)
4040b7:	7d 19                	jge    0x4040d2
4040b9:	8b 4d dc             	mov    -0x24(%ebp),%ecx
4040bc:	6b c9 0c             	imul   $0xc,%ecx,%ecx
4040bf:	8b 57 5c             	mov    0x5c(%edi),%edx
4040c2:	89 44 11 08          	mov    %eax,0x8(%ecx,%edx,1)
4040c6:	ff 45 dc             	incl   -0x24(%ebp)
4040c9:	eb db                	jmp    0x4040a6
4040cb:	e8 55 e5 ff ff       	call   0x402625
4040d0:	89 06                	mov    %eax,(%esi)
4040d2:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4040d9:	e8 15 00 00 00       	call   0x4040f3
4040de:	83 fb 08             	cmp    $0x8,%ebx
4040e1:	75 1f                	jne    0x404102
4040e3:	ff 77 64             	push   0x64(%edi)
4040e6:	53                   	push   %ebx
4040e7:	ff 55 e0             	call   *-0x20(%ebp)
4040ea:	59                   	pop    %ecx
4040eb:	eb 19                	jmp    0x404106
4040ed:	8b 5d 08             	mov    0x8(%ebp),%ebx
4040f0:	8b 7d d8             	mov    -0x28(%ebp),%edi
4040f3:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
4040f7:	74 08                	je     0x404101
4040f9:	6a 00                	push   $0x0
4040fb:	e8 fd f8 ff ff       	call   0x4039fd
404100:	59                   	pop    %ecx
404101:	c3                   	ret
404102:	53                   	push   %ebx
404103:	ff 55 e0             	call   *-0x20(%ebp)
404106:	59                   	pop    %ecx
404107:	83 fb 08             	cmp    $0x8,%ebx
40410a:	74 0a                	je     0x404116
40410c:	83 fb 0b             	cmp    $0xb,%ebx
40410f:	74 05                	je     0x404116
404111:	83 fb 04             	cmp    $0x4,%ebx
404114:	75 11                	jne    0x404127
404116:	8b 45 d4             	mov    -0x2c(%ebp),%eax
404119:	89 47 60             	mov    %eax,0x60(%edi)
40411c:	83 fb 08             	cmp    $0x8,%ebx
40411f:	75 06                	jne    0x404127
404121:	8b 45 d0             	mov    -0x30(%ebp),%eax
404124:	89 47 64             	mov    %eax,0x64(%edi)
404127:	33 c0                	xor    %eax,%eax
404129:	e8 97 ea ff ff       	call   0x402bc5
40412e:	c3                   	ret
40412f:	8b ff                	mov    %edi,%edi
404131:	55                   	push   %ebp
404132:	8b ec                	mov    %esp,%ebp
404134:	8b 45 08             	mov    0x8(%ebp),%eax
404137:	a3 a0 0f 43 00       	mov    %eax,0x430fa0
40413c:	5d                   	pop    %ebp
40413d:	c3                   	ret
40413e:	8b ff                	mov    %edi,%edi
404140:	55                   	push   %ebp
404141:	8b ec                	mov    %esp,%ebp
404143:	8b 45 08             	mov    0x8(%ebp),%eax
404146:	a3 ac 0f 43 00       	mov    %eax,0x430fac
40414b:	5d                   	pop    %ebp
40414c:	c3                   	ret
40414d:	8b ff                	mov    %edi,%edi
40414f:	55                   	push   %ebp
404150:	8b ec                	mov    %esp,%ebp
404152:	8b 45 08             	mov    0x8(%ebp),%eax
404155:	a3 b0 0f 43 00       	mov    %eax,0x430fb0
40415a:	5d                   	pop    %ebp
40415b:	c3                   	ret
40415c:	6a 10                	push   $0x10
40415e:	68 88 e7 41 00       	push   $0x41e788
404163:	e8 18 ea ff ff       	call   0x402b80
404168:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40416c:	ff 75 0c             	push   0xc(%ebp)
40416f:	ff 75 08             	push   0x8(%ebp)
404172:	ff 15 f0 d0 41 00    	call   *0x41d0f0
404178:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40417b:	eb 2f                	jmp    0x4041ac
40417d:	8b 45 ec             	mov    -0x14(%ebp),%eax
404180:	8b 00                	mov    (%eax),%eax
404182:	8b 00                	mov    (%eax),%eax
404184:	89 45 e0             	mov    %eax,-0x20(%ebp)
404187:	33 c9                	xor    %ecx,%ecx
404189:	3d 17 00 00 c0       	cmp    $0xc0000017,%eax
40418e:	0f 94 c1             	sete   %cl
404191:	8b c1                	mov    %ecx,%eax
404193:	c3                   	ret
404194:	8b 65 e8             	mov    -0x18(%ebp),%esp
404197:	81 7d e0 17 00 00 c0 	cmpl   $0xc0000017,-0x20(%ebp)
40419e:	75 08                	jne    0x4041a8
4041a0:	6a 08                	push   $0x8
4041a2:	ff 15 c0 d0 41 00    	call   *0x41d0c0
4041a8:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
4041ac:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4041b3:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4041b6:	e8 0a ea ff ff       	call   0x402bc5
4041bb:	c3                   	ret
4041bc:	8b ff                	mov    %edi,%edi
4041be:	55                   	push   %ebp
4041bf:	8b ec                	mov    %esp,%ebp
4041c1:	8b 45 08             	mov    0x8(%ebp),%eax
4041c4:	a3 b4 0f 43 00       	mov    %eax,0x430fb4
4041c9:	5d                   	pop    %ebp
4041ca:	c3                   	ret
4041cb:	8b ff                	mov    %edi,%edi
4041cd:	55                   	push   %ebp
4041ce:	8b ec                	mov    %esp,%ebp
4041d0:	ff 35 b4 0f 43 00    	push   0x430fb4
4041d6:	e8 53 e4 ff ff       	call   0x40262e
4041db:	59                   	pop    %ecx
4041dc:	85 c0                	test   %eax,%eax
4041de:	74 0f                	je     0x4041ef
4041e0:	ff 75 08             	push   0x8(%ebp)
4041e3:	ff d0                	call   *%eax
4041e5:	59                   	pop    %ecx
4041e6:	85 c0                	test   %eax,%eax
4041e8:	74 05                	je     0x4041ef
4041ea:	33 c0                	xor    %eax,%eax
4041ec:	40                   	inc    %eax
4041ed:	5d                   	pop    %ebp
4041ee:	c3                   	ret
4041ef:	33 c0                	xor    %eax,%eax
4041f1:	5d                   	pop    %ebp
4041f2:	c3                   	ret
4041f3:	8b ff                	mov    %edi,%edi
4041f5:	55                   	push   %ebp
4041f6:	8b ec                	mov    %esp,%ebp
4041f8:	83 ec 14             	sub    $0x14,%esp
4041fb:	53                   	push   %ebx
4041fc:	56                   	push   %esi
4041fd:	57                   	push   %edi
4041fe:	e8 22 e4 ff ff       	call   0x402625
404203:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
404207:	83 3d b8 0f 43 00 00 	cmpl   $0x0,0x430fb8
40420e:	8b d8                	mov    %eax,%ebx
404210:	0f 85 8e 00 00 00    	jne    0x4042a4
404216:	68 6c da 41 00       	push   $0x41da6c
40421b:	ff 15 ec d0 41 00    	call   *0x41d0ec
404221:	8b f8                	mov    %eax,%edi
404223:	85 ff                	test   %edi,%edi
404225:	0f 84 2a 01 00 00    	je     0x404355
40422b:	8b 35 20 d0 41 00    	mov    0x41d020,%esi
404231:	68 60 da 41 00       	push   $0x41da60
404236:	57                   	push   %edi
404237:	ff d6                	call   *%esi
404239:	85 c0                	test   %eax,%eax
40423b:	0f 84 14 01 00 00    	je     0x404355
404241:	50                   	push   %eax
404242:	e8 6c e3 ff ff       	call   0x4025b3
404247:	c7 04 24 50 da 41 00 	movl   $0x41da50,(%esp)
40424e:	57                   	push   %edi
40424f:	a3 b8 0f 43 00       	mov    %eax,0x430fb8
404254:	ff d6                	call   *%esi
404256:	50                   	push   %eax
404257:	e8 57 e3 ff ff       	call   0x4025b3
40425c:	c7 04 24 3c da 41 00 	movl   $0x41da3c,(%esp)
404263:	57                   	push   %edi
404264:	a3 bc 0f 43 00       	mov    %eax,0x430fbc