404f48:	74 06                	je     0x404f50
404f4a:	52                   	push   %edx
404f4b:	e8 0c c4 ff ff       	call   0x40135c
404f50:	c3                   	ret
404f51:	8d 40 00             	lea    0x0(%eax),%eax
404f54:	8b 10                	mov    (%eax),%edx
404f56:	85 d2                	test   %edx,%edx
404f58:	74 0e                	je     0x404f68
404f5a:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
404f60:	50                   	push   %eax
404f61:	52                   	push   %edx
404f62:	e8 f5 c3 ff ff       	call   0x40135c
404f67:	58                   	pop    %eax
404f68:	c3                   	ret
404f69:	8d 40 00             	lea    0x0(%eax),%eax
404f6c:	53                   	push   %ebx
404f6d:	56                   	push   %esi
404f6e:	89 c3                	mov    %eax,%ebx
404f70:	89 d6                	mov    %edx,%esi
404f72:	8b 03                	mov    (%ebx),%eax
404f74:	85 c0                	test   %eax,%eax
404f76:	74 0c                	je     0x404f84
404f78:	c7 03 00 00 00 00    	movl   $0x0,(%ebx)
404f7e:	50                   	push   %eax
404f7f:	e8 d8 c3 ff ff       	call   0x40135c
404f84:	83 c3 04             	add    $0x4,%ebx
404f87:	4e                   	dec    %esi
404f88:	75 e8                	jne    0x404f72
404f8a:	5e                   	pop    %esi
404f8b:	5b                   	pop    %ebx
404f8c:	c3                   	ret
404f8d:	8d 40 00             	lea    0x0(%eax),%eax
404f90:	39 10                	cmp    %edx,(%eax)
404f92:	74 23                	je     0x404fb7
404f94:	85 d2                	test   %edx,%edx
404f96:	0f 84 b8 ff ff ff    	je     0x404f54
404f9c:	8b 4a fc             	mov    -0x4(%edx),%ecx
404f9f:	d1 e9                	shr    $1,%ecx
404fa1:	0f 84 ad ff ff ff    	je     0x404f54
404fa7:	51                   	push   %ecx
404fa8:	52                   	push   %edx
404fa9:	50                   	push   %eax
404faa:	e8 a5 c3 ff ff       	call   0x401354
404faf:	85 c0                	test   %eax,%eax
404fb1:	0f 84 6d ff ff ff    	je     0x404f24
404fb7:	c3                   	ret
404fb8:	53                   	push   %ebx
404fb9:	56                   	push   %esi
404fba:	57                   	push   %edi
404fbb:	55                   	push   %ebp
404fbc:	81 c4 04 f0 ff ff    	add    $0xfffff004,%esp
404fc2:	50                   	push   %eax
404fc3:	83 c4 fc             	add    $0xfffffffc,%esp
404fc6:	8b f1                	mov    %ecx,%esi
404fc8:	89 14 24             	mov    %edx,(%esp)
404fcb:	8b f8                	mov    %eax,%edi
404fcd:	85 f6                	test   %esi,%esi
404fcf:	7f 09                	jg     0x404fda
404fd1:	8b c7                	mov    %edi,%eax
404fd3:	e8 7c ff ff ff       	call   0x404f54
404fd8:	eb 5d                	jmp    0x405037
404fda:	8d 6e 01             	lea    0x1(%esi),%ebp
404fdd:	81 fd ff 07 00 00    	cmp    $0x7ff,%ebp
404fe3:	7d 28                	jge    0x40500d
404fe5:	56                   	push   %esi
404fe6:	8d 44 24 08          	lea    0x8(%esp),%eax
404fea:	8b 4c 24 04          	mov    0x4(%esp),%ecx
404fee:	ba ff 07 00 00       	mov    $0x7ff,%edx
404ff3:	e8 90 f8 ff ff       	call   0x404888
404ff8:	8b d8                	mov    %eax,%ebx
404ffa:	85 db                	test   %ebx,%ebx
404ffc:	7e 0f                	jle    0x40500d
404ffe:	8d 54 24 04          	lea    0x4(%esp),%edx
405002:	8b c7                	mov    %edi,%eax
405004:	8b cb                	mov    %ebx,%ecx
405006:	e8 39 00 00 00       	call   0x405044
40500b:	eb 2a                	jmp    0x405037
40500d:	8b dd                	mov    %ebp,%ebx
40500f:	8b c7                	mov    %edi,%eax
405011:	8b d3                	mov    %ebx,%edx
405013:	e8 88 01 00 00       	call   0x4051a0
405018:	56                   	push   %esi
405019:	8b 07                	mov    (%edi),%eax
40501b:	8b 4c 24 04          	mov    0x4(%esp),%ecx
40501f:	8b d3                	mov    %ebx,%edx
405021:	e8 62 f8 ff ff       	call   0x404888
405026:	8b d8                	mov    %eax,%ebx
405028:	85 db                	test   %ebx,%ebx
40502a:	7d 02                	jge    0x40502e
40502c:	33 db                	xor    %ebx,%ebx
40502e:	8b c7                	mov    %edi,%eax
405030:	8b d3                	mov    %ebx,%edx
405032:	e8 69 01 00 00       	call   0x4051a0
405037:	81 c4 04 10 00 00    	add    $0x1004,%esp
40503d:	5d                   	pop    %ebp
40503e:	5f                   	pop    %edi
40503f:	5e                   	pop    %esi
405040:	5b                   	pop    %ebx
405041:	c3                   	ret
405042:	8b c0                	mov    %eax,%eax
405044:	85 c9                	test   %ecx,%ecx
405046:	0f 84 08 ff ff ff    	je     0x404f54
40504c:	50                   	push   %eax
40504d:	51                   	push   %ecx
40504e:	52                   	push   %edx
40504f:	e8 f8 c2 ff ff       	call   0x40134c
405054:	85 c0                	test   %eax,%eax
405056:	0f 84 c8 fe ff ff    	je     0x404f24
40505c:	5a                   	pop    %edx
40505d:	ff 32                	push   (%edx)
40505f:	89 02                	mov    %eax,(%edx)
405061:	e8 f6 c2 ff ff       	call   0x40135c
405066:	c3                   	ret
405067:	90                   	nop
405068:	31 c9                	xor    %ecx,%ecx
40506a:	85 d2                	test   %edx,%edx
40506c:	74 2d                	je     0x40509b
40506e:	52                   	push   %edx
40506f:	66 3b 0a             	cmp    (%edx),%cx
405072:	74 20                	je     0x405094
405074:	66 3b 4a 02          	cmp    0x2(%edx),%cx
405078:	74 17                	je     0x405091
40507a:	66 3b 4a 04          	cmp    0x4(%edx),%cx
40507e:	74 0e                	je     0x40508e
405080:	66 3b 4a 06          	cmp    0x6(%edx),%cx
405084:	74 05                	je     0x40508b
405086:	83 c2 08             	add    $0x8,%edx
405089:	eb e4                	jmp    0x40506f
40508b:	83 c2 02             	add    $0x2,%edx
40508e:	83 c2 02             	add    $0x2,%edx
405091:	83 c2 02             	add    $0x2,%edx
405094:	89 d1                	mov    %edx,%ecx
405096:	5a                   	pop    %edx
405097:	29 d1                	sub    %edx,%ecx
405099:	d1 e9                	shr    $1,%ecx
40509b:	e9 a4 ff ff ff       	jmp    0x405044
4050a0:	c3                   	ret
4050a1:	8d 40 00             	lea    0x0(%eax),%eax
4050a4:	31 c9                	xor    %ecx,%ecx
4050a6:	85 d2                	test   %edx,%edx
4050a8:	74 03                	je     0x4050ad
4050aa:	8b 4a fc             	mov    -0x4(%edx),%ecx
4050ad:	e9 06 ff ff ff       	jmp    0x404fb8
4050b2:	c3                   	ret
4050b3:	90                   	nop
4050b4:	85 c0                	test   %eax,%eax
4050b6:	74 04                	je     0x4050bc
4050b8:	c3                   	ret
4050b9:	90                   	nop
4050ba:	00 00                	add    %al,(%eax)
4050bc:	b8 ba 50 40 00       	mov    $0x4050ba,%eax
4050c1:	c3                   	ret
4050c2:	8b c0                	mov    %eax,%eax
4050c4:	85 c0                	test   %eax,%eax
4050c6:	74 05                	je     0x4050cd
4050c8:	8b 40 fc             	mov    -0x4(%eax),%eax
4050cb:	d1 e8                	shr    $1,%eax
4050cd:	c3                   	ret
4050ce:	8b c0                	mov    %eax,%eax
4050d0:	53                   	push   %ebx
4050d1:	56                   	push   %esi
4050d2:	57                   	push   %edi
4050d3:	89 c6                	mov    %eax,%esi
4050d5:	89 d7                	mov    %edx,%edi
4050d7:	39 d0                	cmp    %edx,%eax
4050d9:	74 72                	je     0x40514d
4050db:	85 f6                	test   %esi,%esi
4050dd:	74 51                	je     0x405130
4050df:	85 ff                	test   %edi,%edi
4050e1:	74 54                	je     0x405137
4050e3:	8b 46 fc             	mov    -0x4(%esi),%eax
4050e6:	8b 57 fc             	mov    -0x4(%edi),%edx
4050e9:	29 d0                	sub    %edx,%eax
4050eb:	77 02                	ja     0x4050ef
4050ed:	01 c2                	add    %eax,%edx
4050ef:	52                   	push   %edx
4050f0:	c1 ea 02             	shr    $0x2,%edx
4050f3:	74 26                	je     0x40511b
4050f5:	8b 0e                	mov    (%esi),%ecx
4050f7:	8b 1f                	mov    (%edi),%ebx
4050f9:	39 d9                	cmp    %ebx,%ecx
4050fb:	75 41                	jne    0x40513e
4050fd:	4a                   	dec    %edx
4050fe:	74 15                	je     0x405115
405100:	8b 4e 04             	mov    0x4(%esi),%ecx
405103:	8b 5f 04             	mov    0x4(%edi),%ebx
405106:	39 d9                	cmp    %ebx,%ecx
405108:	75 34                	jne    0x40513e
40510a:	83 c6 08             	add    $0x8,%esi
40510d:	83 c7 08             	add    $0x8,%edi
405110:	4a                   	dec    %edx
405111:	75 e2                	jne    0x4050f5
405113:	eb 06                	jmp    0x40511b
405115:	83 c6 04             	add    $0x4,%esi
405118:	83 c7 04             	add    $0x4,%edi
40511b:	5a                   	pop    %edx
40511c:	83 e2 02             	and    $0x2,%edx
40511f:	74 0b                	je     0x40512c
405121:	66 8b 0e             	mov    (%esi),%cx
405124:	66 8b 1f             	mov    (%edi),%bx
405127:	66 39 d9             	cmp    %bx,%cx
40512a:	75 21                	jne    0x40514d
40512c:	01 c0                	add    %eax,%eax
40512e:	eb 1d                	jmp    0x40514d
405130:	8b 57 fc             	mov    -0x4(%edi),%edx
405133:	29 d0                	sub    %edx,%eax
405135:	eb 16                	jmp    0x40514d
405137:	8b 46 fc             	mov    -0x4(%esi),%eax
40513a:	29 d0                	sub    %edx,%eax
40513c:	eb 0f                	jmp    0x40514d
40513e:	5a                   	pop    %edx
40513f:	66 39 d9             	cmp    %bx,%cx
405142:	75 09                	jne    0x40514d
405144:	c1 e9 10             	shr    $0x10,%ecx
405147:	c1 eb 10             	shr    $0x10,%ebx
40514a:	66 39 d9             	cmp    %bx,%cx
40514d:	5f                   	pop    %edi
40514e:	5e                   	pop    %esi
40514f:	5b                   	pop    %ebx
405150:	c3                   	ret
405151:	8d 40 00             	lea    0x0(%eax),%eax
405154:	55                   	push   %ebp
405155:	8b ec                	mov    %esp,%ebp
405157:	53                   	push   %ebx
405158:	56                   	push   %esi
405159:	57                   	push   %edi
40515a:	8b f9                	mov    %ecx,%edi
40515c:	8b da                	mov    %edx,%ebx
40515e:	8b f0                	mov    %eax,%esi
405160:	8b c6                	mov    %esi,%eax
405162:	e8 5d ff ff ff       	call   0x4050c4
405167:	83 fb 01             	cmp    $0x1,%ebx
40516a:	7d 04                	jge    0x405170
40516c:	33 db                	xor    %ebx,%ebx
40516e:	eb 07                	jmp    0x405177
405170:	4b                   	dec    %ebx
405171:	3b c3                	cmp    %ebx,%eax
405173:	7d 02                	jge    0x405177
405175:	8b d8                	mov    %eax,%ebx
405177:	85 ff                	test   %edi,%edi
405179:	7d 04                	jge    0x40517f
40517b:	33 c0                	xor    %eax,%eax
40517d:	eb 08                	jmp    0x405187
40517f:	2b c3                	sub    %ebx,%eax
405181:	3b f8                	cmp    %eax,%edi
405183:	7d 02                	jge    0x405187
405185:	8b c7                	mov    %edi,%eax
405187:	8b d3                	mov    %ebx,%edx
405189:	03 d2                	add    %edx,%edx
40518b:	03 d6                	add    %esi,%edx
40518d:	8b 4d 08             	mov    0x8(%ebp),%ecx
405190:	91                   	xchg   %eax,%ecx
405191:	e8 ae fe ff ff       	call   0x405044
405196:	5f                   	pop    %edi
405197:	5e                   	pop    %esi
405198:	5b                   	pop    %ebx
405199:	5d                   	pop    %ebp
40519a:	c2 04 00             	ret    $0x4
40519d:	8d 40 00             	lea    0x0(%eax),%eax
4051a0:	53                   	push   %ebx
4051a1:	56                   	push   %esi
4051a2:	57                   	push   %edi
4051a3:	8b f2                	mov    %edx,%esi
4051a5:	8b f8                	mov    %eax,%edi
4051a7:	33 db                	xor    %ebx,%ebx
4051a9:	85 f6                	test   %esi,%esi
4051ab:	7e 27                	jle    0x4051d4
4051ad:	8b c6                	mov    %esi,%eax
4051af:	e8 78 fd ff ff       	call   0x404f2c
4051b4:	8b d8                	mov    %eax,%ebx
4051b6:	8b 07                	mov    (%edi),%eax
4051b8:	e8 07 ff ff ff       	call   0x4050c4
4051bd:	85 c0                	test   %eax,%eax
4051bf:	7e 13                	jle    0x4051d4
4051c1:	3b f0                	cmp    %eax,%esi
4051c3:	7d 02                	jge    0x4051c7
4051c5:	8b c6                	mov    %esi,%eax
4051c7:	8b c8                	mov    %eax,%ecx
4051c9:	03 c9                	add    %ecx,%ecx
4051cb:	8b d3                	mov    %ebx,%edx
4051cd:	8b 07                	mov    (%edi),%eax
4051cf:	e8 18 dd ff ff       	call   0x402eec
4051d4:	8b c7                	mov    %edi,%eax
4051d6:	8b d3                	mov    %ebx,%edx
4051d8:	e8 67 fd ff ff       	call   0x404f44
4051dd:	5f                   	pop    %edi
4051de:	5e                   	pop    %esi
4051df:	5b                   	pop    %ebx
4051e0:	c3                   	ret
4051e1:	8d 40 00             	lea    0x0(%eax),%eax
4051e4:	31 c9                	xor    %ecx,%ecx
4051e6:	53                   	push   %ebx
4051e7:	8a 4a 01             	mov    0x1(%edx),%cl
4051ea:	56                   	push   %esi
4051eb:	57                   	push   %edi
4051ec:	89 c3                	mov    %eax,%ebx
4051ee:	8d 74 11 0a          	lea    0xa(%ecx,%edx,1),%esi
4051f2:	8b 7c 11 06          	mov    0x6(%ecx,%edx,1),%edi
4051f6:	8b 16                	mov    (%esi),%edx
4051f8:	8b 46 04             	mov    0x4(%esi),%eax
4051fb:	01 d8                	add    %ebx,%eax
4051fd:	8b 12                	mov    (%edx),%edx
4051ff:	b9 01 00 00 00       	mov    $0x1,%ecx
405204:	e8 0b 00 00 00       	call   0x405214
405209:	83 c6 08             	add    $0x8,%esi
40520c:	4f                   	dec    %edi
40520d:	7f e7                	jg     0x4051f6
40520f:	5f                   	pop    %edi
405210:	5e                   	pop    %esi
405211:	5b                   	pop    %ebx
405212:	c3                   	ret
405213:	90                   	nop
405214:	85 c9                	test   %ecx,%ecx
405216:	0f 84 8a 00 00 00    	je     0x4052a6
40521c:	53                   	push   %ebx
40521d:	56                   	push   %esi
40521e:	57                   	push   %edi
40521f:	89 c3                	mov    %eax,%ebx
405221:	89 d6                	mov    %edx,%esi
405223:	89 cf                	mov    %ecx,%edi
405225:	31 d2                	xor    %edx,%edx
405227:	8a 06                	mov    (%esi),%al
405229:	8a 56 01             	mov    0x1(%esi),%dl
40522c:	31 c9                	xor    %ecx,%ecx
40522e:	3c 0a                	cmp    $0xa,%al
405230:	74 22                	je     0x405254
405232:	3c 0b                	cmp    $0xb,%al
405234:	74 1e                	je     0x405254
405236:	3c 0c                	cmp    $0xc,%al
405238:	74 24                	je     0x40525e
40523a:	3c 0d                	cmp    $0xd,%al
40523c:	74 33                	je     0x405271
40523e:	3c 0e                	cmp    $0xe,%al
405240:	74 4d                	je     0x40528f
405242:	3c 0f                	cmp    $0xf,%al
405244:	74 0e                	je     0x405254
405246:	3c 11                	cmp    $0x11,%al
405248:	74 0a                	je     0x405254
40524a:	b0 02                	mov    $0x2,%al
40524c:	5f                   	pop    %edi
40524d:	5e                   	pop    %esi
40524e:	5b                   	pop    %ebx
40524f:	e9 f8 db ff ff       	jmp    0x402e4c
405254:	89 0b                	mov    %ecx,(%ebx)
405256:	83 c3 04             	add    $0x4,%ebx
405259:	4f                   	dec    %edi
40525a:	7f f8                	jg     0x405254
40525c:	eb 45                	jmp    0x4052a3
40525e:	89 0b                	mov    %ecx,(%ebx)
405260:	89 4b 04             	mov    %ecx,0x4(%ebx)