521e94:	e9 bf 20 ee ff       	jmp    0x403f58
521e99:	e8 22 24 ee ff       	call   0x4042c0
521e9e:	5f                   	pop    %edi
521e9f:	5e                   	pop    %esi
521ea0:	5b                   	pop    %ebx
521ea1:	8b e5                	mov    %ebp,%esp
521ea3:	5d                   	pop    %ebp
521ea4:	c3                   	ret
521ea5:	8d 40 00             	lea    0x0(%eax),%eax
521ea8:	55                   	push   %ebp
521ea9:	8b ec                	mov    %esp,%ebp
521eab:	51                   	push   %ecx
521eac:	53                   	push   %ebx
521ead:	56                   	push   %esi
521eae:	84 d2                	test   %dl,%dl
521eb0:	74 08                	je     0x521eba
521eb2:	83 c4 f0             	add    $0xfffffff0,%esp
521eb5:	e8 22 1f ee ff       	call   0x403ddc
521eba:	88 55 ff             	mov    %dl,-0x1(%ebp)
521ebd:	8b d8                	mov    %eax,%ebx
521ebf:	33 d2                	xor    %edx,%edx
521ec1:	8b c3                	mov    %ebx,%eax
521ec3:	e8 e0 eb f2 ff       	call   0x450aa8
521ec8:	c6 83 a4 02 00 00 00 	movb   $0x0,0x2a4(%ebx)
521ecf:	c6 83 84 02 00 00 00 	movb   $0x0,0x284(%ebx)
521ed6:	8d 83 88 02 00 00    	lea    0x288(%ebx),%eax
521edc:	e8 87 29 ee ff       	call   0x404868
521ee1:	33 c0                	xor    %eax,%eax
521ee3:	89 83 60 02 00 00    	mov    %eax,0x260(%ebx)
521ee9:	33 c0                	xor    %eax,%eax
521eeb:	89 83 64 02 00 00    	mov    %eax,0x264(%ebx)
521ef1:	c6 83 5e 02 00 00 00 	movb   $0x0,0x25e(%ebx)
521ef8:	c6 83 5d 02 00 00 00 	movb   $0x0,0x25d(%ebx)
521eff:	b2 01                	mov    $0x1,%dl
521f01:	a1 10 61 42 00       	mov    0x426110,%eax
521f06:	e8 b9 59 f0 ff       	call   0x4278c4
521f0b:	89 83 2c 02 00 00    	mov    %eax,0x22c(%ebx)
521f11:	b2 01                	mov    $0x1,%dl
521f13:	a1 8c 63 42 00       	mov    0x42638c,%eax
521f18:	e8 bf 61 f0 ff       	call   0x4280dc
521f1d:	89 83 30 02 00 00    	mov    %eax,0x230(%ebx)
521f23:	b2 01                	mov    $0x1,%dl
521f25:	a1 8c 62 42 00       	mov    0x42628c,%eax
521f2a:	e8 c1 5e f0 ff       	call   0x427df0
521f2f:	89 83 34 02 00 00    	mov    %eax,0x234(%ebx)
521f35:	b2 01                	mov    $0x1,%dl
521f37:	a1 8c 63 42 00       	mov    0x42638c,%eax
521f3c:	e8 9b 61 f0 ff       	call   0x4280dc
521f41:	89 83 38 02 00 00    	mov    %eax,0x238(%ebx)
521f47:	8b 43 50             	mov    0x50(%ebx),%eax
521f4a:	0b 05 8c 20 52 00    	or     0x52208c,%eax
521f50:	89 43 50             	mov    %eax,0x50(%ebx)
521f53:	33 c0                	xor    %eax,%eax
521f55:	89 83 10 02 00 00    	mov    %eax,0x210(%ebx)
521f5b:	b2 01                	mov    $0x1,%dl
521f5d:	a1 ec 6a 42 00       	mov    0x426aec,%eax
521f62:	e8 69 b2 f0 ff       	call   0x42d1d0
521f67:	8b f0                	mov    %eax,%esi
521f69:	89 b3 1c 02 00 00    	mov    %esi,0x21c(%ebx)
521f6f:	8b c6                	mov    %esi,%eax
521f71:	b2 06                	mov    $0x6,%dl
521f73:	e8 30 c8 f0 ff       	call   0x42e7a8
521f78:	33 c0                	xor    %eax,%eax
521f7a:	89 83 68 02 00 00    	mov    %eax,0x268(%ebx)
521f80:	33 c0                	xor    %eax,%eax
521f82:	89 83 6c 02 00 00    	mov    %eax,0x26c(%ebx)
521f88:	33 c0                	xor    %eax,%eax
521f8a:	89 83 70 02 00 00    	mov    %eax,0x270(%ebx)
521f90:	33 c0                	xor    %eax,%eax
521f92:	89 83 20 02 00 00    	mov    %eax,0x220(%ebx)
521f98:	33 c0                	xor    %eax,%eax
521f9a:	89 83 24 02 00 00    	mov    %eax,0x224(%ebx)
521fa0:	33 c0                	xor    %eax,%eax
521fa2:	89 83 28 02 00 00    	mov    %eax,0x228(%ebx)
521fa8:	33 c0                	xor    %eax,%eax
521faa:	89 83 14 02 00 00    	mov    %eax,0x214(%ebx)
521fb0:	33 c0                	xor    %eax,%eax
521fb2:	89 83 7c 02 00 00    	mov    %eax,0x27c(%ebx)
521fb8:	33 c0                	xor    %eax,%eax
521fba:	89 83 80 02 00 00    	mov    %eax,0x280(%ebx)
521fc0:	33 c0                	xor    %eax,%eax
521fc2:	89 83 74 02 00 00    	mov    %eax,0x274(%ebx)
521fc8:	33 c0                	xor    %eax,%eax
521fca:	89 83 78 02 00 00    	mov    %eax,0x278(%ebx)
521fd0:	c6 83 3c 02 00 00 01 	movb   $0x1,0x23c(%ebx)
521fd7:	c6 83 3d 02 00 00 00 	movb   $0x0,0x23d(%ebx)
521fde:	33 c0                	xor    %eax,%eax
521fe0:	89 83 40 02 00 00    	mov    %eax,0x240(%ebx)
521fe6:	c7 83 44 02 00 00 00 	movl   $0x3ff00000,0x244(%ebx)
521fed:	00 f0 3f
521ff0:	66 ba fc ff          	mov    $0xfffc,%dx
521ff4:	8b c3                	mov    %ebx,%eax
521ff6:	e8 dd 69 f2 ff       	call   0x4489d8
521ffb:	33 c0                	xor    %eax,%eax
521ffd:	89 83 48 02 00 00    	mov    %eax,0x248(%ebx)
522003:	33 c0                	xor    %eax,%eax
522005:	89 83 4c 02 00 00    	mov    %eax,0x24c(%ebx)
52200b:	33 c0                	xor    %eax,%eax
52200d:	89 83 50 02 00 00    	mov    %eax,0x250(%ebx)
522013:	33 c0                	xor    %eax,%eax
522015:	89 83 54 02 00 00    	mov    %eax,0x254(%ebx)
52201b:	c6 83 5c 02 00 00 00 	movb   $0x0,0x25c(%ebx)
522022:	b8 18 01 00 00       	mov    $0x118,%eax
522027:	e8 80 07 ee ff       	call   0x4027ac
52202c:	89 83 58 02 00 00    	mov    %eax,0x258(%ebx)
522032:	33 c0                	xor    %eax,%eax
522034:	89 83 90 02 00 00    	mov    %eax,0x290(%ebx)
52203a:	89 83 94 02 00 00    	mov    %eax,0x294(%ebx)
522040:	c6 83 9c 02 00 00 00 	movb   $0x0,0x29c(%ebx)
522047:	c7 83 a0 02 00 00 01 	movl   $0x1,0x2a0(%ebx)
52204e:	00 00 00
522051:	e8 02 52 ee ff       	call   0x407258
522056:	66 25 ff 01          	and    $0x1ff,%ax
52205a:	66 83 f8 11          	cmp    $0x11,%ax
52205e:	74 06                	je     0x522066
522060:	66 83 f8 04          	cmp    $0x4,%ax
522064:	75 07                	jne    0x52206d
522066:	c6 83 a4 02 00 00 01 	movb   $0x1,0x2a4(%ebx)
52206d:	8b c3                	mov    %ebx,%eax
52206f:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
522073:	74 0f                	je     0x522084
522075:	e8 ba 1d ee ff       	call   0x403e34
52207a:	64 8f 05 00 00 00 00 	pop    %fs:0x0
522081:	83 c4 0c             	add    $0xc,%esp
522084:	8b c3                	mov    %ebx,%eax
522086:	5e                   	pop    %esi
522087:	5b                   	pop    %ebx
522088:	59                   	pop    %ecx
522089:	5d                   	pop    %ebp
52208a:	c3                   	ret
52208b:	00 40 00             	add    %al,0x0(%eax)
52208e:	00 00                	add    %al,(%eax)
522090:	53                   	push   %ebx
522091:	56                   	push   %esi
522092:	57                   	push   %edi
522093:	e8 ac 1d ee ff       	call   0x403e44
522098:	8b da                	mov    %edx,%ebx
52209a:	8b f8                	mov    %eax,%edi
52209c:	8b 87 58 02 00 00    	mov    0x258(%edi),%eax
5220a2:	e8 25 07 ee ff       	call   0x4027cc
5220a7:	8b 87 68 02 00 00    	mov    0x268(%edi),%eax
5220ad:	e8 1a 07 ee ff       	call   0x4027cc
5220b2:	8b 87 6c 02 00 00    	mov    0x26c(%edi),%eax
5220b8:	e8 0f 07 ee ff       	call   0x4027cc
5220bd:	8b 87 70 02 00 00    	mov    0x270(%edi),%eax
5220c3:	e8 04 07 ee ff       	call   0x4027cc
5220c8:	8b 87 80 02 00 00    	mov    0x280(%edi),%eax
5220ce:	e8 f9 06 ee ff       	call   0x4027cc
5220d3:	8b 87 74 02 00 00    	mov    0x274(%edi),%eax
5220d9:	e8 ee 06 ee ff       	call   0x4027cc
5220de:	8b 87 78 02 00 00    	mov    0x278(%edi),%eax
5220e4:	e8 e3 06 ee ff       	call   0x4027cc
5220e9:	8b 87 1c 02 00 00    	mov    0x21c(%edi),%eax
5220ef:	e8 84 19 ee ff       	call   0x403a78
5220f4:	83 bf 7c 02 00 00 00 	cmpl   $0x0,0x27c(%edi)
5220fb:	74 29                	je     0x522126
5220fd:	eb 1b                	jmp    0x52211a
5220ff:	8b c6                	mov    %esi,%eax
522101:	33 d2                	xor    %edx,%edx
522103:	e8 b8 9c ef ff       	call   0x41bdc0
522108:	e8 bf 06 ee ff       	call   0x4027cc
52210d:	8b 87 7c 02 00 00    	mov    0x27c(%edi),%eax
522113:	33 d2                	xor    %edx,%edx
522115:	e8 46 9b ef ff       	call   0x41bc60
52211a:	8b b7 7c 02 00 00    	mov    0x27c(%edi),%esi
522120:	83 7e 08 00          	cmpl   $0x0,0x8(%esi)
522124:	7f d9                	jg     0x5220ff
522126:	8b 87 7c 02 00 00    	mov    0x27c(%edi),%eax
52212c:	e8 47 19 ee ff       	call   0x403a78
522131:	8b 87 2c 02 00 00    	mov    0x22c(%edi),%eax
522137:	e8 3c 19 ee ff       	call   0x403a78
52213c:	8b 87 30 02 00 00    	mov    0x230(%edi),%eax
522142:	e8 31 19 ee ff       	call   0x403a78
522147:	8b 87 38 02 00 00    	mov    0x238(%edi),%eax
52214d:	e8 26 19 ee ff       	call   0x403a78
522152:	8b 87 34 02 00 00    	mov    0x234(%edi),%eax
522158:	e8 1b 19 ee ff       	call   0x403a78
52215d:	8b d3                	mov    %ebx,%edx
52215f:	80 e2 fc             	and    $0xfc,%dl
522162:	8b c7                	mov    %edi,%eax
522164:	e8 9b e9 f2 ff       	call   0x450b04
522169:	84 db                	test   %bl,%bl
52216b:	7e 07                	jle    0x522174
52216d:	8b c7                	mov    %edi,%eax
52216f:	e8 b8 1c ee ff       	call   0x403e2c
522174:	5f                   	pop    %edi
522175:	5e                   	pop    %esi
522176:	5b                   	pop    %ebx
522177:	c3                   	ret
522178:	53                   	push   %ebx
522179:	56                   	push   %esi
52217a:	57                   	push   %edi
52217b:	51                   	push   %ecx
52217c:	8b d8                	mov    %eax,%ebx
52217e:	8b 83 7c 02 00 00    	mov    0x27c(%ebx),%eax
522184:	8b 40 08             	mov    0x8(%eax),%eax
522187:	c1 e0 02             	shl    $0x2,%eax
52218a:	e8 1d 06 ee ff       	call   0x4027ac
52218f:	89 04 24             	mov    %eax,(%esp)
522192:	33 f6                	xor    %esi,%esi
522194:	eb 4d                	jmp    0x5221e3
522196:	8b d6                	mov    %esi,%edx
522198:	8b c7                	mov    %edi,%eax
52219a:	e8 21 9c ef ff       	call   0x41bdc0
52219f:	8b f8                	mov    %eax,%edi
5221a1:	83 3f 00             	cmpl   $0x0,(%edi)
5221a4:	75 3c                	jne    0x5221e2
5221a6:	8b 93 14 02 00 00    	mov    0x214(%ebx),%edx
5221ac:	4a                   	dec    %edx
5221ad:	85 d2                	test   %edx,%edx
5221af:	7c 1b                	jl     0x5221cc
5221b1:	42                   	inc    %edx
5221b2:	33 c0                	xor    %eax,%eax
5221b4:	8b 8b 80 02 00 00    	mov    0x280(%ebx),%ecx
5221ba:	3b 34 81             	cmp    (%ecx,%eax,4),%esi
5221bd:	7d 09                	jge    0x5221c8
5221bf:	8b 8b 80 02 00 00    	mov    0x280(%ebx),%ecx
5221c5:	ff 0c 81             	decl   (%ecx,%eax,4)
5221c8:	40                   	inc    %eax
5221c9:	4a                   	dec    %edx
5221ca:	75 e8                	jne    0x5221b4
5221cc:	8b c7                	mov    %edi,%eax
5221ce:	e8 f9 05 ee ff       	call   0x4027cc
5221d3:	8b d6                	mov    %esi,%edx
5221d5:	8b 83 7c 02 00 00    	mov    0x27c(%ebx),%eax
5221db:	e8 80 9a ef ff       	call   0x41bc60
5221e0:	eb 01                	jmp    0x5221e3
5221e2:	46                   	inc    %esi
5221e3:	8b bb 7c 02 00 00    	mov    0x27c(%ebx),%edi
5221e9:	3b 77 08             	cmp    0x8(%edi),%esi
5221ec:	7c a8                	jl     0x522196
5221ee:	8b 04 24             	mov    (%esp),%eax
5221f1:	e8 d6 05 ee ff       	call   0x4027cc
5221f6:	5a                   	pop    %edx
5221f7:	5f                   	pop    %edi
5221f8:	5e                   	pop    %esi
5221f9:	5b                   	pop    %ebx
5221fa:	c3                   	ret
5221fb:	90                   	nop
5221fc:	53                   	push   %ebx
5221fd:	8b da                	mov    %edx,%ebx
5221ff:	8b d3                	mov    %ebx,%edx
522201:	e8 72 9c f2 ff       	call   0x44be78
522206:	83 63 24 fc          	andl   $0xfffffffc,0x24(%ebx)
52220a:	5b                   	pop    %ebx
52220b:	c3                   	ret
52220c:	56                   	push   %esi
52220d:	8b f0                	mov    %eax,%esi
52220f:	8b c6                	mov    %esi,%eax
522211:	e8 56 b3 f2 ff       	call   0x44d56c
522216:	8b c6                	mov    %esi,%eax
522218:	8b 10                	mov    (%eax),%edx
52221a:	ff 92 88 00 00 00    	call   *0x88(%edx)
522220:	5e                   	pop    %esi
522221:	c3                   	ret
522222:	8b c0                	mov    %eax,%eax
522224:	33 c0                	xor    %eax,%eax
522226:	89 42 0c             	mov    %eax,0xc(%edx)
522229:	c3                   	ret
52222a:	8b c0                	mov    %eax,%eax
52222c:	56                   	push   %esi
52222d:	57                   	push   %edi
52222e:	8b f2                	mov    %edx,%esi
522230:	8b f8                	mov    %eax,%edi
522232:	8b d6                	mov    %esi,%edx
522234:	8b c7                	mov    %edi,%eax
522236:	8b 08                	mov    (%eax),%ecx
522238:	ff 51 f0             	call   *-0x10(%ecx)
52223b:	66 8b 46 04          	mov    0x4(%esi),%ax
52223f:	66 83 e8 09          	sub    $0x9,%ax
522243:	74 09                	je     0x52224e
522245:	83 c0 e8             	add    $0xffffffe8,%eax
522248:	66 83 e8 08          	sub    $0x8,%ax
52224c:	73 1f                	jae    0x52226d
52224e:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
522255:	8b 46 08             	mov    0x8(%esi),%eax
522258:	e8 57 e8 f3 ff       	call   0x460ab4
52225d:	8b c8                	mov    %eax,%ecx
52225f:	8d 56 04             	lea    0x4(%esi),%edx
522262:	8b c7                	mov    %edi,%eax
522264:	66 be bb ff          	mov    $0xffbb,%si
522268:	e8 07 1a ee ff       	call   0x403c74
52226d:	5f                   	pop    %edi
52226e:	5e                   	pop    %esi
52226f:	c3                   	ret
522270:	53                   	push   %ebx
522271:	56                   	push   %esi
522272:	8b da                	mov    %edx,%ebx
522274:	8b f0                	mov    %eax,%esi
522276:	8b d3                	mov    %ebx,%edx
522278:	8b c6                	mov    %esi,%eax
52227a:	8b 08                	mov    (%eax),%ecx
52227c:	ff 51 f0             	call   *-0x10(%ecx)
52227f:	66 8b 43 04          	mov    0x4(%ebx),%ax
522283:	66 83 e8 09          	sub    $0x9,%ax
522287:	74 09                	je     0x522292
522289:	83 c0 e8             	add    $0xffffffe8,%eax
52228c:	66 83 e8 08          	sub    $0x8,%ax
522290:	73 1f                	jae    0x5222b1
522292:	c7 43 0c 01 00 00 00 	movl   $0x1,0xc(%ebx)
522299:	8b 43 08             	mov    0x8(%ebx),%eax
52229c:	e8 13 e8 f3 ff       	call   0x460ab4
5222a1:	8b c8                	mov    %eax,%ecx
5222a3:	8d 53 04             	lea    0x4(%ebx),%edx
5222a6:	8b c6                	mov    %esi,%eax
5222a8:	66 be bb ff          	mov    $0xffbb,%si
5222ac:	e8 c3 19 ee ff       	call   0x403c74
5222b1:	5e                   	pop    %esi
5222b2:	5b                   	pop    %ebx
5222b3:	c3                   	ret
5222b4:	80 3a 09             	cmpb   $0x9,(%edx)
5222b7:	75 04                	jne    0x5222bd
5222b9:	c6 02 00             	movb   $0x0,(%edx)
5222bc:	c3                   	ret
5222bd:	e8 8a bc f2 ff       	call   0x44df4c
5222c2:	c3                   	ret
5222c3:	90                   	nop
5222c4:	56                   	push   %esi
5222c5:	51                   	push   %ecx
5222c6:	89 04 24             	mov    %eax,(%esp)
5222c9:	8b f2                	mov    %edx,%esi
5222cb:	85 f6                	test   %esi,%esi
5222cd:	79 06                	jns    0x5222d5
5222cf:	81 c6 ff 00 00 00    	add    $0xff,%esi
5222d5:	c1 fe 08             	sar    $0x8,%esi
5222d8:	8b c1                	mov    %ecx,%eax
5222da:	85 c0                	test   %eax,%eax
5222dc:	79 05                	jns    0x5222e3
5222de:	05 ff 00 00 00       	add    $0xff,%eax
5222e3:	c1 f8 08             	sar    $0x8,%eax
5222e6:	40                   	inc    %eax
5222e7:	3b f0                	cmp    %eax,%esi
5222e9:	7c 04                	jl     0x5222ef
5222eb:	85 d2                	test   %edx,%edx
5222ed:	75 12                	jne    0x522301
5222ef:	8b d0                	mov    %eax,%edx
5222f1:	c1 e2 08             	shl    $0x8,%edx
5222f4:	8b c4                	mov    %esp,%eax
5222f6:	e8 f1 04 ee ff       	call   0x4027ec
5222fb:	8b 04 24             	mov    (%esp),%eax
5222fe:	5a                   	pop    %edx
5222ff:	5e                   	pop    %esi
522300:	c3                   	ret
522301:	8b 04 24             	mov    (%esp),%eax
522304:	5a                   	pop    %edx
522305:	5e                   	pop    %esi
522306:	c3                   	ret
522307:	90                   	nop
522308:	53                   	push   %ebx
522309:	56                   	push   %esi