404f79:	85 f6                	test   %esi,%esi
404f7b:	7f 09                	jg     0x404f86
404f7d:	8b c7                	mov    %edi,%eax
404f7f:	e8 7c ff ff ff       	call   0x404f00
404f84:	eb 5d                	jmp    0x404fe3
404f86:	8d 6e 01             	lea    0x1(%esi),%ebp
404f89:	81 fd ff 07 00 00    	cmp    $0x7ff,%ebp
404f8f:	7d 28                	jge    0x404fb9
404f91:	56                   	push   %esi
404f92:	8d 44 24 08          	lea    0x8(%esp),%eax
404f96:	8b 4c 24 04          	mov    0x4(%esp),%ecx
404f9a:	ba ff 07 00 00       	mov    $0x7ff,%edx
404f9f:	e8 bc f8 ff ff       	call   0x404860
404fa4:	8b d8                	mov    %eax,%ebx
404fa6:	85 db                	test   %ebx,%ebx
404fa8:	7e 0f                	jle    0x404fb9
404faa:	8d 54 24 04          	lea    0x4(%esp),%edx
404fae:	8b c7                	mov    %edi,%eax
404fb0:	8b cb                	mov    %ebx,%ecx
404fb2:	e8 39 00 00 00       	call   0x404ff0
404fb7:	eb 2a                	jmp    0x404fe3
404fb9:	8b dd                	mov    %ebp,%ebx
404fbb:	8b c7                	mov    %edi,%eax
404fbd:	8b d3                	mov    %ebx,%edx
404fbf:	e8 88 01 00 00       	call   0x40514c
404fc4:	56                   	push   %esi
404fc5:	8b 07                	mov    (%edi),%eax
404fc7:	8b 4c 24 04          	mov    0x4(%esp),%ecx
404fcb:	8b d3                	mov    %ebx,%edx
404fcd:	e8 8e f8 ff ff       	call   0x404860
404fd2:	8b d8                	mov    %eax,%ebx
404fd4:	85 db                	test   %ebx,%ebx
404fd6:	7d 02                	jge    0x404fda
404fd8:	33 db                	xor    %ebx,%ebx
404fda:	8b c7                	mov    %edi,%eax
404fdc:	8b d3                	mov    %ebx,%edx
404fde:	e8 69 01 00 00       	call   0x40514c
404fe3:	81 c4 04 10 00 00    	add    $0x1004,%esp
404fe9:	5d                   	pop    %ebp
404fea:	5f                   	pop    %edi
404feb:	5e                   	pop    %esi
404fec:	5b                   	pop    %ebx
404fed:	c3                   	ret
404fee:	8b c0                	mov    %eax,%eax
404ff0:	85 c9                	test   %ecx,%ecx
404ff2:	0f 84 08 ff ff ff    	je     0x404f00
404ff8:	50                   	push   %eax
404ff9:	51                   	push   %ecx
404ffa:	52                   	push   %edx
404ffb:	e8 2c c3 ff ff       	call   0x40132c
405000:	85 c0                	test   %eax,%eax
405002:	0f 84 c8 fe ff ff    	je     0x404ed0
405008:	5a                   	pop    %edx
405009:	ff 32                	push   (%edx)
40500b:	89 02                	mov    %eax,(%edx)
40500d:	e8 2a c3 ff ff       	call   0x40133c
405012:	c3                   	ret
405013:	90                   	nop
405014:	31 c9                	xor    %ecx,%ecx
405016:	85 d2                	test   %edx,%edx
405018:	74 2d                	je     0x405047
40501a:	52                   	push   %edx
40501b:	66 3b 0a             	cmp    (%edx),%cx
40501e:	74 20                	je     0x405040
405020:	66 3b 4a 02          	cmp    0x2(%edx),%cx
405024:	74 17                	je     0x40503d
405026:	66 3b 4a 04          	cmp    0x4(%edx),%cx
40502a:	74 0e                	je     0x40503a
40502c:	66 3b 4a 06          	cmp    0x6(%edx),%cx
405030:	74 05                	je     0x405037
405032:	83 c2 08             	add    $0x8,%edx
405035:	eb e4                	jmp    0x40501b
405037:	83 c2 02             	add    $0x2,%edx
40503a:	83 c2 02             	add    $0x2,%edx
40503d:	83 c2 02             	add    $0x2,%edx
405040:	89 d1                	mov    %edx,%ecx
405042:	5a                   	pop    %edx
405043:	29 d1                	sub    %edx,%ecx
405045:	d1 e9                	shr    $1,%ecx
405047:	e9 a4 ff ff ff       	jmp    0x404ff0
40504c:	c3                   	ret
40504d:	8d 40 00             	lea    0x0(%eax),%eax
405050:	31 c9                	xor    %ecx,%ecx
405052:	85 d2                	test   %edx,%edx
405054:	74 03                	je     0x405059
405056:	8b 4a fc             	mov    -0x4(%edx),%ecx
405059:	e9 06 ff ff ff       	jmp    0x404f64
40505e:	c3                   	ret
40505f:	90                   	nop
405060:	85 c0                	test   %eax,%eax
405062:	74 04                	je     0x405068
405064:	c3                   	ret
405065:	90                   	nop
405066:	00 00                	add    %al,(%eax)
405068:	b8 66 50 40 00       	mov    $0x405066,%eax
40506d:	c3                   	ret
40506e:	8b c0                	mov    %eax,%eax
405070:	85 c0                	test   %eax,%eax
405072:	74 05                	je     0x405079
405074:	8b 40 fc             	mov    -0x4(%eax),%eax
405077:	d1 e8                	shr    $1,%eax
405079:	c3                   	ret
40507a:	8b c0                	mov    %eax,%eax
40507c:	53                   	push   %ebx
40507d:	56                   	push   %esi
40507e:	57                   	push   %edi
40507f:	89 c6                	mov    %eax,%esi
405081:	89 d7                	mov    %edx,%edi
405083:	39 d0                	cmp    %edx,%eax
405085:	74 72                	je     0x4050f9
405087:	85 f6                	test   %esi,%esi
405089:	74 51                	je     0x4050dc
40508b:	85 ff                	test   %edi,%edi
40508d:	74 54                	je     0x4050e3
40508f:	8b 46 fc             	mov    -0x4(%esi),%eax
405092:	8b 57 fc             	mov    -0x4(%edi),%edx
405095:	29 d0                	sub    %edx,%eax
405097:	77 02                	ja     0x40509b
405099:	01 c2                	add    %eax,%edx
40509b:	52                   	push   %edx
40509c:	c1 ea 02             	shr    $0x2,%edx
40509f:	74 26                	je     0x4050c7
4050a1:	8b 0e                	mov    (%esi),%ecx
4050a3:	8b 1f                	mov    (%edi),%ebx
4050a5:	39 d9                	cmp    %ebx,%ecx
4050a7:	75 41                	jne    0x4050ea
4050a9:	4a                   	dec    %edx
4050aa:	74 15                	je     0x4050c1
4050ac:	8b 4e 04             	mov    0x4(%esi),%ecx
4050af:	8b 5f 04             	mov    0x4(%edi),%ebx
4050b2:	39 d9                	cmp    %ebx,%ecx
4050b4:	75 34                	jne    0x4050ea
4050b6:	83 c6 08             	add    $0x8,%esi
4050b9:	83 c7 08             	add    $0x8,%edi
4050bc:	4a                   	dec    %edx
4050bd:	75 e2                	jne    0x4050a1
4050bf:	eb 06                	jmp    0x4050c7
4050c1:	83 c6 04             	add    $0x4,%esi
4050c4:	83 c7 04             	add    $0x4,%edi
4050c7:	5a                   	pop    %edx
4050c8:	83 e2 02             	and    $0x2,%edx
4050cb:	74 0b                	je     0x4050d8
4050cd:	66 8b 0e             	mov    (%esi),%cx
4050d0:	66 8b 1f             	mov    (%edi),%bx
4050d3:	66 39 d9             	cmp    %bx,%cx
4050d6:	75 21                	jne    0x4050f9
4050d8:	01 c0                	add    %eax,%eax
4050da:	eb 1d                	jmp    0x4050f9
4050dc:	8b 57 fc             	mov    -0x4(%edi),%edx
4050df:	29 d0                	sub    %edx,%eax
4050e1:	eb 16                	jmp    0x4050f9
4050e3:	8b 46 fc             	mov    -0x4(%esi),%eax
4050e6:	29 d0                	sub    %edx,%eax
4050e8:	eb 0f                	jmp    0x4050f9
4050ea:	5a                   	pop    %edx
4050eb:	66 39 d9             	cmp    %bx,%cx
4050ee:	75 09                	jne    0x4050f9
4050f0:	c1 e9 10             	shr    $0x10,%ecx
4050f3:	c1 eb 10             	shr    $0x10,%ebx
4050f6:	66 39 d9             	cmp    %bx,%cx
4050f9:	5f                   	pop    %edi
4050fa:	5e                   	pop    %esi
4050fb:	5b                   	pop    %ebx
4050fc:	c3                   	ret
4050fd:	8d 40 00             	lea    0x0(%eax),%eax
405100:	55                   	push   %ebp
405101:	8b ec                	mov    %esp,%ebp
405103:	53                   	push   %ebx
405104:	56                   	push   %esi
405105:	57                   	push   %edi
405106:	8b f9                	mov    %ecx,%edi
405108:	8b da                	mov    %edx,%ebx
40510a:	8b f0                	mov    %eax,%esi
40510c:	8b c6                	mov    %esi,%eax
40510e:	e8 5d ff ff ff       	call   0x405070
405113:	83 fb 01             	cmp    $0x1,%ebx
405116:	7d 04                	jge    0x40511c
405118:	33 db                	xor    %ebx,%ebx
40511a:	eb 07                	jmp    0x405123
40511c:	4b                   	dec    %ebx
40511d:	3b c3                	cmp    %ebx,%eax
40511f:	7d 02                	jge    0x405123
405121:	8b d8                	mov    %eax,%ebx
405123:	85 ff                	test   %edi,%edi
405125:	7d 04                	jge    0x40512b
405127:	33 c0                	xor    %eax,%eax
405129:	eb 08                	jmp    0x405133
40512b:	2b c3                	sub    %ebx,%eax
40512d:	3b f8                	cmp    %eax,%edi
40512f:	7d 02                	jge    0x405133
405131:	8b c7                	mov    %edi,%eax
405133:	8b d3                	mov    %ebx,%edx
405135:	03 d2                	add    %edx,%edx
405137:	03 d6                	add    %esi,%edx
405139:	8b 4d 08             	mov    0x8(%ebp),%ecx
40513c:	91                   	xchg   %eax,%ecx
40513d:	e8 ae fe ff ff       	call   0x404ff0
405142:	5f                   	pop    %edi
405143:	5e                   	pop    %esi
405144:	5b                   	pop    %ebx
405145:	5d                   	pop    %ebp
405146:	c2 04 00             	ret    $0x4
405149:	8d 40 00             	lea    0x0(%eax),%eax
40514c:	53                   	push   %ebx
40514d:	56                   	push   %esi
40514e:	57                   	push   %edi
40514f:	8b f2                	mov    %edx,%esi
405151:	8b f8                	mov    %eax,%edi
405153:	33 db                	xor    %ebx,%ebx
405155:	85 f6                	test   %esi,%esi
405157:	7e 27                	jle    0x405180
405159:	8b c6                	mov    %esi,%eax
40515b:	e8 78 fd ff ff       	call   0x404ed8
405160:	8b d8                	mov    %eax,%ebx
405162:	8b 07                	mov    (%edi),%eax
405164:	e8 07 ff ff ff       	call   0x405070
405169:	85 c0                	test   %eax,%eax
40516b:	7e 13                	jle    0x405180
40516d:	3b f0                	cmp    %eax,%esi
40516f:	7d 02                	jge    0x405173
405171:	8b c6                	mov    %esi,%eax
405173:	8b c8                	mov    %eax,%ecx
405175:	03 c9                	add    %ecx,%ecx
405177:	8b d3                	mov    %ebx,%edx
405179:	8b 07                	mov    (%edi),%eax
40517b:	e8 5c dd ff ff       	call   0x402edc
405180:	8b c7                	mov    %edi,%eax
405182:	8b d3                	mov    %ebx,%edx
405184:	e8 67 fd ff ff       	call   0x404ef0
405189:	5f                   	pop    %edi
40518a:	5e                   	pop    %esi
40518b:	5b                   	pop    %ebx
40518c:	c3                   	ret
40518d:	8d 40 00             	lea    0x0(%eax),%eax
405190:	31 c9                	xor    %ecx,%ecx
405192:	53                   	push   %ebx
405193:	8a 4a 01             	mov    0x1(%edx),%cl
405196:	56                   	push   %esi
405197:	57                   	push   %edi
405198:	89 c3                	mov    %eax,%ebx
40519a:	8d 74 11 0a          	lea    0xa(%ecx,%edx,1),%esi
40519e:	8b 7c 11 06          	mov    0x6(%ecx,%edx,1),%edi
4051a2:	8b 16                	mov    (%esi),%edx
4051a4:	8b 46 04             	mov    0x4(%esi),%eax
4051a7:	01 d8                	add    %ebx,%eax
4051a9:	8b 12                	mov    (%edx),%edx
4051ab:	b9 01 00 00 00       	mov    $0x1,%ecx
4051b0:	e8 0b 00 00 00       	call   0x4051c0
4051b5:	83 c6 08             	add    $0x8,%esi
4051b8:	4f                   	dec    %edi
4051b9:	7f e7                	jg     0x4051a2
4051bb:	5f                   	pop    %edi
4051bc:	5e                   	pop    %esi
4051bd:	5b                   	pop    %ebx
4051be:	c3                   	ret
4051bf:	90                   	nop
4051c0:	85 c9                	test   %ecx,%ecx
4051c2:	0f 84 8a 00 00 00    	je     0x405252
4051c8:	53                   	push   %ebx
4051c9:	56                   	push   %esi
4051ca:	57                   	push   %edi
4051cb:	89 c3                	mov    %eax,%ebx
4051cd:	89 d6                	mov    %edx,%esi
4051cf:	89 cf                	mov    %ecx,%edi
4051d1:	31 d2                	xor    %edx,%edx
4051d3:	8a 06                	mov    (%esi),%al
4051d5:	8a 56 01             	mov    0x1(%esi),%dl
4051d8:	31 c9                	xor    %ecx,%ecx
4051da:	3c 0a                	cmp    $0xa,%al
4051dc:	74 22                	je     0x405200
4051de:	3c 0b                	cmp    $0xb,%al
4051e0:	74 1e                	je     0x405200
4051e2:	3c 0c                	cmp    $0xc,%al
4051e4:	74 24                	je     0x40520a
4051e6:	3c 0d                	cmp    $0xd,%al
4051e8:	74 33                	je     0x40521d
4051ea:	3c 0e                	cmp    $0xe,%al
4051ec:	74 4d                	je     0x40523b
4051ee:	3c 0f                	cmp    $0xf,%al
4051f0:	74 0e                	je     0x405200
4051f2:	3c 11                	cmp    $0x11,%al
4051f4:	74 0a                	je     0x405200
4051f6:	b0 02                	mov    $0x2,%al
4051f8:	5f                   	pop    %edi
4051f9:	5e                   	pop    %esi
4051fa:	5b                   	pop    %ebx
4051fb:	e9 3c dc ff ff       	jmp    0x402e3c
405200:	89 0b                	mov    %ecx,(%ebx)
405202:	83 c3 04             	add    $0x4,%ebx
405205:	4f                   	dec    %edi
405206:	7f f8                	jg     0x405200
405208:	eb 45                	jmp    0x40524f
40520a:	89 0b                	mov    %ecx,(%ebx)
40520c:	89 4b 04             	mov    %ecx,0x4(%ebx)
40520f:	89 4b 08             	mov    %ecx,0x8(%ebx)
405212:	89 4b 0c             	mov    %ecx,0xc(%ebx)
405215:	83 c3 10             	add    $0x10,%ebx
405218:	4f                   	dec    %edi
405219:	7f ef                	jg     0x40520a
40521b:	eb 32                	jmp    0x40524f
40521d:	55                   	push   %ebp
40521e:	89 d5                	mov    %edx,%ebp
405220:	8b 54 2e 0a          	mov    0xa(%esi,%ebp,1),%edx
405224:	89 d8                	mov    %ebx,%eax
405226:	03 5c 2e 02          	add    0x2(%esi,%ebp,1),%ebx
40522a:	8b 4c 2e 06          	mov    0x6(%esi,%ebp,1),%ecx
40522e:	8b 12                	mov    (%edx),%edx
405230:	e8 8b ff ff ff       	call   0x4051c0
405235:	4f                   	dec    %edi
405236:	7f e8                	jg     0x405220
405238:	5d                   	pop    %ebp
405239:	eb 14                	jmp    0x40524f
40523b:	55                   	push   %ebp
40523c:	89 d5                	mov    %edx,%ebp
40523e:	89 d8                	mov    %ebx,%eax
405240:	03 5c 2e 02          	add    0x2(%esi,%ebp,1),%ebx
405244:	89 f2                	mov    %esi,%edx
405246:	e8 45 ff ff ff       	call   0x405190
40524b:	4f                   	dec    %edi
40524c:	7f f0                	jg     0x40523e
40524e:	5d                   	pop    %ebp
40524f:	5f                   	pop    %edi
405250:	5e                   	pop    %esi
405251:	5b                   	pop    %ebx
405252:	c3                   	ret
405253:	90                   	nop
405254:	b9 01 00 00 00       	mov    $0x1,%ecx
405259:	e9 62 ff ff ff       	jmp    0x4051c0
40525e:	c3                   	ret
40525f:	90                   	nop
405260:	31 c9                	xor    %ecx,%ecx
405262:	53                   	push   %ebx
405263:	8a 4a 01             	mov    0x1(%edx),%cl
405266:	56                   	push   %esi
405267:	57                   	push   %edi
405268:	89 c3                	mov    %eax,%ebx
40526a:	8d 74 11 0a          	lea    0xa(%ecx,%edx,1),%esi
40526e:	8b 7c 11 06          	mov    0x6(%ecx,%edx,1),%edi
405272:	8b 16                	mov    (%esi),%edx
405274:	8b 46 04             	mov    0x4(%esi),%eax
405277:	01 d8                	add    %ebx,%eax
405279:	8b 12                	mov    (%edx),%edx
40527b:	b9 01 00 00 00       	mov    $0x1,%ecx
405280:	e8 27 00 00 00       	call   0x4052ac
405285:	83 c6 08             	add    $0x8,%esi
405288:	4f                   	dec    %edi
405289:	7f e7                	jg     0x405272
40528b:	89 d8                	mov    %ebx,%eax
40528d:	5f                   	pop    %edi
40528e:	5e                   	pop    %esi