40266a:	e8 55 34 00 00       	call   0x405ac4
40266f:	8d 85 88 fe ff ff    	lea    -0x178(%ebp),%eax
402675:	50                   	push   %eax
402676:	56                   	push   %esi
402677:	e9 35 01 00 00       	jmp    0x4027b1
40267c:	6a f0                	push   $0xfffffff0
40267e:	c7 45 f8 66 fd ff ff 	movl   $0xfffffd66,-0x8(%ebp)
402685:	e8 6c 03 00 00       	call   0x4029f6
40268a:	8b f0                	mov    %eax,%esi
40268c:	56                   	push   %esi
40268d:	89 75 bc             	mov    %esi,-0x44(%ebp)
402690:	e8 31 30 00 00       	call   0x4056c6
402695:	85 c0                	test   %eax,%eax
402697:	75 07                	jne    0x4026a0
402699:	6a ed                	push   $0xffffffed
40269b:	e8 56 03 00 00       	call   0x4029f6
4026a0:	56                   	push   %esi
4026a1:	e8 78 31 00 00       	call   0x40581e
4026a6:	6a 02                	push   $0x2
4026a8:	68 00 00 00 40       	push   $0x40000000
4026ad:	56                   	push   %esi
4026ae:	e8 8a 31 00 00       	call   0x40583d
4026b3:	83 f8 ff             	cmp    $0xffffffff,%eax
4026b6:	89 45 08             	mov    %eax,0x8(%ebp)
4026b9:	0f 84 9d 00 00 00    	je     0x40275c
4026bf:	a1 b4 3e 42 00       	mov    0x423eb4,%eax
4026c4:	8b 35 00 71 40 00    	mov    0x407100,%esi
4026ca:	50                   	push   %eax
4026cb:	6a 40                	push   $0x40
4026cd:	89 45 d4             	mov    %eax,-0x2c(%ebp)
4026d0:	ff d6                	call   *%esi
4026d2:	8b f8                	mov    %eax,%edi
4026d4:	3b fb                	cmp    %ebx,%edi
4026d6:	74 7b                	je     0x402753
4026d8:	53                   	push   %ebx
4026d9:	e8 13 0b 00 00       	call   0x4031f1
4026de:	ff 75 d4             	push   -0x2c(%ebp)
4026e1:	57                   	push   %edi
4026e2:	e8 d8 0a 00 00       	call   0x4031bf
4026e7:	ff 75 e4             	push   -0x1c(%ebp)
4026ea:	6a 40                	push   $0x40
4026ec:	ff d6                	call   *%esi
4026ee:	8b f0                	mov    %eax,%esi
4026f0:	3b f3                	cmp    %ebx,%esi
4026f2:	89 75 d0             	mov    %esi,-0x30(%ebp)
4026f5:	74 34                	je     0x40272b
4026f7:	ff 75 e4             	push   -0x1c(%ebp)
4026fa:	56                   	push   %esi
4026fb:	53                   	push   %ebx
4026fc:	ff 75 e0             	push   -0x20(%ebp)
4026ff:	e8 14 08 00 00       	call   0x402f18
402704:	eb 18                	jmp    0x40271e
402706:	8b 0e                	mov    (%esi),%ecx
402708:	8b 46 04             	mov    0x4(%esi),%eax
40270b:	83 c6 08             	add    $0x8,%esi
40270e:	51                   	push   %ecx
40270f:	03 c7                	add    %edi,%eax
402711:	56                   	push   %esi
402712:	50                   	push   %eax
402713:	89 4d c8             	mov    %ecx,-0x38(%ebp)
402716:	e8 e3 30 00 00       	call   0x4057fe
40271b:	03 75 c8             	add    -0x38(%ebp),%esi
40271e:	38 1e                	cmp    %bl,(%esi)
402720:	75 e4                	jne    0x402706
402722:	ff 75 d0             	push   -0x30(%ebp)
402725:	ff 15 fc 70 40 00    	call   *0x4070fc
40272b:	8d 45 f8             	lea    -0x8(%ebp),%eax
40272e:	53                   	push   %ebx
40272f:	50                   	push   %eax
402730:	ff 75 d4             	push   -0x2c(%ebp)
402733:	57                   	push   %edi
402734:	ff 75 08             	push   0x8(%ebp)
402737:	ff 15 28 71 40 00    	call   *0x407128
40273d:	57                   	push   %edi
40273e:	ff 15 fc 70 40 00    	call   *0x4070fc
402744:	53                   	push   %ebx
402745:	53                   	push   %ebx
402746:	ff 75 08             	push   0x8(%ebp)
402749:	6a ff                	push   $0xffffffff
40274b:	e8 c8 07 00 00       	call   0x402f18
402750:	89 45 f8             	mov    %eax,-0x8(%ebp)
402753:	ff 75 08             	push   0x8(%ebp)
402756:	ff 15 ec 70 40 00    	call   *0x4070ec
40275c:	39 5d f8             	cmp    %ebx,-0x8(%ebp)
40275f:	6a f3                	push   $0xfffffff3
402761:	5e                   	pop    %esi
402762:	7d 13                	jge    0x402777
402764:	6a ef                	push   $0xffffffef
402766:	5e                   	pop    %esi
402767:	ff 75 bc             	push   -0x44(%ebp)
40276a:	ff 15 44 71 40 00    	call   *0x407144
402770:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
402777:	56                   	push   %esi
402778:	e9 e7 f9 ff ff       	jmp    0x402164
40277d:	53                   	push   %ebx
40277e:	e8 56 02 00 00       	call   0x4029d9
402783:	3b 05 cc 3e 42 00    	cmp    0x423ecc,%eax
402789:	89 45 08             	mov    %eax,0x8(%ebp)
40278c:	0f 83 ca fe ff ff    	jae    0x40265c
402792:	8b f0                	mov    %eax,%esi
402794:	8b 45 e4             	mov    -0x1c(%ebp),%eax
402797:	69 f6 18 04 00 00    	imul   $0x418,%esi,%esi
40279d:	03 35 c8 3e 42 00    	add    0x423ec8,%esi
4027a3:	3b c3                	cmp    %ebx,%eax
4027a5:	7c 17                	jl     0x4027be
4027a7:	8b 0c 86             	mov    (%esi,%eax,4),%ecx
4027aa:	75 0f                	jne    0x4027bb
4027ac:	83 c6 18             	add    $0x18,%esi
4027af:	56                   	push   %esi
4027b0:	57                   	push   %edi
4027b1:	e8 b0 33 00 00       	call   0x405b66
4027b6:	e9 d0 00 00 00       	jmp    0x40288b
4027bb:	51                   	push   %ecx
4027bc:	eb 74                	jmp    0x402832
4027be:	83 c9 ff             	or     $0xffffffff,%ecx
4027c1:	2b c8                	sub    %eax,%ecx
4027c3:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
4027c6:	74 0c                	je     0x4027d4
4027c8:	6a 01                	push   $0x1
4027ca:	e8 0a 02 00 00       	call   0x4029d9
4027cf:	89 45 e0             	mov    %eax,-0x20(%ebp)
4027d2:	eb 10                	jmp    0x4027e4
4027d4:	ff 75 ec             	push   -0x14(%ebp)
4027d7:	8d 46 18             	lea    0x18(%esi),%eax
4027da:	50                   	push   %eax
4027db:	e8 a8 33 00 00       	call   0x405b88
4027e0:	80 4e 09 01          	orb    $0x1,0x9(%esi)
4027e4:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4027e7:	8b 4d e0             	mov    -0x20(%ebp),%ecx
4027ea:	89 0c 86             	mov    %ecx,(%esi,%eax,4)
4027ed:	39 5d e8             	cmp    %ebx,-0x18(%ebp)
4027f0:	0f 84 95 00 00 00    	je     0x40288b
4027f6:	ff 75 08             	push   0x8(%ebp)
4027f9:	e8 7f e9 ff ff       	call   0x40117d
4027fe:	e9 88 00 00 00       	jmp    0x40288b
402803:	53                   	push   %ebx
402804:	e8 d0 01 00 00       	call   0x4029d9
402809:	83 f8 20             	cmp    $0x20,%eax
40280c:	0f 83 4a fe ff ff    	jae    0x40265c
402812:	39 5d e8             	cmp    %ebx,-0x18(%ebp)
402815:	74 23                	je     0x40283a
402817:	39 5d e4             	cmp    %ebx,-0x1c(%ebp)
40281a:	74 0f                	je     0x40282b
40281c:	50                   	push   %eax
40281d:	e8 77 ea ff ff       	call   0x401299
402822:	53                   	push   %ebx
402823:	53                   	push   %ebx
402824:	e8 c6 e9 ff ff       	call   0x4011ef
402829:	eb 60                	jmp    0x40288b
40282b:	53                   	push   %ebx
40282c:	e8 b1 ea ff ff       	call   0x4012e2
402831:	50                   	push   %eax
402832:	57                   	push   %edi
402833:	e8 8c 32 00 00       	call   0x405ac4
402838:	eb 51                	jmp    0x40288b
40283a:	39 5d e4             	cmp    %ebx,-0x1c(%ebp)
40283d:	74 12                	je     0x402851
40283f:	8b 15 b0 3e 42 00    	mov    0x423eb0,%edx
402845:	8b 4d e0             	mov    -0x20(%ebp),%ecx
402848:	89 8c 82 94 00 00 00 	mov    %ecx,0x94(%edx,%eax,4)
40284f:	eb 3a                	jmp    0x40288b
402851:	8b 0d b0 3e 42 00    	mov    0x423eb0,%ecx
402857:	ff b4 81 94 00 00 00 	push   0x94(%ecx,%eax,4)
40285e:	57                   	push   %edi
40285f:	e8 24 33 00 00       	call   0x405b88
402864:	eb 25                	jmp    0x40288b
402866:	8b 0d a0 14 42 00    	mov    0x4214a0,%ecx
40286c:	53                   	push   %ebx
40286d:	23 c8                	and    %eax,%ecx
40286f:	51                   	push   %ecx
402870:	6a 0b                	push   $0xb
402872:	ff 75 cc             	push   -0x34(%ebp)
402875:	ff 15 44 72 40 00    	call   *0x407244
40287b:	39 5d dc             	cmp    %ebx,-0x24(%ebp)
40287e:	74 0b                	je     0x40288b
402880:	53                   	push   %ebx
402881:	53                   	push   %ebx
402882:	ff 75 cc             	push   -0x34(%ebp)
402885:	ff 15 40 72 40 00    	call   *0x407240
40288b:	8b 45 fc             	mov    -0x4(%ebp),%eax
40288e:	01 05 28 3f 42 00    	add    %eax,0x423f28
402894:	33 c0                	xor    %eax,%eax
402896:	5f                   	pop    %edi
402897:	5e                   	pop    %esi
402898:	5b                   	pop    %ebx
402899:	c9                   	leave
40289a:	c2 04 00             	ret    $0x4
40289d:	96                   	xchg   %eax,%esi
40289e:	28 40 00             	sub    %al,0x0(%eax)
4028a1:	90                   	nop
4028a2:	14 40                	adc    $0x40,%al
4028a4:	00 9c 14 40 00 b7 14 	add    %bl,0x14b70040(%esp,%edx,1)
4028ab:	40                   	inc    %eax
4028ac:	00 ca                	add    %cl,%dl
4028ae:	14 40                	adc    $0x40,%al
4028b0:	00 d6                	add    %dl,%dh
4028b2:	14 40                	adc    $0x40,%al
4028b4:	00 f0                	add    %dh,%al
4028b6:	14 40                	adc    $0x40,%al
4028b8:	00 67 15             	add    %ah,0x15(%edi)
4028bb:	40                   	inc    %eax
4028bc:	00 95 15 40 00 b3    	add    %dl,-0x4cffbfeb(%ebp)
4028c2:	15 40 00 34 16       	adc    $0x16340040,%eax
4028c7:	40                   	inc    %eax
4028c8:	00 fe                	add    %bh,%dh
4028ca:	14 40                	adc    $0x40,%al
4028cc:	00 39                	add    %bh,(%ecx)
4028ce:	15 40 00 5a 15       	adc    $0x155a0040,%eax
4028d3:	40                   	inc    %eax
4028d4:	00 45 16             	add    %al,0x16(%ebp)
4028d7:	40                   	inc    %eax
4028d8:	00 96 16 40 00 fa    	add    %dl,-0x5ffbfea(%esi)
4028de:	16                   	push   %ss
4028df:	40                   	inc    %eax
4028e0:	00 21                	add    %ah,(%ecx)
4028e2:	17                   	pop    %ss
4028e3:	40                   	inc    %eax
4028e4:	00 34 17             	add    %dh,(%edi,%edx,1)
4028e7:	40                   	inc    %eax
4028e8:	00 d8                	add    %bl,%al
4028ea:	18 40 00             	sbb    %al,0x0(%eax)
4028ed:	db 18                	fistpl (%eax)
4028ef:	40                   	inc    %eax
4028f0:	00 0d 19 40 00 22    	add    %cl,0x22004019
4028f6:	19 40 00             	sbb    %eax,0x0(%eax)
4028f9:	34 19                	xor    $0x19,%al
4028fb:	40                   	inc    %eax
4028fc:	00 b5 19 40 00 e6    	add    %dh,-0x19ffbfe7(%ebp)
402902:	19 40 00             	sbb    %eax,0x0(%eax)
402905:	26 1a 40 00          	sbb    %es:0x0(%eax),%al
402909:	58                   	pop    %eax
40290a:	1a 40 00             	sbb    0x0(%eax),%al
40290d:	e5 1a                	in     $0x1a,%eax
40290f:	40                   	inc    %eax
402910:	00 06                	add    %al,(%esi)
402912:	1b 40 00             	sbb    0x0(%eax),%eax
402915:	ad                   	lods   %ds:(%esi),%eax
402916:	1b 40 00             	sbb    0x0(%eax),%eax
402919:	ad                   	lods   %ds:(%esi),%eax
40291a:	1b 40 00             	sbb    0x0(%eax),%eax
40291d:	6d                   	insl   (%dx),%es:(%edi)
40291e:	1c 40                	sbb    $0x40,%al
402920:	00 8a 1c 40 00 a5    	add    %cl,-0x5affbfe4(%edx)
402926:	1c 40                	sbb    $0x40,%al
402928:	00 c1                	add    %al,%cl
40292a:	1c 40                	sbb    $0x40,%al
40292c:	00 1b                	add    %bl,(%ebx)
40292e:	1d 40 00 95 1d       	sbb    $0x1d950040,%eax
402933:	40                   	inc    %eax
402934:	00 c1                	add    %al,%cl
402936:	1d 40 00 1b 1e       	sbb    $0x1e1b0040,%eax
40293b:	40                   	inc    %eax
40293c:	00 95 1e 40 00 c5    	add    %dl,-0x3affbfe2(%ebp)
402942:	1e                   	push   %ds
402943:	40                   	inc    %eax
402944:	00 50 1f             	add    %dl,0x1f(%eax)
402947:	40                   	inc    %eax
402948:	00 20                	add    %ah,(%eax)
40294a:	20 40 00             	and    %al,0x0(%eax)
40294d:	72 21                	jb     0x402970
40294f:	40                   	inc    %eax
402950:	00 f4                	add    %dh,%ah
402952:	21 40 00             	and    %eax,0x0(%eax)
402955:	23 22                	and    (%edx),%esp
402957:	40                   	inc    %eax
402958:	00 67 22             	add    %ah,0x22(%edi)
40295b:	40                   	inc    %eax
40295c:	00 a7 22 40 00 03    	add    %ah,0x3004022(%edi)
402962:	23 40 00             	and    0x0(%eax),%eax
402965:	af                   	scas   %es:(%edi),%eax
402966:	23 40 00             	and    0x0(%eax),%eax
402969:	27                   	daa
40296a:	24 40                	and    $0x40,%al
40296c:	00 88 24 40 00 9c    	add    %cl,-0x63ffbfdc(%eax)
402972:	24 40                	and    $0x40,%al
402974:	00 be 24 40 00 06    	add    %bh,0x6004024(%esi)
40297a:	25 40 00 cb 25       	and    $0x25cb0040,%eax
40297f:	40                   	inc    %eax
402980:	00 fa                	add    %bh,%dl
402982:	25 40 00 14 26       	and    $0x26140040,%eax
402987:	40                   	inc    %eax
402988:	00 3e                	add    %bh,(%esi)
40298a:	26 40                	es inc %eax
40298c:	00 7c 26 40          	add    %bh,0x40(%esi,%eiz,1)
402990:	00 7d 27             	add    %bh,0x27(%ebp)
402993:	40                   	inc    %eax
402994:	00 03                	add    %al,(%ebx)
402996:	28 40 00             	sub    %al,0x0(%eax)
402999:	8b 28                	mov    (%eax),%ebp
40299b:	40                   	inc    %eax
40299c:	00 8b 28 40 00 66    	add    %cl,0x66004028(%ebx)
4029a2:	28 40 00             	sub    %al,0x0(%eax)
4029a5:	79 1a                	jns    0x4029c1
4029a7:	40                   	inc    %eax
4029a8:	00 7d 1a             	add    %bh,0x1a(%ebp)
4029ab:	40                   	inc    %eax
4029ac:	00 81 1a 40 00 88    	add    %al,-0x77ffbfe6(%ecx)
4029b2:	1a 40 00             	sbb    0x0(%eax),%al
4029b5:	95                   	xchg   %eax,%ebp
4029b6:	1a 40 00             	sbb    0x0(%eax),%al
4029b9:	99                   	cltd
4029ba:	1a 40 00             	sbb    0x0(%eax),%al
4029bd:	9d                   	popf
4029be:	1a 40 00             	sbb    0x0(%eax),%al
4029c1:	a1 1a 40 00 aa       	mov    0xaa00401a,%eax
4029c6:	1a 40 00             	sbb    0x0(%eax),%al
4029c9:	b4 1a                	mov    $0x1a,%ah
4029cb:	40                   	inc    %eax
4029cc:	00 c1                	add    %al,%cl
4029ce:	1a 40 00             	sbb    0x0(%eax),%al
4029d1:	d9 1a                	fstps  (%edx)
4029d3:	40                   	inc    %eax
4029d4:	00 dd                	add    %bl,%ch
4029d6:	1a 40 00             	sbb    0x0(%eax),%al
4029d9:	8b 44 24 04          	mov    0x4(%esp),%eax
4029dd:	8b 0d 68 9b 40 00    	mov    0x409b68,%ecx
4029e3:	ff 34 81             	push   (%ecx,%eax,4)
4029e6:	6a 00                	push   $0x0
4029e8:	e8 9b 31 00 00       	call   0x405b88
4029ed:	50                   	push   %eax
4029ee:	e8 ea 30 00 00       	call   0x405add
4029f3:	c2 04 00             	ret    $0x4
4029f6:	56                   	push   %esi
4029f7:	8b 74 24 08          	mov    0x8(%esp),%esi
4029fb:	85 f6                	test   %esi,%esi
4029fd:	57                   	push   %edi
4029fe:	8b c6                	mov    %esi,%eax
402a00:	7d 02                	jge    0x402a04
402a02:	f7 d8                	neg    %eax
402a04:	8b 15 68 9b 40 00    	mov    0x409b68,%edx
402a0a:	8b c8                	mov    %eax,%ecx
402a0c:	83 e1 0f             	and    $0xf,%ecx
402a0f:	c1 f8 04             	sar    $0x4,%eax
402a12:	ff 34 8a             	push   (%edx,%ecx,4)
402a15:	c1 e0 0a             	shl    $0xa,%eax
402a18:	05 70 9b 40 00       	add    $0x409b70,%eax
402a1d:	50                   	push   %eax
402a1e:	e8 65 31 00 00       	call   0x405b88
402a23:	85 f6                	test   %esi,%esi
402a25:	8b f8                	mov    %eax,%edi
402a27:	7d 06                	jge    0x402a2f
402a29:	57                   	push   %edi
402a2a:	e8 99 33 00 00       	call   0x405dc8
402a2f:	8b c7                	mov    %edi,%eax
402a31:	5f                   	pop    %edi
402a32:	5e                   	pop    %esi
402a33:	c2 04 00             	ret    $0x4
402a36:	55                   	push   %ebp
402a37:	8b ec                	mov    %esp,%ebp
402a39:	81 ec 0c 01 00 00    	sub    $0x10c,%esp