404e09:	50                   	push   %eax
404e0a:	ff 75 08             	push   0x8(%ebp)
404e0d:	ff 33                	push   (%ebx)
404e0f:	ff 15 08 60 41 00    	call   *0x416008
404e15:	5f                   	pop    %edi
404e16:	5e                   	pop    %esi
404e17:	5b                   	pop    %ebx
404e18:	c9                   	leave
404e19:	c2 08 00             	ret    $0x8
404e1c:	b9 05 40 00 80       	mov    $0x80004005,%ecx
404e21:	e8 c9 fd ff ff       	call   0x404bef
404e26:	cc                   	int3
404e27:	8b ff                	mov    %edi,%edi
404e29:	55                   	push   %ebp
404e2a:	8b ec                	mov    %esp,%ebp
404e2c:	83 e4 f8             	and    $0xfffffff8,%esp
404e2f:	81 ec 24 02 00 00    	sub    $0x224,%esp
404e35:	a1 f4 51 41 00       	mov    0x4151f4,%eax
404e3a:	33 c4                	xor    %esp,%eax
404e3c:	89 84 24 20 02 00 00 	mov    %eax,0x220(%esp)
404e43:	53                   	push   %ebx
404e44:	8b 5d 08             	mov    0x8(%ebp),%ebx
404e47:	8d 44 24 14          	lea    0x14(%esp),%eax
404e4b:	56                   	push   %esi
404e4c:	57                   	push   %edi
404e4d:	50                   	push   %eax
404e4e:	8b f9                	mov    %ecx,%edi
404e50:	33 c9                	xor    %ecx,%ecx
404e52:	68 1f 00 02 00       	push   $0x2001f
404e57:	51                   	push   %ecx
404e58:	53                   	push   %ebx
404e59:	ff 37                	push   (%edi)
404e5b:	89 4c 24 20          	mov    %ecx,0x20(%esp)
404e5f:	89 4c 24 24          	mov    %ecx,0x24(%esp)
404e63:	89 4c 24 28          	mov    %ecx,0x28(%esp)
404e67:	89 4c 24 30          	mov    %ecx,0x30(%esp)
404e6b:	ff 15 04 60 41 00    	call   *0x416004
404e71:	8b f0                	mov    %eax,%esi
404e73:	85 f6                	test   %esi,%esi
404e75:	0f 85 90 00 00 00    	jne    0x404f0b
404e7b:	39 74 24 0c          	cmp    %esi,0xc(%esp)
404e7f:	74 0c                	je     0x404e8d
404e81:	ff 74 24 0c          	push   0xc(%esp)
404e85:	ff 15 18 60 41 00    	call   *0x416018
404e8b:	8b f0                	mov    %eax,%esi
404e8d:	8b 44 24 1c          	mov    0x1c(%esp),%eax
404e91:	89 44 24 0c          	mov    %eax,0xc(%esp)
404e95:	85 f6                	test   %esi,%esi
404e97:	75 72                	jne    0x404f0b
404e99:	8d 4c 24 20          	lea    0x20(%esp),%ecx
404e9d:	51                   	push   %ecx
404e9e:	56                   	push   %esi
404e9f:	56                   	push   %esi
404ea0:	56                   	push   %esi
404ea1:	8d 4c 24 28          	lea    0x28(%esp),%ecx
404ea5:	51                   	push   %ecx
404ea6:	8d 4c 24 3c          	lea    0x3c(%esp),%ecx
404eaa:	51                   	push   %ecx
404eab:	56                   	push   %esi
404eac:	50                   	push   %eax
404ead:	eb 2b                	jmp    0x404eda
404eaf:	8d 44 24 28          	lea    0x28(%esp),%eax
404eb3:	50                   	push   %eax
404eb4:	8d 4c 24 10          	lea    0x10(%esp),%ecx
404eb8:	e8 6a ff ff ff       	call   0x404e27
404ebd:	8b f0                	mov    %eax,%esi
404ebf:	85 f6                	test   %esi,%esi
404ec1:	75 48                	jne    0x404f0b
404ec3:	8d 44 24 20          	lea    0x20(%esp),%eax
404ec7:	50                   	push   %eax
404ec8:	56                   	push   %esi
404ec9:	56                   	push   %esi
404eca:	56                   	push   %esi
404ecb:	8d 44 24 28          	lea    0x28(%esp),%eax
404ecf:	50                   	push   %eax
404ed0:	8d 44 24 3c          	lea    0x3c(%esp),%eax
404ed4:	50                   	push   %eax
404ed5:	56                   	push   %esi
404ed6:	ff 74 24 28          	push   0x28(%esp)
404eda:	c7 44 24 38 00 01 00 	movl   $0x100,0x38(%esp)
404ee1:	00
404ee2:	ff 15 0c 60 41 00    	call   *0x41600c
404ee8:	85 c0                	test   %eax,%eax
404eea:	74 c3                	je     0x404eaf
404eec:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%esp)
404ef1:	74 0e                	je     0x404f01
404ef3:	ff 74 24 0c          	push   0xc(%esp)
404ef7:	ff 15 18 60 41 00    	call   *0x416018
404efd:	89 74 24 0c          	mov    %esi,0xc(%esp)
404f01:	53                   	push   %ebx
404f02:	8b cf                	mov    %edi,%ecx
404f04:	e8 24 fe ff ff       	call   0x404d2d
404f09:	8b f0                	mov    %eax,%esi
404f0b:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%esp)
404f10:	74 0a                	je     0x404f1c
404f12:	ff 74 24 0c          	push   0xc(%esp)
404f16:	ff 15 18 60 41 00    	call   *0x416018
404f1c:	8b 8c 24 2c 02 00 00 	mov    0x22c(%esp),%ecx
404f23:	8b c6                	mov    %esi,%eax
404f25:	5f                   	pop    %edi
404f26:	5e                   	pop    %esi
404f27:	5b                   	pop    %ebx
404f28:	33 cc                	xor    %esp,%ecx
404f2a:	e8 c1 d0 00 00       	call   0x411ff0
404f2f:	8b e5                	mov    %ebp,%esp
404f31:	5d                   	pop    %ebp
404f32:	c2 04 00             	ret    $0x4
404f35:	6a 24                	push   $0x24
404f37:	b8 07 2b 41 00       	mov    $0x412b07,%eax
404f3c:	e8 86 d6 00 00       	call   0x4125c7
404f41:	89 4d d0             	mov    %ecx,-0x30(%ebp)
404f44:	8b 45 08             	mov    0x8(%ebp),%eax
404f47:	85 c0                	test   %eax,%eax
404f49:	0f 84 42 01 00 00    	je     0x405091
404f4f:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
404f53:	0f 84 38 01 00 00    	je     0x405091
404f59:	8b c8                	mov    %eax,%ecx
404f5b:	33 f6                	xor    %esi,%esi
404f5d:	8b de                	mov    %esi,%ebx
404f5f:	6a 02                	push   $0x2
404f61:	89 5d e0             	mov    %ebx,-0x20(%ebp)
404f64:	8d 51 02             	lea    0x2(%ecx),%edx
404f67:	5f                   	pop    %edi
404f68:	66 8b 01             	mov    (%ecx),%ax
404f6b:	03 cf                	add    %edi,%ecx
404f6d:	66 3b c6             	cmp    %si,%ax
404f70:	75 f6                	jne    0x404f68
404f72:	2b ca                	sub    %edx,%ecx
404f74:	89 75 ec             	mov    %esi,-0x14(%ebp)
404f77:	d1 f9                	sar    $1,%ecx
404f79:	89 75 fc             	mov    %esi,-0x4(%ebp)
404f7c:	8d 04 4d 02 00 00 00 	lea    0x2(,%ecx,2),%eax
404f83:	33 c9                	xor    %ecx,%ecx
404f85:	89 45 d8             	mov    %eax,-0x28(%ebp)
404f88:	f7 e7                	mul    %edi
404f8a:	0f 90 c1             	seto   %cl
404f8d:	f7 d9                	neg    %ecx
404f8f:	0b c8                	or     %eax,%ecx
404f91:	51                   	push   %ecx
404f92:	e8 3a c5 00 00       	call   0x4114d1
404f97:	59                   	pop    %ecx
404f98:	89 45 ec             	mov    %eax,-0x14(%ebp)
404f9b:	eb 10                	jmp    0x404fad
404f9d:	b8 a3 4f 40 00       	mov    $0x404fa3,%eax
404fa2:	c3                   	ret
404fa3:	8b 45 ec             	mov    -0x14(%ebp),%eax
404fa6:	33 f6                	xor    %esi,%esi
404fa8:	6a 02                	push   $0x2
404faa:	5f                   	pop    %edi
404fab:	8b de                	mov    %esi,%ebx
404fad:	89 45 e4             	mov    %eax,-0x1c(%ebp)
404fb0:	8b 4d 0c             	mov    0xc(%ebp),%ecx
404fb3:	89 7d fc             	mov    %edi,-0x4(%ebp)
404fb6:	8b f8                	mov    %eax,%edi
404fb8:	89 7d dc             	mov    %edi,-0x24(%ebp)
404fbb:	e8 f5 fb ff ff       	call   0x404bb5
404fc0:	33 c9                	xor    %ecx,%ecx
404fc2:	89 75 e8             	mov    %esi,-0x18(%ebp)
404fc5:	6a 02                	push   $0x2
404fc7:	5a                   	pop    %edx
404fc8:	8d 04 45 02 00 00 00 	lea    0x2(,%eax,2),%eax
404fcf:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
404fd3:	89 45 d4             	mov    %eax,-0x2c(%ebp)
404fd6:	f7 e2                	mul    %edx
404fd8:	0f 90 c1             	seto   %cl
404fdb:	f7 d9                	neg    %ecx
404fdd:	0b c8                	or     %eax,%ecx
404fdf:	51                   	push   %ecx
404fe0:	e8 ec c4 00 00       	call   0x4114d1
404fe5:	8b f0                	mov    %eax,%esi
404fe7:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
404fee:	59                   	pop    %ecx
404fef:	89 75 e8             	mov    %esi,-0x18(%ebp)
404ff2:	8b c7                	mov    %edi,%eax
404ff4:	eb 19                	jmp    0x40500f
404ff6:	b8 fc 4f 40 00       	mov    $0x404ffc,%eax
404ffb:	c3                   	ret
404ffc:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
405003:	8b 5d e0             	mov    -0x20(%ebp),%ebx
405006:	8b 45 ec             	mov    -0x14(%ebp),%eax
405009:	8b 7d dc             	mov    -0x24(%ebp),%edi
40500c:	8b 75 e8             	mov    -0x18(%ebp),%esi
40500f:	c6 45 fc 05          	movb   $0x5,-0x4(%ebp)
405013:	89 75 e0             	mov    %esi,-0x20(%ebp)
405016:	85 c0                	test   %eax,%eax
405018:	74 51                	je     0x40506b
40501a:	85 f6                	test   %esi,%esi
40501c:	74 4d                	je     0x40506b
40501e:	8b 4d d8             	mov    -0x28(%ebp),%ecx
405021:	51                   	push   %ecx
405022:	ff 75 08             	push   0x8(%ebp)
405025:	51                   	push   %ecx
405026:	50                   	push   %eax
405027:	ff 15 c4 62 41 00    	call   *0x4162c4
40502d:	83 c4 10             	add    $0x10,%esp
405030:	8b c8                	mov    %eax,%ecx
405032:	e8 d5 fb ff ff       	call   0x404c0c
405037:	8b 45 d4             	mov    -0x2c(%ebp),%eax
40503a:	50                   	push   %eax
40503b:	ff 75 0c             	push   0xc(%ebp)
40503e:	50                   	push   %eax
40503f:	56                   	push   %esi
405040:	ff 15 c4 62 41 00    	call   *0x4162c4
405046:	83 c4 10             	add    $0x10,%esp
405049:	8b c8                	mov    %eax,%ecx
40504b:	e8 bc fb ff ff       	call   0x404c0c
405050:	8b 4d d0             	mov    -0x30(%ebp),%ecx
405053:	8d 45 e8             	lea    -0x18(%ebp),%eax
405056:	50                   	push   %eax
405057:	8d 45 ec             	lea    -0x14(%ebp),%eax
40505a:	50                   	push   %eax
40505b:	e8 f0 26 00 00       	call   0x407750
405060:	85 c0                	test   %eax,%eax
405062:	75 0c                	jne    0x405070
405064:	bb 0e 00 07 80       	mov    $0x8007000e,%ebx
405069:	eb 0d                	jmp    0x405078
40506b:	bb 0e 00 07 80       	mov    $0x8007000e,%ebx
405070:	85 db                	test   %ebx,%ebx
405072:	78 04                	js     0x405078
405074:	33 ff                	xor    %edi,%edi
405076:	33 f6                	xor    %esi,%esi
405078:	56                   	push   %esi
405079:	ff 15 c8 62 41 00    	call   *0x4162c8
40507f:	57                   	push   %edi
405080:	ff 15 c8 62 41 00    	call   *0x4162c8
405086:	f7 d3                	not    %ebx
405088:	59                   	pop    %ecx
405089:	c1 eb 1f             	shr    $0x1f,%ebx
40508c:	59                   	pop    %ecx
40508d:	8b c3                	mov    %ebx,%eax
40508f:	eb 02                	jmp    0x405093
405091:	33 c0                	xor    %eax,%eax
405093:	e8 94 d4 00 00       	call   0x41252c
405098:	c2 08 00             	ret    $0x8
40509b:	8b ff                	mov    %edi,%edi
40509d:	56                   	push   %esi
40509e:	57                   	push   %edi
40509f:	8b f9                	mov    %ecx,%edi
4050a1:	33 f6                	xor    %esi,%esi
4050a3:	8b 47 08             	mov    0x8(%edi),%eax
4050a6:	85 c0                	test   %eax,%eax
4050a8:	7e 2e                	jle    0x4050d8
4050aa:	85 f6                	test   %esi,%esi
4050ac:	78 36                	js     0x4050e4
4050ae:	3b f0                	cmp    %eax,%esi
4050b0:	7d 32                	jge    0x4050e4
4050b2:	8b 07                	mov    (%edi),%eax
4050b4:	ff 34 b0             	push   (%eax,%esi,4)
4050b7:	ff 15 c8 62 41 00    	call   *0x4162c8
4050bd:	59                   	pop    %ecx
4050be:	3b 77 08             	cmp    0x8(%edi),%esi
4050c1:	7d 21                	jge    0x4050e4
4050c3:	8b 47 04             	mov    0x4(%edi),%eax
4050c6:	ff 34 b0             	push   (%eax,%esi,4)
4050c9:	ff 15 c8 62 41 00    	call   *0x4162c8
4050cf:	8b 47 08             	mov    0x8(%edi),%eax
4050d2:	46                   	inc    %esi
4050d3:	59                   	pop    %ecx
4050d4:	3b f0                	cmp    %eax,%esi
4050d6:	7c d2                	jl     0x4050aa
4050d8:	8b cf                	mov    %edi,%ecx
4050da:	e8 41 26 00 00       	call   0x407720
4050df:	5f                   	pop    %edi
4050e0:	33 c0                	xor    %eax,%eax
4050e2:	5e                   	pop    %esi
4050e3:	c3                   	ret
4050e4:	b9 8c 00 00 c0       	mov    $0xc000008c,%ecx
4050e9:	e8 e3 fa ff ff       	call   0x404bd1
4050ee:	cc                   	int3
4050ef:	ff 71 08             	push   0x8(%ecx)
4050f2:	ff 15 34 62 41 00    	call   *0x416234
4050f8:	c3                   	ret
4050f9:	8b ff                	mov    %edi,%edi
4050fb:	55                   	push   %ebp
4050fc:	8b ec                	mov    %esp,%ebp
4050fe:	53                   	push   %ebx
4050ff:	56                   	push   %esi
405100:	57                   	push   %edi
405101:	8b f9                	mov    %ecx,%edi
405103:	8b 4d 0c             	mov    0xc(%ebp),%ecx
405106:	8b 17                	mov    (%edi),%edx
405108:	8d 41 01             	lea    0x1(%ecx),%eax
40510b:	03 c2                	add    %edx,%eax
40510d:	3b c2                	cmp    %edx,%eax
40510f:	0f 8e 8c 00 00 00    	jle    0x4051a1
405115:	3b c1                	cmp    %ecx,%eax
405117:	0f 8e 84 00 00 00    	jle    0x4051a1
40511d:	8b 77 04             	mov    0x4(%edi),%esi
405120:	3b c6                	cmp    %esi,%eax
405122:	7c 36                	jl     0x40515a
405124:	81 fe ff ff ff 3f    	cmp    $0x3fffffff,%esi
40512a:	7f 75                	jg     0x4051a1
40512c:	03 f6                	add    %esi,%esi
40512e:	3b c6                	cmp    %esi,%eax
405130:	7d f2                	jge    0x405124
405132:	6a 02                	push   $0x2
405134:	8b c6                	mov    %esi,%eax
405136:	59                   	pop    %ecx
405137:	f7 e1                	mul    %ecx
405139:	85 d2                	test   %edx,%edx
40513b:	77 64                	ja     0x4051a1
40513d:	72 05                	jb     0x405144
40513f:	83 f8 ff             	cmp    $0xffffffff,%eax
405142:	77 5d                	ja     0x4051a1
405144:	50                   	push   %eax
405145:	ff 77 08             	push   0x8(%edi)
405148:	ff 15 30 62 41 00    	call   *0x416230
40514e:	85 c0                	test   %eax,%eax
405150:	74 4f                	je     0x4051a1
405152:	8b 17                	mov    (%edi),%edx
405154:	89 47 08             	mov    %eax,0x8(%edi)
405157:	89 77 04             	mov    %esi,0x4(%edi)
40515a:	85 d2                	test   %edx,%edx
40515c:	78 43                	js     0x4051a1
40515e:	3b d6                	cmp    %esi,%edx
405160:	7d 3f                	jge    0x4051a1
405162:	8b de                	mov    %esi,%ebx
405164:	2b da                	sub    %edx,%ebx
405166:	3b de                	cmp    %esi,%ebx
405168:	7f 37                	jg     0x4051a1
40516a:	8b 47 08             	mov    0x8(%edi),%eax
40516d:	8b 75 0c             	mov    0xc(%ebp),%esi
405170:	8d 0c 50             	lea    (%eax,%edx,2),%ecx
405173:	8d 04 36             	lea    (%esi,%esi,1),%eax
405176:	50                   	push   %eax
405177:	ff 75 08             	push   0x8(%ebp)
40517a:	8d 04 1b             	lea    (%ebx,%ebx,1),%eax
40517d:	50                   	push   %eax
40517e:	51                   	push   %ecx
40517f:	ff 15 c4 62 41 00    	call   *0x4162c4
405185:	83 c4 10             	add    $0x10,%esp
405188:	8b c8                	mov    %eax,%ecx
40518a:	e8 7d fa ff ff       	call   0x404c0c
40518f:	01 37                	add    %esi,(%edi)
405191:	33 d2                	xor    %edx,%edx
405193:	8b 47 08             	mov    0x8(%edi),%eax
405196:	8b 0f                	mov    (%edi),%ecx
405198:	66 89 14 48          	mov    %dx,(%eax,%ecx,2)
40519c:	33 c0                	xor    %eax,%eax
40519e:	40                   	inc    %eax
40519f:	eb 02                	jmp    0x4051a3
4051a1:	33 c0                	xor    %eax,%eax
4051a3:	5f                   	pop    %edi
4051a4:	5e                   	pop    %esi
4051a5:	5b                   	pop    %ebx
4051a6:	5d                   	pop    %ebp
4051a7:	c2 08 00             	ret    $0x8
4051aa:	cc                   	int3
4051ab:	cc                   	int3
4051ac:	cc                   	int3