4050d2:	83 c2 08             	add    $0x8,%edx
4050d5:	eb e4                	jmp    0x4050bb
4050d7:	83 c2 02             	add    $0x2,%edx
4050da:	83 c2 02             	add    $0x2,%edx
4050dd:	83 c2 02             	add    $0x2,%edx
4050e0:	89 d1                	mov    %edx,%ecx
4050e2:	5a                   	pop    %edx
4050e3:	29 d1                	sub    %edx,%ecx
4050e5:	d1 e9                	shr    $1,%ecx
4050e7:	e9 94 ff ff ff       	jmp    0x405080
4050ec:	c3                   	ret
4050ed:	8d 40 00             	lea    0x0(%eax),%eax
4050f0:	31 c9                	xor    %ecx,%ecx
4050f2:	85 d2                	test   %edx,%edx
4050f4:	74 03                	je     0x4050f9
4050f6:	8b 4a fc             	mov    -0x4(%edx),%ecx
4050f9:	e9 f6 fe ff ff       	jmp    0x404ff4
4050fe:	c3                   	ret
4050ff:	90                   	nop
405100:	85 c0                	test   %eax,%eax
405102:	74 04                	je     0x405108
405104:	c3                   	ret
405105:	90                   	nop
405106:	00 00                	add    %al,(%eax)
405108:	b8 06 51 40 00       	mov    $0x405106,%eax
40510d:	c3                   	ret
40510e:	8b c0                	mov    %eax,%eax
405110:	85 c0                	test   %eax,%eax
405112:	74 05                	je     0x405119
405114:	8b 40 fc             	mov    -0x4(%eax),%eax
405117:	d1 e8                	shr    $1,%eax
405119:	c3                   	ret
40511a:	8b c0                	mov    %eax,%eax
40511c:	53                   	push   %ebx
40511d:	56                   	push   %esi
40511e:	57                   	push   %edi
40511f:	55                   	push   %ebp
405120:	51                   	push   %ecx
405121:	8b ea                	mov    %edx,%ebp
405123:	89 04 24             	mov    %eax,(%esp)
405126:	8b c5                	mov    %ebp,%eax
405128:	e8 e3 ff ff ff       	call   0x405110
40512d:	8b d8                	mov    %eax,%ebx
40512f:	85 db                	test   %ebx,%ebx
405131:	74 42                	je     0x405175
405133:	8b 04 24             	mov    (%esp),%eax
405136:	8b 00                	mov    (%eax),%eax
405138:	e8 d3 ff ff ff       	call   0x405110
40513d:	8b f0                	mov    %eax,%esi
40513f:	8d 04 33             	lea    (%ebx,%esi,1),%eax
405142:	e8 1d fe ff ff       	call   0x404f64
405147:	8b f8                	mov    %eax,%edi
405149:	85 f6                	test   %esi,%esi
40514b:	7e 10                	jle    0x40515d
40514d:	8b ce                	mov    %esi,%ecx
40514f:	03 c9                	add    %ecx,%ecx
405151:	8b d7                	mov    %edi,%edx
405153:	8b 04 24             	mov    (%esp),%eax
405156:	8b 00                	mov    (%eax),%eax
405158:	e8 c3 d8 ff ff       	call   0x402a20
40515d:	8b cb                	mov    %ebx,%ecx
40515f:	03 c9                	add    %ecx,%ecx
405161:	8d 14 77             	lea    (%edi,%esi,2),%edx
405164:	8b c5                	mov    %ebp,%eax
405166:	e8 b5 d8 ff ff       	call   0x402a20
40516b:	8b 04 24             	mov    (%esp),%eax
40516e:	8b d7                	mov    %edi,%edx
405170:	e8 07 fe ff ff       	call   0x404f7c
405175:	5a                   	pop    %edx
405176:	5d                   	pop    %ebp
405177:	5f                   	pop    %edi
405178:	5e                   	pop    %esi
405179:	5b                   	pop    %ebx
40517a:	c3                   	ret
40517b:	90                   	nop
40517c:	53                   	push   %ebx
40517d:	56                   	push   %esi
40517e:	57                   	push   %edi
40517f:	55                   	push   %ebp
405180:	83 c4 f8             	add    $0xfffffff8,%esp
405183:	89 4c 24 04          	mov    %ecx,0x4(%esp)
405187:	8b ea                	mov    %edx,%ebp
405189:	89 04 24             	mov    %eax,(%esp)
40518c:	8b c5                	mov    %ebp,%eax
40518e:	e8 7d ff ff ff       	call   0x405110
405193:	8b d8                	mov    %eax,%ebx
405195:	8b 44 24 04          	mov    0x4(%esp),%eax
405199:	e8 72 ff ff ff       	call   0x405110
40519e:	8b f0                	mov    %eax,%esi
4051a0:	85 db                	test   %ebx,%ebx
4051a2:	75 04                	jne    0x4051a8
4051a4:	85 f6                	test   %esi,%esi
4051a6:	74 31                	je     0x4051d9
4051a8:	8d 04 1e             	lea    (%esi,%ebx,1),%eax
4051ab:	e8 b4 fd ff ff       	call   0x404f64
4051b0:	8b f8                	mov    %eax,%edi
4051b2:	8b cb                	mov    %ebx,%ecx
4051b4:	03 c9                	add    %ecx,%ecx
4051b6:	8b d7                	mov    %edi,%edx
4051b8:	8b c5                	mov    %ebp,%eax
4051ba:	e8 61 d8 ff ff       	call   0x402a20
4051bf:	8b ce                	mov    %esi,%ecx
4051c1:	03 c9                	add    %ecx,%ecx
4051c3:	8d 14 5f             	lea    (%edi,%ebx,2),%edx
4051c6:	8b 44 24 04          	mov    0x4(%esp),%eax
4051ca:	e8 51 d8 ff ff       	call   0x402a20
4051cf:	8b 04 24             	mov    (%esp),%eax
4051d2:	8b d7                	mov    %edi,%edx
4051d4:	e8 a3 fd ff ff       	call   0x404f7c
4051d9:	59                   	pop    %ecx
4051da:	5a                   	pop    %edx
4051db:	5d                   	pop    %ebp
4051dc:	5f                   	pop    %edi
4051dd:	5e                   	pop    %esi
4051de:	5b                   	pop    %ebx
4051df:	c3                   	ret
4051e0:	53                   	push   %ebx
4051e1:	56                   	push   %esi
4051e2:	52                   	push   %edx
4051e3:	50                   	push   %eax
4051e4:	89 d3                	mov    %edx,%ebx
4051e6:	31 c0                	xor    %eax,%eax
4051e8:	8b 4c 94 10          	mov    0x10(%esp,%edx,4),%ecx
4051ec:	85 c9                	test   %ecx,%ecx
4051ee:	74 03                	je     0x4051f3
4051f0:	03 41 fc             	add    -0x4(%ecx),%eax
4051f3:	4a                   	dec    %edx
4051f4:	75 f2                	jne    0x4051e8
4051f6:	d1 e8                	shr    $1,%eax
4051f8:	e8 67 fd ff ff       	call   0x404f64
4051fd:	50                   	push   %eax
4051fe:	89 c6                	mov    %eax,%esi
405200:	8b 44 9c 14          	mov    0x14(%esp,%ebx,4),%eax
405204:	89 f2                	mov    %esi,%edx
405206:	85 c0                	test   %eax,%eax
405208:	74 0a                	je     0x405214
40520a:	8b 48 fc             	mov    -0x4(%eax),%ecx
40520d:	01 ce                	add    %ecx,%esi
40520f:	e8 0c d8 ff ff       	call   0x402a20
405214:	4b                   	dec    %ebx
405215:	75 e9                	jne    0x405200
405217:	5a                   	pop    %edx
405218:	58                   	pop    %eax
405219:	e8 5e fd ff ff       	call   0x404f7c
40521e:	5a                   	pop    %edx
40521f:	5e                   	pop    %esi
405220:	5b                   	pop    %ebx
405221:	58                   	pop    %eax
405222:	8d 24 94             	lea    (%esp,%edx,4),%esp
405225:	ff e0                	jmp    *%eax
405227:	c3                   	ret
405228:	53                   	push   %ebx
405229:	56                   	push   %esi
40522a:	57                   	push   %edi
40522b:	89 c6                	mov    %eax,%esi
40522d:	89 d7                	mov    %edx,%edi
40522f:	39 d0                	cmp    %edx,%eax
405231:	74 72                	je     0x4052a5
405233:	85 f6                	test   %esi,%esi
405235:	74 51                	je     0x405288
405237:	85 ff                	test   %edi,%edi
405239:	74 54                	je     0x40528f
40523b:	8b 46 fc             	mov    -0x4(%esi),%eax
40523e:	8b 57 fc             	mov    -0x4(%edi),%edx
405241:	29 d0                	sub    %edx,%eax
405243:	77 02                	ja     0x405247
405245:	01 c2                	add    %eax,%edx
405247:	52                   	push   %edx
405248:	c1 ea 02             	shr    $0x2,%edx
40524b:	74 26                	je     0x405273
40524d:	8b 0e                	mov    (%esi),%ecx
40524f:	8b 1f                	mov    (%edi),%ebx
405251:	39 d9                	cmp    %ebx,%ecx
405253:	75 41                	jne    0x405296
405255:	4a                   	dec    %edx
405256:	74 15                	je     0x40526d
405258:	8b 4e 04             	mov    0x4(%esi),%ecx
40525b:	8b 5f 04             	mov    0x4(%edi),%ebx
40525e:	39 d9                	cmp    %ebx,%ecx
405260:	75 34                	jne    0x405296
405262:	83 c6 08             	add    $0x8,%esi
405265:	83 c7 08             	add    $0x8,%edi
405268:	4a                   	dec    %edx
405269:	75 e2                	jne    0x40524d
40526b:	eb 06                	jmp    0x405273
40526d:	83 c6 04             	add    $0x4,%esi
405270:	83 c7 04             	add    $0x4,%edi
405273:	5a                   	pop    %edx
405274:	83 e2 02             	and    $0x2,%edx
405277:	74 0b                	je     0x405284
405279:	66 8b 0e             	mov    (%esi),%cx
40527c:	66 8b 1f             	mov    (%edi),%bx
40527f:	66 39 d9             	cmp    %bx,%cx
405282:	75 21                	jne    0x4052a5
405284:	01 c0                	add    %eax,%eax
405286:	eb 1d                	jmp    0x4052a5
405288:	8b 57 fc             	mov    -0x4(%edi),%edx
40528b:	29 d0                	sub    %edx,%eax
40528d:	eb 16                	jmp    0x4052a5
40528f:	8b 46 fc             	mov    -0x4(%esi),%eax
405292:	29 d0                	sub    %edx,%eax
405294:	eb 0f                	jmp    0x4052a5
405296:	5a                   	pop    %edx
405297:	66 39 d9             	cmp    %bx,%cx
40529a:	75 09                	jne    0x4052a5
40529c:	c1 e9 10             	shr    $0x10,%ecx
40529f:	c1 eb 10             	shr    $0x10,%ebx
4052a2:	66 39 d9             	cmp    %bx,%cx
4052a5:	5f                   	pop    %edi
4052a6:	5e                   	pop    %esi
4052a7:	5b                   	pop    %ebx
4052a8:	c3                   	ret
4052a9:	8d 40 00             	lea    0x0(%eax),%eax
4052ac:	55                   	push   %ebp
4052ad:	8b ec                	mov    %esp,%ebp
4052af:	53                   	push   %ebx
4052b0:	56                   	push   %esi
4052b1:	57                   	push   %edi
4052b2:	8b f9                	mov    %ecx,%edi
4052b4:	8b da                	mov    %edx,%ebx
4052b6:	8b f0                	mov    %eax,%esi
4052b8:	8b c6                	mov    %esi,%eax
4052ba:	e8 51 fe ff ff       	call   0x405110
4052bf:	83 fb 01             	cmp    $0x1,%ebx
4052c2:	7d 04                	jge    0x4052c8
4052c4:	33 db                	xor    %ebx,%ebx
4052c6:	eb 07                	jmp    0x4052cf
4052c8:	4b                   	dec    %ebx
4052c9:	3b c3                	cmp    %ebx,%eax
4052cb:	7d 02                	jge    0x4052cf
4052cd:	8b d8                	mov    %eax,%ebx
4052cf:	85 ff                	test   %edi,%edi
4052d1:	7d 04                	jge    0x4052d7
4052d3:	33 c0                	xor    %eax,%eax
4052d5:	eb 08                	jmp    0x4052df
4052d7:	2b c3                	sub    %ebx,%eax
4052d9:	3b f8                	cmp    %eax,%edi
4052db:	7d 02                	jge    0x4052df
4052dd:	8b c7                	mov    %edi,%eax
4052df:	8b d3                	mov    %ebx,%edx
4052e1:	03 d2                	add    %edx,%edx
4052e3:	03 d6                	add    %esi,%edx
4052e5:	8b 4d 08             	mov    0x8(%ebp),%ecx
4052e8:	91                   	xchg   %eax,%ecx
4052e9:	e8 92 fd ff ff       	call   0x405080
4052ee:	5f                   	pop    %edi
4052ef:	5e                   	pop    %esi
4052f0:	5b                   	pop    %ebx
4052f1:	5d                   	pop    %ebp
4052f2:	c2 04 00             	ret    $0x4
4052f5:	8d 40 00             	lea    0x0(%eax),%eax
4052f8:	53                   	push   %ebx
4052f9:	56                   	push   %esi
4052fa:	57                   	push   %edi
4052fb:	8b f2                	mov    %edx,%esi
4052fd:	8b f8                	mov    %eax,%edi
4052ff:	33 db                	xor    %ebx,%ebx
405301:	85 f6                	test   %esi,%esi
405303:	7e 27                	jle    0x40532c
405305:	8b c6                	mov    %esi,%eax
405307:	e8 58 fc ff ff       	call   0x404f64
40530c:	8b d8                	mov    %eax,%ebx
40530e:	8b 07                	mov    (%edi),%eax
405310:	e8 fb fd ff ff       	call   0x405110
405315:	85 c0                	test   %eax,%eax
405317:	7e 13                	jle    0x40532c
405319:	3b f0                	cmp    %eax,%esi
40531b:	7d 02                	jge    0x40531f
40531d:	8b c6                	mov    %esi,%eax
40531f:	8b c8                	mov    %eax,%ecx
405321:	03 c9                	add    %ecx,%ecx
405323:	8b d3                	mov    %ebx,%edx
405325:	8b 07                	mov    (%edi),%eax
405327:	e8 f4 d6 ff ff       	call   0x402a20
40532c:	8b c7                	mov    %edi,%eax
40532e:	8b d3                	mov    %ebx,%edx
405330:	e8 47 fc ff ff       	call   0x404f7c
405335:	5f                   	pop    %edi
405336:	5e                   	pop    %esi
405337:	5b                   	pop    %ebx
405338:	c3                   	ret
405339:	8d 40 00             	lea    0x0(%eax),%eax
40533c:	8b 10                	mov    (%eax),%edx
40533e:	85 d2                	test   %edx,%edx
405340:	74 18                	je     0x40535a
405342:	50                   	push   %eax
405343:	8b 4a fc             	mov    -0x4(%edx),%ecx
405346:	d1 e9                	shr    $1,%ecx
405348:	51                   	push   %ecx
405349:	52                   	push   %edx
40534a:	e8 89 c0 ff ff       	call   0x4013d8
40534f:	5a                   	pop    %edx
405350:	85 c0                	test   %eax,%eax
405352:	0f 84 04 fc ff ff    	je     0x404f5c
405358:	89 02                	mov    %eax,(%edx)
40535a:	c3                   	ret
40535b:	90                   	nop
40535c:	31 c9                	xor    %ecx,%ecx
40535e:	53                   	push   %ebx
40535f:	8a 4a 01             	mov    0x1(%edx),%cl
405362:	56                   	push   %esi
405363:	57                   	push   %edi
405364:	89 c3                	mov    %eax,%ebx
405366:	8d 74 11 0a          	lea    0xa(%ecx,%edx,1),%esi
40536a:	8b 7c 11 06          	mov    0x6(%ecx,%edx,1),%edi
40536e:	8b 16                	mov    (%esi),%edx
405370:	8b 46 04             	mov    0x4(%esi),%eax
405373:	01 d8                	add    %ebx,%eax
405375:	8b 12                	mov    (%edx),%edx
405377:	b9 01 00 00 00       	mov    $0x1,%ecx
40537c:	e8 0b 00 00 00       	call   0x40538c
405381:	83 c6 08             	add    $0x8,%esi
405384:	4f                   	dec    %edi
405385:	7f e7                	jg     0x40536e
405387:	5f                   	pop    %edi
405388:	5e                   	pop    %esi
405389:	5b                   	pop    %ebx
40538a:	c3                   	ret
40538b:	90                   	nop
40538c:	85 c9                	test   %ecx,%ecx
40538e:	0f 84 8a 00 00 00    	je     0x40541e
405394:	53                   	push   %ebx
405395:	56                   	push   %esi
405396:	57                   	push   %edi
405397:	89 c3                	mov    %eax,%ebx
405399:	89 d6                	mov    %edx,%esi
40539b:	89 cf                	mov    %ecx,%edi
40539d:	31 d2                	xor    %edx,%edx
40539f:	8a 06                	mov    (%esi),%al
4053a1:	8a 56 01             	mov    0x1(%esi),%dl
4053a4:	31 c9                	xor    %ecx,%ecx
4053a6:	3c 0a                	cmp    $0xa,%al
4053a8:	74 22                	je     0x4053cc
4053aa:	3c 0b                	cmp    $0xb,%al
4053ac:	74 1e                	je     0x4053cc
4053ae:	3c 0c                	cmp    $0xc,%al
4053b0:	74 24                	je     0x4053d6
4053b2:	3c 0d                	cmp    $0xd,%al
4053b4:	74 33                	je     0x4053e9
4053b6:	3c 0e                	cmp    $0xe,%al
4053b8:	74 4d                	je     0x405407
4053ba:	3c 0f                	cmp    $0xf,%al
4053bc:	74 0e                	je     0x4053cc
4053be:	3c 11                	cmp    $0x11,%al
4053c0:	74 0a                	je     0x4053cc
4053c2:	b0 02                	mov    $0x2,%al
4053c4:	5f                   	pop    %edi
4053c5:	5e                   	pop    %esi
4053c6:	5b                   	pop    %ebx
4053c7:	e9 3c d5 ff ff       	jmp    0x402908