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)
405263:	89 4b 08             	mov    %ecx,0x8(%ebx)
405266:	89 4b 0c             	mov    %ecx,0xc(%ebx)
405269:	83 c3 10             	add    $0x10,%ebx
40526c:	4f                   	dec    %edi
40526d:	7f ef                	jg     0x40525e
40526f:	eb 32                	jmp    0x4052a3
405271:	55                   	push   %ebp
405272:	89 d5                	mov    %edx,%ebp
405274:	8b 54 2e 0a          	mov    0xa(%esi,%ebp,1),%edx
405278:	89 d8                	mov    %ebx,%eax
40527a:	03 5c 2e 02          	add    0x2(%esi,%ebp,1),%ebx
40527e:	8b 4c 2e 06          	mov    0x6(%esi,%ebp,1),%ecx
405282:	8b 12                	mov    (%edx),%edx
405284:	e8 8b ff ff ff       	call   0x405214
405289:	4f                   	dec    %edi
40528a:	7f e8                	jg     0x405274
40528c:	5d                   	pop    %ebp
40528d:	eb 14                	jmp    0x4052a3
40528f:	55                   	push   %ebp
405290:	89 d5                	mov    %edx,%ebp
405292:	89 d8                	mov    %ebx,%eax
405294:	03 5c 2e 02          	add    0x2(%esi,%ebp,1),%ebx
405298:	89 f2                	mov    %esi,%edx
40529a:	e8 45 ff ff ff       	call   0x4051e4
40529f:	4f                   	dec    %edi
4052a0:	7f f0                	jg     0x405292
4052a2:	5d                   	pop    %ebp
4052a3:	5f                   	pop    %edi
4052a4:	5e                   	pop    %esi
4052a5:	5b                   	pop    %ebx
4052a6:	c3                   	ret
4052a7:	90                   	nop
4052a8:	b9 01 00 00 00       	mov    $0x1,%ecx
4052ad:	e9 62 ff ff ff       	jmp    0x405214
4052b2:	c3                   	ret
4052b3:	90                   	nop
4052b4:	31 c9                	xor    %ecx,%ecx
4052b6:	53                   	push   %ebx
4052b7:	8a 4a 01             	mov    0x1(%edx),%cl
4052ba:	56                   	push   %esi
4052bb:	57                   	push   %edi
4052bc:	89 c3                	mov    %eax,%ebx
4052be:	8d 74 11 0a          	lea    0xa(%ecx,%edx,1),%esi
4052c2:	8b 7c 11 06          	mov    0x6(%ecx,%edx,1),%edi
4052c6:	8b 16                	mov    (%esi),%edx
4052c8:	8b 46 04             	mov    0x4(%esi),%eax
4052cb:	01 d8                	add    %ebx,%eax
4052cd:	8b 12                	mov    (%edx),%edx
4052cf:	b9 01 00 00 00       	mov    $0x1,%ecx
4052d4:	e8 27 00 00 00       	call   0x405300
4052d9:	83 c6 08             	add    $0x8,%esi
4052dc:	4f                   	dec    %edi
4052dd:	7f e7                	jg     0x4052c6
4052df:	89 d8                	mov    %ebx,%eax
4052e1:	5f                   	pop    %edi
4052e2:	5e                   	pop    %esi
4052e3:	5b                   	pop    %ebx
4052e4:	c3                   	ret
4052e5:	8d 40 00             	lea    0x0(%eax),%eax
4052e8:	83 3d 0c b0 49 00 00 	cmpl   $0x0,0x49b00c
4052ef:	74 07                	je     0x4052f8
4052f1:	ff 15 0c b0 49 00    	call   *0x49b00c
4052f7:	c3                   	ret
4052f8:	b0 10                	mov    $0x10,%al
4052fa:	e8 4d db ff ff       	call   0x402e4c
4052ff:	c3                   	ret
405300:	83 f9 00             	cmp    $0x0,%ecx
405303:	0f 84 e0 00 00 00    	je     0x4053e9
405309:	50                   	push   %eax
40530a:	53                   	push   %ebx
40530b:	56                   	push   %esi
40530c:	57                   	push   %edi
40530d:	89 c3                	mov    %eax,%ebx
40530f:	89 d6                	mov    %edx,%esi
405311:	89 cf                	mov    %ecx,%edi
405313:	31 d2                	xor    %edx,%edx
405315:	8a 06                	mov    (%esi),%al
405317:	8a 56 01             	mov    0x1(%esi),%dl
40531a:	3c 0a                	cmp    $0xa,%al
40531c:	74 25                	je     0x405343
40531e:	3c 0b                	cmp    $0xb,%al
405320:	74 3e                	je     0x405360
405322:	3c 0c                	cmp    $0xc,%al
405324:	74 51                	je     0x405377
405326:	3c 0d                	cmp    $0xd,%al
405328:	74 5c                	je     0x405386
40532a:	3c 0e                	cmp    $0xe,%al
40532c:	74 76                	je     0x4053a4
40532e:	3c 0f                	cmp    $0xf,%al
405330:	0f 84 84 00 00 00    	je     0x4053ba
405336:	3c 11                	cmp    $0x11,%al
405338:	0f 84 8b 00 00 00    	je     0x4053c9
40533e:	e9 97 00 00 00       	jmp    0x4053da
405343:	83 f9 01             	cmp    $0x1,%ecx
405346:	89 d8                	mov    %ebx,%eax
405348:	7f 0a                	jg     0x405354
40534a:	e8 f9 f3 ff ff       	call   0x404748
40534f:	e9 91 00 00 00       	jmp    0x4053e5
405354:	89 ca                	mov    %ecx,%edx
405356:	e8 11 f4 ff ff       	call   0x40476c
40535b:	e9 85 00 00 00       	jmp    0x4053e5
405360:	83 f9 01             	cmp    $0x1,%ecx
405363:	89 d8                	mov    %ebx,%eax
405365:	7f 07                	jg     0x40536e
405367:	e8 e8 fb ff ff       	call   0x404f54
40536c:	eb 77                	jmp    0x4053e5
40536e:	89 ca                	mov    %ecx,%edx
405370:	e8 f7 fb ff ff       	call   0x404f6c
405375:	eb 6e                	jmp    0x4053e5
405377:	89 d8                	mov    %ebx,%eax
405379:	83 c3 10             	add    $0x10,%ebx
40537c:	e8 67 ff ff ff       	call   0x4052e8
405381:	4f                   	dec    %edi
405382:	7f f3                	jg     0x405377
405384:	eb 5f                	jmp    0x4053e5
405386:	55                   	push   %ebp
405387:	89 d5                	mov    %edx,%ebp
405389:	8b 54 2e 0a          	mov    0xa(%esi,%ebp,1),%edx
40538d:	89 d8                	mov    %ebx,%eax
40538f:	03 5c 2e 02          	add    0x2(%esi,%ebp,1),%ebx
405393:	8b 4c 2e 06          	mov    0x6(%esi,%ebp,1),%ecx
405397:	8b 12                	mov    (%edx),%edx
405399:	e8 62 ff ff ff       	call   0x405300
40539e:	4f                   	dec    %edi
40539f:	7f e8                	jg     0x405389
4053a1:	5d                   	pop    %ebp
4053a2:	eb 41                	jmp    0x4053e5
4053a4:	55                   	push   %ebp
4053a5:	89 d5                	mov    %edx,%ebp
4053a7:	89 d8                	mov    %ebx,%eax
4053a9:	03 5c 2e 02          	add    0x2(%esi,%ebp,1),%ebx
4053ad:	89 f2                	mov    %esi,%edx
4053af:	e8 00 ff ff ff       	call   0x4052b4
4053b4:	4f                   	dec    %edi
4053b5:	7f f0                	jg     0x4053a7
4053b7:	5d                   	pop    %ebp
4053b8:	eb 2b                	jmp    0x4053e5
4053ba:	89 d8                	mov    %ebx,%eax
4053bc:	83 c3 04             	add    $0x4,%ebx
4053bf:	e8 b4 0d 00 00       	call   0x406178
4053c4:	4f                   	dec    %edi
4053c5:	7f f3                	jg     0x4053ba
4053c7:	eb 1c                	jmp    0x4053e5
4053c9:	89 d8                	mov    %ebx,%eax
4053cb:	89 f2                	mov    %esi,%edx
4053cd:	83 c3 04             	add    $0x4,%ebx
4053d0:	e8 cb 06 00 00       	call   0x405aa0
4053d5:	4f                   	dec    %edi
4053d6:	7f f1                	jg     0x4053c9
4053d8:	eb 0b                	jmp    0x4053e5
4053da:	5f                   	pop    %edi
4053db:	5e                   	pop    %esi
4053dc:	5b                   	pop    %ebx
4053dd:	58                   	pop    %eax
4053de:	b0 02                	mov    $0x2,%al
4053e0:	e9 67 da ff ff       	jmp    0x402e4c
4053e5:	5f                   	pop    %edi
4053e6:	5e                   	pop    %esi
4053e7:	5b                   	pop    %ebx
4053e8:	58                   	pop    %eax
4053e9:	c3                   	ret
4053ea:	8b c0                	mov    %eax,%eax
4053ec:	b9 01 00 00 00       	mov    $0x1,%ecx
4053f1:	e9 0a ff ff ff       	jmp    0x405300
4053f6:	c3                   	ret
4053f7:	90                   	nop
4053f8:	83 3d 14 b0 49 00 00 	cmpl   $0x0,0x49b014
4053ff:	74 07                	je     0x405408
405401:	ff 15 14 b0 49 00    	call   *0x49b014
405407:	c3                   	ret
405408:	b0 10                	mov    $0x10,%al
40540a:	e8 3d da ff ff       	call   0x402e4c
40540f:	c3                   	ret
405410:	53                   	push   %ebx
405411:	56                   	push   %esi