415d7c:	8d 8c 24 14 01 00 00 	lea    0x114(%esp),%ecx
415d83:	e8 88 96 ff ff       	call   0x40f410
415d88:	83 f8 03             	cmp    $0x3,%eax
415d8b:	0f 84 59 bd 00 00    	je     0x421aea
415d91:	85 c0                	test   %eax,%eax
415d93:	0f 84 5d bd 00 00    	je     0x421af6
415d99:	6a 05                	push   $0x5
415d9b:	59                   	pop    %ecx
415d9c:	3b c1                	cmp    %ecx,%eax
415d9e:	0f 84 52 bd 00 00    	je     0x421af6
415da4:	83 f8 02             	cmp    $0x2,%eax
415da7:	0f 84 62 bd 00 00    	je     0x421b0f
415dad:	ff 74 24 3c          	push   0x3c(%esp)
415db1:	8b 4c 24 44          	mov    0x44(%esp),%ecx
415db5:	ba 00 20 00 00       	mov    $0x2000,%edx
415dba:	e8 e1 95 ff ff       	call   0x40f3a0
415dbf:	8b 4c 24 40          	mov    0x40(%esp),%ecx
415dc3:	ba 00 20 00 00       	mov    $0x2000,%edx
415dc8:	68 4c 23 40 00       	push   $0x40234c
415dcd:	e8 6e 9e ff ff       	call   0x40fc40
415dd2:	8b 44 24 60          	mov    0x60(%esp),%eax
415dd6:	85 c0                	test   %eax,%eax
415dd8:	74 0f                	je     0x415de9
415dda:	8b 4c 24 40          	mov    0x40(%esp),%ecx
415dde:	ba 00 20 00 00       	mov    $0x2000,%edx
415de3:	50                   	push   %eax
415de4:	e8 57 9e ff ff       	call   0x40fc40
415de9:	80 7c 24 1a 00       	cmpb   $0x0,0x1a(%esp)
415dee:	0f 85 3b be 00 00    	jne    0x421c2f
415df4:	6a 44                	push   $0x44
415df6:	58                   	pop    %eax
415df7:	50                   	push   %eax
415df8:	33 c0                	xor    %eax,%eax
415dfa:	50                   	push   %eax
415dfb:	8d 84 24 d0 00 00 00 	lea    0xd0(%esp),%eax
415e02:	50                   	push   %eax
415e03:	e8 b5 21 00 00       	call   0x417fbd
415e08:	83 c4 0c             	add    $0xc,%esp
415e0b:	6a 44                	push   $0x44
415e0d:	58                   	pop    %eax
415e0e:	89 84 24 c8 00 00 00 	mov    %eax,0xc8(%esp)
415e15:	8d 84 24 c8 00 00 00 	lea    0xc8(%esp),%eax
415e1c:	50                   	push   %eax
415e1d:	ff 15 f0 a1 44 00    	call   *0x44a1f0
415e23:	80 7c 24 13 00       	cmpb   $0x0,0x13(%esp)
415e28:	8b 84 24 d0 00 00 00 	mov    0xd0(%esp),%eax
415e2f:	89 84 24 88 00 00 00 	mov    %eax,0x88(%esp)
415e36:	0f 85 02 be 00 00    	jne    0x421c3e
415e3c:	33 c9                	xor    %ecx,%ecx
415e3e:	8d 44 24 68          	lea    0x68(%esp),%eax
415e42:	50                   	push   %eax
415e43:	51                   	push   %ecx
415e44:	6a 02                	push   $0x2
415e46:	51                   	push   %ecx
415e47:	88 4c 24 23          	mov    %cl,0x23(%esp)
415e4b:	89 4c 24 78          	mov    %ecx,0x78(%esp)
415e4f:	ff 15 04 a2 44 00    	call   *0x44a204
415e55:	85 c0                	test   %eax,%eax
415e57:	0f 85 26 be 00 00    	jne    0x421c83
415e5d:	ff 15 80 a0 44 00    	call   *0x44a080
415e63:	83 f8 7a             	cmp    $0x7a,%eax
415e66:	0f 85 73 bc 00 00    	jne    0x421adf
415e6c:	ff 74 24 68          	push   0x68(%esp)
415e70:	6a 08                	push   $0x8
415e72:	ff 15 34 a1 44 00    	call   *0x44a134
415e78:	50                   	push   %eax
415e79:	ff 15 28 a1 44 00    	call   *0x44a128
415e7f:	8b d8                	mov    %eax,%ebx
415e81:	85 db                	test   %ebx,%ebx
415e83:	0f 84 09 be 00 00    	je     0x421c92
415e89:	8d 44 24 68          	lea    0x68(%esp),%eax
415e8d:	50                   	push   %eax
415e8e:	33 c0                	xor    %eax,%eax
415e90:	50                   	push   %eax
415e91:	6a 02                	push   $0x2
415e93:	53                   	push   %ebx
415e94:	ff 15 04 a2 44 00    	call   *0x44a204
415e9a:	85 c0                	test   %eax,%eax
415e9c:	0f 84 fd bd 00 00    	je     0x421c9f
415ea2:	33 c9                	xor    %ecx,%ecx
415ea4:	c7 44 24 6c 01 00 00 	movl   $0x1,0x6c(%esp)
415eab:	00
415eac:	51                   	push   %ecx
415ead:	51                   	push   %ecx
415eae:	6a 04                	push   $0x4
415eb0:	8d 44 24 78          	lea    0x78(%esp),%eax
415eb4:	50                   	push   %eax
415eb5:	68 01 00 06 00       	push   $0x60001
415eba:	51                   	push   %ecx
415ebb:	53                   	push   %ebx
415ebc:	ff 15 00 a2 44 00    	call   *0x44a200
415ec2:	85 c0                	test   %eax,%eax
415ec4:	0f 84 00 be 00 00    	je     0x421cca
415eca:	8b 44 24 44          	mov    0x44(%esp),%eax
415ece:	89 9c 24 c4 00 00 00 	mov    %ebx,0xc4(%esp)
415ed5:	3d ff ff 00 00       	cmp    $0xffff,%eax
415eda:	0f 85 fe bd 00 00    	jne    0x421cde
415ee0:	8d 44 24 70          	lea    0x70(%esp),%eax
415ee4:	50                   	push   %eax
415ee5:	8d 84 24 84 00 00 00 	lea    0x84(%esp),%eax
415eec:	50                   	push   %eax
415eed:	ff 74 24 50          	push   0x50(%esp)
415ef1:	8b 44 24 18          	mov    0x18(%esp),%eax
415ef5:	ff 74 24 60          	push   0x60(%esp)
415ef9:	0d 00 04 00 00       	or     $0x400,%eax
415efe:	50                   	push   %eax
415eff:	6a 01                	push   $0x1
415f01:	33 c0                	xor    %eax,%eax
415f03:	50                   	push   %eax
415f04:	50                   	push   %eax
415f05:	ff 74 24 60          	push   0x60(%esp)
415f09:	57                   	push   %edi
415f0a:	ff 15 f8 a1 44 00    	call   *0x44a1f8
415f10:	85 c0                	test   %eax,%eax
415f12:	53                   	push   %ebx
415f13:	0f 95 44 24 18       	setne  0x18(%esp)
415f18:	ff 15 18 a2 44 00    	call   *0x44a218
415f1e:	53                   	push   %ebx
415f1f:	33 c0                	xor    %eax,%eax
415f21:	50                   	push   %eax
415f22:	ff 15 34 a1 44 00    	call   *0x44a134
415f28:	50                   	push   %eax
415f29:	ff 15 3c a1 44 00    	call   *0x44a13c
415f2f:	33 db                	xor    %ebx,%ebx
415f31:	43                   	inc    %ebx
415f32:	80 7c 24 1a 00       	cmpb   $0x0,0x1a(%esp)
415f37:	0f 85 c7 bd 00 00    	jne    0x421d04
415f3d:	ff 15 80 a0 44 00    	call   *0x44a080
415f43:	80 7c 24 13 00       	cmpb   $0x0,0x13(%esp)
415f48:	a3 a8 67 43 00       	mov    %eax,0x4367a8
415f4d:	0f 85 8b be 00 00    	jne    0x421dde
415f53:	80 7c 24 14 00       	cmpb   $0x0,0x14(%esp)
415f58:	0f 84 65 be 00 00    	je     0x421dc3
415f5e:	8b 5c 24 30          	mov    0x30(%esp),%ebx
415f62:	85 db                	test   %ebx,%ebx
415f64:	0f 85 a9 bd 00 00    	jne    0x421d13
415f6a:	80 7c 24 21 00       	cmpb   $0x0,0x21(%esp)
415f6f:	0f 85 3f be 00 00    	jne    0x421db4
415f75:	ff 74 24 74          	push   0x74(%esp)
415f79:	ff 15 1c a1 44 00    	call   *0x44a11c
415f7f:	8b 44 24 70          	mov    0x70(%esp),%eax
415f83:	85 c0                	test   %eax,%eax
415f85:	74 12                	je     0x415f99
415f87:	80 7c 24 23 00       	cmpb   $0x0,0x23(%esp)
415f8c:	0f 85 e2 be 00 00    	jne    0x421e74
415f92:	50                   	push   %eax
415f93:	ff 15 1c a1 44 00    	call   *0x44a11c
415f99:	33 c0                	xor    %eax,%eax
415f9b:	8b d8                	mov    %eax,%ebx
415f9d:	8b 44 24 3c          	mov    0x3c(%esp),%eax
415fa1:	85 c0                	test   %eax,%eax
415fa3:	74 08                	je     0x415fad
415fa5:	50                   	push   %eax
415fa6:	ff 15 e0 a3 44 00    	call   *0x44a3e0
415fac:	59                   	pop    %ecx
415fad:	8b 44 24 40          	mov    0x40(%esp),%eax
415fb1:	85 c0                	test   %eax,%eax
415fb3:	74 08                	je     0x415fbd
415fb5:	50                   	push   %eax
415fb6:	ff 15 e0 a3 44 00    	call   *0x44a3e0
415fbc:	59                   	pop    %ecx
415fbd:	8b 44 24 50          	mov    0x50(%esp),%eax
415fc1:	85 c0                	test   %eax,%eax
415fc3:	74 08                	je     0x415fcd
415fc5:	50                   	push   %eax
415fc6:	ff 15 e0 a3 44 00    	call   *0x44a3e0
415fcc:	59                   	pop    %ecx
415fcd:	85 ff                	test   %edi,%edi
415fcf:	74 08                	je     0x415fd9
415fd1:	57                   	push   %edi
415fd2:	ff 15 e0 a3 44 00    	call   *0x44a3e0
415fd8:	59                   	pop    %ecx
415fd9:	85 f6                	test   %esi,%esi
415fdb:	74 08                	je     0x415fe5
415fdd:	56                   	push   %esi
415fde:	ff 15 e0 a3 44 00    	call   *0x44a3e0
415fe4:	59                   	pop    %ecx
415fe5:	8b 44 24 34          	mov    0x34(%esp),%eax
415fe9:	85 c0                	test   %eax,%eax
415feb:	74 08                	je     0x415ff5
415fed:	50                   	push   %eax
415fee:	ff 15 e0 a3 44 00    	call   *0x44a3e0
415ff4:	59                   	pop    %ecx
415ff5:	8b 44 24 24          	mov    0x24(%esp),%eax
415ff9:	85 c0                	test   %eax,%eax
415ffb:	74 08                	je     0x416005
415ffd:	50                   	push   %eax
415ffe:	ff 15 e0 a3 44 00    	call   *0x44a3e0
416004:	59                   	pop    %ecx
416005:	8b 84 24 78 03 00 00 	mov    0x378(%esp),%eax
41600c:	33 c9                	xor    %ecx,%ecx
41600e:	89 8c 24 78 03 00 00 	mov    %ecx,0x378(%esp)
416015:	85 c0                	test   %eax,%eax
416017:	74 08                	je     0x416021
416019:	50                   	push   %eax
41601a:	ff 15 e0 a3 44 00    	call   *0x44a3e0
416020:	59                   	pop    %ecx
416021:	8b 8c 24 a4 05 00 00 	mov    0x5a4(%esp),%ecx
416028:	8b c3                	mov    %ebx,%eax
41602a:	5f                   	pop    %edi
41602b:	5e                   	pop    %esi
41602c:	5b                   	pop    %ebx
41602d:	33 cc                	xor    %esp,%ecx
41602f:	e8 fc 0a 00 00       	call   0x416b30
416034:	8b e5                	mov    %ebp,%esp
416036:	5d                   	pop    %ebp
416037:	c3                   	ret
416038:	83 c0 02             	add    $0x2,%eax
41603b:	8b cb                	mov    %ebx,%ecx
41603d:	56                   	push   %esi
41603e:	89 44 24 1c          	mov    %eax,0x1c(%esp)
416042:	e8 1b 01 00 00       	call   0x416162
416047:	3b c3                	cmp    %ebx,%eax
416049:	0f 84 4e ff ff ff    	je     0x415f9d
41604f:	68 f0 26 40 00       	push   $0x4026f0
416054:	56                   	push   %esi
416055:	ff 15 40 a4 44 00    	call   *0x44a440
41605b:	59                   	pop    %ecx
41605c:	59                   	pop    %ecx
41605d:	85 c0                	test   %eax,%eax
41605f:	0f 84 36 b6 00 00    	je     0x42169b
416065:	68 d8 26 40 00       	push   $0x4026d8
41606a:	56                   	push   %esi
41606b:	ff 15 40 a4 44 00    	call   *0x44a440
416071:	59                   	pop    %ecx
416072:	59                   	pop    %ecx
416073:	85 c0                	test   %eax,%eax
416075:	0f 84 33 b7 00 00    	je     0x4217ae
41607b:	68 c0 26 40 00       	push   $0x4026c0
416080:	56                   	push   %esi
416081:	ff 15 40 a4 44 00    	call   *0x44a440
416087:	59                   	pop    %ecx
416088:	59                   	pop    %ecx
416089:	85 c0                	test   %eax,%eax
41608b:	0f 84 2a b7 00 00    	je     0x4217bb
416091:	68 bc 26 40 00       	push   $0x4026bc
416096:	56                   	push   %esi
416097:	ff 15 40 a4 44 00    	call   *0x44a440
41609d:	59                   	pop    %ecx
41609e:	59                   	pop    %ecx
41609f:	85 c0                	test   %eax,%eax
4160a1:	0f 84 21 b7 00 00    	je     0x4217c8
4160a7:	68 a8 26 40 00       	push   $0x4026a8
4160ac:	56                   	push   %esi
4160ad:	ff 15 40 a4 44 00    	call   *0x44a440
4160b3:	59                   	pop    %ecx
4160b4:	59                   	pop    %ecx
4160b5:	85 c0                	test   %eax,%eax
4160b7:	0f 84 25 b7 00 00    	je     0x4217e2
4160bd:	0f b7 06             	movzwl (%esi),%eax
4160c0:	50                   	push   %eax
4160c1:	ff 15 18 a4 44 00    	call   *0x44a418
4160c7:	59                   	pop    %ecx
4160c8:	6a 44                	push   $0x44
4160ca:	59                   	pop    %ecx
4160cb:	66 3b c1             	cmp    %cx,%ax
4160ce:	0f 84 1b b7 00 00    	je     0x4217ef
4160d4:	68 9c 26 40 00       	push   $0x40269c
4160d9:	56                   	push   %esi
4160da:	ff 15 40 a4 44 00    	call   *0x44a440
4160e0:	59                   	pop    %ecx
4160e1:	59                   	pop    %ecx
4160e2:	85 c0                	test   %eax,%eax
4160e4:	74 6b                	je     0x416151
4160e6:	0f b7 06             	movzwl (%esi),%eax
4160e9:	50                   	push   %eax
4160ea:	ff 15 18 a4 44 00    	call   *0x44a418
4160f0:	59                   	pop    %ecx
4160f1:	66 83 f8 49          	cmp    $0x49,%ax
4160f5:	0f 84 96 b7 00 00    	je     0x421891
4160fb:	0f b7 06             	movzwl (%esi),%eax
4160fe:	50                   	push   %eax
4160ff:	ff 15 18 a4 44 00    	call   *0x44a418
416105:	59                   	pop    %ecx
416106:	66 83 f8 3f          	cmp    $0x3f,%ax
41610a:	0f 84 56 b9 00 00    	je     0x421a66
416110:	68 94 26 40 00       	push   $0x402694
416115:	56                   	push   %esi
416116:	ff 15 40 a4 44 00    	call   *0x44a440
41611c:	59                   	pop    %ecx
41611d:	59                   	pop    %ecx
41611e:	85 c0                	test   %eax,%eax
416120:	74 39                	je     0x41615b
416122:	68 8c 26 40 00       	push   $0x40268c
416127:	56                   	push   %esi
416128:	ff 15 40 a4 44 00    	call   *0x44a440
41612e:	59                   	pop    %ecx
41612f:	59                   	pop    %ecx
416130:	85 c0                	test   %eax,%eax
416132:	0f 85 71 b7 00 00    	jne    0x4218a9
416138:	09 9c 24 ac 00 00 00 	or     %ebx,0xac(%esp)
41613f:	66 83 8c 24 b0 00 00 	orw    $0x7,0xb0(%esp)
416146:	00 07
416148:	8b 44 24 14          	mov    0x14(%esp),%eax
41614c:	e9 3e fb ff ff       	jmp    0x415c8f
416151:	81 4c 24 0c 80 00 00 	orl    $0x80,0xc(%esp)
416158:	00
416159:	eb ed                	jmp    0x416148
41615b:	83 4c 24 0c 40       	orl    $0x40,0xc(%esp)
416160:	eb e6                	jmp    0x416148
416162:	8b ff                	mov    %edi,%edi
416164:	55                   	push   %ebp
416165:	8b ec                	mov    %esp,%ebp
416167:	51                   	push   %ecx
416168:	51                   	push   %ecx
416169:	53                   	push   %ebx
41616a:	8b 5d 08             	mov    0x8(%ebp),%ebx
41616d:	56                   	push   %esi
41616e:	8b f2                	mov    %edx,%esi
416170:	89 4d f8             	mov    %ecx,-0x8(%ebp)
416173:	33 c9                	xor    %ecx,%ecx
416175:	8b d1                	mov    %ecx,%edx
416177:	57                   	push   %edi
416178:	8b 06                	mov    (%esi),%eax
41617a:	8b f9                	mov    %ecx,%edi
41617c:	89 55 fc             	mov    %edx,-0x4(%ebp)
41617f:	eb 41                	jmp    0x4161c2
416181:	85 d2                	test   %edx,%edx
416183:	75 19                	jne    0x41619e
416185:	0f b7 00             	movzwl (%eax),%eax
416188:	50                   	push   %eax
416189:	ff 15 ac a3 44 00    	call   *0x44a3ac
41618f:	59                   	pop    %ecx
416190:	85 c0                	test   %eax,%eax
416192:	75 3d                	jne    0x4161d1
416194:	39 45 f8             	cmp    %eax,-0x8(%ebp)
416197:	75 30                	jne    0x4161c9
416199:	8b 55 fc             	mov    -0x4(%ebp),%edx
41619c:	33 c9                	xor    %ecx,%ecx
41619e:	3b 7d 0c             	cmp    0xc(%ebp),%edi
4161a1:	7d 17                	jge    0x4161ba
4161a3:	8b 0e                	mov    (%esi),%ecx
4161a5:	66 8b 01             	mov    (%ecx),%ax
4161a8:	66 89 03             	mov    %ax,(%ebx)
4161ab:	83 c3 02             	add    $0x2,%ebx
4161ae:	66 83 39 22          	cmpw   $0x22,(%ecx)
4161b2:	0f 84 cd bc 00 00    	je     0x421e85
4161b8:	33 c9                	xor    %ecx,%ecx
4161ba:	8b 06                	mov    (%esi),%eax
4161bc:	83 c0 02             	add    $0x2,%eax
4161bf:	47                   	inc    %edi
4161c0:	89 06                	mov    %eax,(%esi)
4161c2:	66 39 08             	cmp    %cx,(%eax)
4161c5:	75 ba                	jne    0x416181
4161c7:	eb 08                	jmp    0x4161d1
4161c9:	8b 06                	mov    (%esi),%eax
4161cb:	66 83 38 2f          	cmpw   $0x2f,(%eax)
4161cf:	75 c8                	jne    0x416199
4161d1:	33 c0                	xor    %eax,%eax
4161d3:	3b 7d 0c             	cmp    0xc(%ebp),%edi