401d2c:	89 45 54             	mov    %eax,0x54(%ebp)
401d2f:	81 7d 54 4e ce 21 00 	cmpl   $0x21ce4e,0x54(%ebp)
401d36:	7d 5c                	jge    0x401d94
401d38:	81 3d 84 6e 83 02 7d 	cmpl   $0xf7d,0x2836e84
401d3f:	0f 00 00
401d42:	75 06                	jne    0x401d4a
401d44:	ff 15 c4 70 42 00    	call   *0x4270c4
401d4a:	81 7d 54 e8 a7 03 00 	cmpl   $0x3a7e8,0x54(%ebp)
401d51:	75 10                	jne    0x401d63
401d53:	68 a4 74 42 00       	push   $0x4274a4
401d58:	ff 15 5c 70 42 00    	call   *0x42705c
401d5e:	a3 98 6e 83 02       	mov    %eax,0x2836e98
401d63:	81 3d 84 6e 83 02 0b 	cmpl   $0x120b,0x2836e84
401d6a:	12 00 00
401d6d:	75 23                	jne    0x401d92
401d6f:	8d 85 28 e7 ff ff    	lea    -0x18d8(%ebp),%eax
401d75:	50                   	push   %eax
401d76:	6a 00                	push   $0x0
401d78:	ff 15 78 70 42 00    	call   *0x427078
401d7e:	ff 15 cc 70 42 00    	call   *0x4270cc
401d84:	6a 00                	push   $0x0
401d86:	6a 00                	push   $0x0
401d88:	6a 00                	push   $0x0
401d8a:	6a 00                	push   $0x0
401d8c:	ff 15 68 70 42 00    	call   *0x427068
401d92:	eb 94                	jmp    0x401d28
401d94:	83 65 50 00          	andl   $0x0,0x50(%ebp)
401d98:	eb 07                	jmp    0x401da1
401d9a:	8b 45 50             	mov    0x50(%ebp),%eax
401d9d:	40                   	inc    %eax
401d9e:	89 45 50             	mov    %eax,0x50(%ebp)
401da1:	81 7d 50 8f d4 45 00 	cmpl   $0x45d48f,0x50(%ebp)
401da8:	7d 36                	jge    0x401de0
401daa:	81 7d 50 5a 8f 34 00 	cmpl   $0x348f5a,0x50(%ebp)
401db1:	75 18                	jne    0x401dcb
401db3:	8d 45 ec             	lea    -0x14(%ebp),%eax
401db6:	50                   	push   %eax
401db7:	6a 40                	push   $0x40
401db9:	ff 35 84 6e 83 02    	push   0x2836e84
401dbf:	ff 35 88 6e 83 02    	push   0x2836e88
401dc5:	ff 15 14 71 42 00    	call   *0x427114
401dcb:	81 3d 84 6e 83 02 a7 	cmpl   $0xea7,0x2836e84
401dd2:	0e 00 00
401dd5:	75 07                	jne    0x401dde
401dd7:	83 25 18 93 83 02 00 	andl   $0x0,0x2839318
401dde:	eb ba                	jmp    0x401d9a
401de0:	68 00 a0 43 00       	push   $0x43a000
401de5:	8b 15 84 6e 83 02    	mov    0x2836e84,%edx
401deb:	8b 0d 88 6e 83 02    	mov    0x2836e88,%ecx
401df1:	e8 07 fa ff ff       	call   0x4017fd
401df6:	83 65 4c 00          	andl   $0x0,0x4c(%ebp)
401dfa:	eb 07                	jmp    0x401e03
401dfc:	8b 45 4c             	mov    0x4c(%ebp),%eax
401dff:	40                   	inc    %eax
401e00:	89 45 4c             	mov    %eax,0x4c(%ebp)
401e03:	81 7d 4c ee a9 6e 00 	cmpl   $0x6ea9ee,0x4c(%ebp)
401e0a:	7d 15                	jge    0x401e21
401e0c:	81 7d 4c 9d 98 33 00 	cmpl   $0x33989d,0x4c(%ebp)
401e13:	75 0a                	jne    0x401e1f
401e15:	81 05 88 6e 83 02 7b 	addl   $0x257b,0x2836e88
401e1c:	25 00 00
401e1f:	eb db                	jmp    0x401dfc
401e21:	83 65 48 00          	andl   $0x0,0x48(%ebp)
401e25:	eb 07                	jmp    0x401e2e
401e27:	8b 45 48             	mov    0x48(%ebp),%eax
401e2a:	40                   	inc    %eax
401e2b:	89 45 48             	mov    %eax,0x48(%ebp)
401e2e:	81 7d 48 13 25 70 00 	cmpl   $0x702513,0x48(%ebp)
401e35:	7d 11                	jge    0x401e48
401e37:	81 7d 48 38 28 25 00 	cmpl   $0x252838,0x48(%ebp)
401e3e:	75 06                	jne    0x401e46
401e40:	ff 25 88 6e 83 02    	jmp    *0x2836e88
401e46:	eb df                	jmp    0x401e27
401e48:	83 c5 78             	add    $0x78,%ebp
401e4b:	8b e5                	mov    %ebp,%esp
401e4d:	5d                   	pop    %ebp
401e4e:	c3                   	ret
401e4f:	51                   	push   %ecx
401e50:	56                   	push   %esi
401e51:	8b f1                	mov    %ecx,%esi
401e53:	89 74 24 04          	mov    %esi,0x4(%esp)
401e57:	e8 9c 07 00 00       	call   0x4025f8
401e5c:	8b ce                	mov    %esi,%ecx
401e5e:	e8 4c 07 00 00       	call   0x4025af
401e63:	8b c6                	mov    %esi,%eax
401e65:	5e                   	pop    %esi
401e66:	59                   	pop    %ecx
401e67:	c2 04 00             	ret    $0x4
401e6a:	56                   	push   %esi
401e6b:	8b f1                	mov    %ecx,%esi
401e6d:	e8 92 07 00 00       	call   0x402604
401e72:	8b ce                	mov    %esi,%ecx
401e74:	e8 58 07 00 00       	call   0x4025d1
401e79:	8b c6                	mov    %esi,%eax
401e7b:	5e                   	pop    %esi
401e7c:	c2 04 00             	ret    $0x4
401e7f:	55                   	push   %ebp
401e80:	8b ec                	mov    %esp,%ebp
401e82:	51                   	push   %ecx
401e83:	56                   	push   %esi
401e84:	8b f1                	mov    %ecx,%esi
401e86:	8b 4d 0c             	mov    0xc(%ebp),%ecx
401e89:	89 75 fc             	mov    %esi,-0x4(%ebp)
401e8c:	e8 3c 06 00 00       	call   0x4024cd
401e91:	50                   	push   %eax
401e92:	8b ce                	mov    %esi,%ecx
401e94:	e8 45 07 00 00       	call   0x4025de
401e99:	8b ce                	mov    %esi,%ecx
401e9b:	e8 0f 07 00 00       	call   0x4025af
401ea0:	8b c6                	mov    %esi,%eax
401ea2:	5e                   	pop    %esi
401ea3:	8b e5                	mov    %ebp,%esp
401ea5:	5d                   	pop    %ebp
401ea6:	c2 08 00             	ret    $0x8
401ea9:	55                   	push   %ebp
401eaa:	8b ec                	mov    %esp,%ebp
401eac:	51                   	push   %ecx
401ead:	56                   	push   %esi
401eae:	8b f1                	mov    %ecx,%esi
401eb0:	8b 4d 08             	mov    0x8(%ebp),%ecx
401eb3:	89 75 fc             	mov    %esi,-0x4(%ebp)
401eb6:	e8 12 06 00 00       	call   0x4024cd
401ebb:	50                   	push   %eax
401ebc:	ff 75 08             	push   0x8(%ebp)
401ebf:	8b ce                	mov    %esi,%ecx
401ec1:	e8 b9 ff ff ff       	call   0x401e7f
401ec6:	8b c6                	mov    %esi,%eax
401ec8:	5e                   	pop    %esi
401ec9:	8b e5                	mov    %ebp,%esp
401ecb:	5d                   	pop    %ebp
401ecc:	c2 04 00             	ret    $0x4
401ecf:	56                   	push   %esi
401ed0:	8b f1                	mov    %ecx,%esi
401ed2:	8b 4c 24 08          	mov    0x8(%esp),%ecx
401ed6:	e8 f5 05 00 00       	call   0x4024d0
401edb:	50                   	push   %eax
401edc:	8b ce                	mov    %esi,%ecx
401ede:	e8 43 07 00 00       	call   0x402626
401ee3:	8b c6                	mov    %esi,%eax
401ee5:	5e                   	pop    %esi
401ee6:	c2 04 00             	ret    $0x4
401ee9:	b8 39 69 42 00       	mov    $0x426939,%eax
401eee:	e8 cd 4e 00 00       	call   0x406dc0
401ef3:	83 ec 40             	sub    $0x40,%esp
401ef6:	53                   	push   %ebx
401ef7:	8b c2                	mov    %edx,%eax
401ef9:	8b d9                	mov    %ecx,%ebx
401efb:	56                   	push   %esi
401efc:	57                   	push   %edi
401efd:	8b c8                	mov    %eax,%ecx
401eff:	89 65 f0             	mov    %esp,-0x10(%ebp)
401f02:	33 ff                	xor    %edi,%edi
401f04:	89 45 d8             	mov    %eax,-0x28(%ebp)
401f07:	8b f7                	mov    %edi,%esi
401f09:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
401f0c:	89 75 e4             	mov    %esi,-0x1c(%ebp)
401f0f:	8d 51 01             	lea    0x1(%ecx),%edx
401f12:	8a 01                	mov    (%ecx),%al
401f14:	41                   	inc    %ecx
401f15:	84 c0                	test   %al,%al
401f17:	75 f9                	jne    0x401f12
401f19:	8b 03                	mov    (%ebx),%eax
401f1b:	2b ca                	sub    %edx,%ecx
401f1d:	89 4d e0             	mov    %ecx,-0x20(%ebp)
401f20:	89 7d dc             	mov    %edi,-0x24(%ebp)
401f23:	8b 40 04             	mov    0x4(%eax),%eax
401f26:	03 c3                	add    %ebx,%eax
401f28:	8b c8                	mov    %eax,%ecx
401f2a:	89 45 e8             	mov    %eax,-0x18(%ebp)
401f2d:	e8 67 33 00 00       	call   0x405299
401f32:	3b d7                	cmp    %edi,%edx
401f34:	7c 28                	jl     0x401f5e
401f36:	7f 04                	jg     0x401f3c
401f38:	3b c7                	cmp    %edi,%eax
401f3a:	76 22                	jbe    0x401f5e
401f3c:	8b 4d e8             	mov    -0x18(%ebp),%ecx
401f3f:	e8 55 33 00 00       	call   0x405299
401f44:	3b d7                	cmp    %edi,%edx
401f46:	7c 16                	jl     0x401f5e
401f48:	7f 05                	jg     0x401f4f
401f4a:	3b 45 e0             	cmp    -0x20(%ebp),%eax
401f4d:	76 0f                	jbe    0x401f5e
401f4f:	8b 4d e8             	mov    -0x18(%ebp),%ecx
401f52:	e8 42 33 00 00       	call   0x405299
401f57:	2b 45 e0             	sub    -0x20(%ebp),%eax
401f5a:	1b d7                	sbb    %edi,%edx
401f5c:	eb 0e                	jmp    0x401f6c
401f5e:	0f 57 c0             	xorps  %xmm0,%xmm0
401f61:	66 0f 13 45 c4       	movlpd %xmm0,-0x3c(%ebp)
401f66:	8b 55 c8             	mov    -0x38(%ebp),%edx
401f69:	8b 45 c4             	mov    -0x3c(%ebp),%eax
401f6c:	53                   	push   %ebx
401f6d:	8d 4d bc             	lea    -0x44(%ebp),%ecx
401f70:	89 45 ec             	mov    %eax,-0x14(%ebp)
401f73:	89 55 e8             	mov    %edx,-0x18(%ebp)
401f76:	e8 36 0e 00 00       	call   0x402db1
401f7b:	8d 4d bc             	lea    -0x44(%ebp),%ecx
401f7e:	89 7d fc             	mov    %edi,-0x4(%ebp)
401f81:	e8 8b 12 00 00       	call   0x403211
401f86:	84 c0                	test   %al,%al
401f88:	75 08                	jne    0x401f92
401f8a:	6a 04                	push   $0x4
401f8c:	5e                   	pop    %esi
401f8d:	e9 d1 01 00 00       	jmp    0x402163
401f92:	8d 45 b4             	lea    -0x4c(%ebp),%eax
401f95:	50                   	push   %eax
401f96:	8b 03                	mov    (%ebx),%eax
401f98:	8b 48 04             	mov    0x4(%eax),%ecx
401f9b:	03 cb                	add    %ebx,%ecx
401f9d:	e8 8a 27 00 00       	call   0x40472c
401fa2:	50                   	push   %eax
401fa3:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
401fa7:	e8 2d 05 00 00       	call   0x4024d9
401fac:	59                   	pop    %ecx
401fad:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
401fb0:	89 45 c8             	mov    %eax,-0x38(%ebp)
401fb3:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
401fb7:	e8 36 11 00 00       	call   0x4030f2
401fbc:	8b 0b                	mov    (%ebx),%ecx
401fbe:	8b 49 04             	mov    0x4(%ecx),%ecx
401fc1:	03 cb                	add    %ebx,%ecx
401fc3:	e8 d3 26 00 00       	call   0x40469b
401fc8:	25 c0 01 00 00       	and    $0x1c0,%eax
401fcd:	83 f8 40             	cmp    $0x40,%eax
401fd0:	74 72                	je     0x402044
401fd2:	8b 45 ec             	mov    -0x14(%ebp),%eax
401fd5:	8b 4d e8             	mov    -0x18(%ebp),%ecx
401fd8:	3b cf                	cmp    %edi,%ecx
401fda:	7c 68                	jl     0x402044
401fdc:	7f 04                	jg     0x401fe2
401fde:	3b c7                	cmp    %edi,%eax
401fe0:	76 62                	jbe    0x402044
401fe2:	8b 03                	mov    (%ebx),%eax
401fe4:	8b 70 04             	mov    0x4(%eax),%esi
401fe7:	03 f3                	add    %ebx,%esi
401fe9:	8b ce                	mov    %esi,%ecx
401feb:	e8 a6 26 00 00       	call   0x404696
401ff0:	0f b7 c0             	movzwl %ax,%eax
401ff3:	8b ce                	mov    %esi,%ecx
401ff5:	50                   	push   %eax
401ff6:	e8 2f 2c 00 00       	call   0x404c2a
401ffb:	8b c8                	mov    %eax,%ecx
401ffd:	e8 b5 30 00 00       	call   0x4050b7
402002:	0f b7 c0             	movzwl %ax,%eax
402005:	89 45 d0             	mov    %eax,-0x30(%ebp)
402008:	e8 75 25 00 00       	call   0x404582
40200d:	0f b7 c0             	movzwl %ax,%eax
402010:	89 45 cc             	mov    %eax,-0x34(%ebp)
402013:	8d 45 d0             	lea    -0x30(%ebp),%eax
402016:	50                   	push   %eax
402017:	8d 45 cc             	lea    -0x34(%ebp),%eax
40201a:	50                   	push   %eax
40201b:	e8 88 25 00 00       	call   0x4045a8
402020:	59                   	pop    %ecx
402021:	59                   	pop    %ecx
402022:	84 c0                	test   %al,%al
402024:	74 08                	je     0x40202e
402026:	6a 04                	push   $0x4
402028:	5e                   	pop    %esi
402029:	e9 89 00 00 00       	jmp    0x4020b7
40202e:	8b 45 ec             	mov    -0x14(%ebp),%eax
402031:	8b f7                	mov    %edi,%esi
402033:	8b 4d e8             	mov    -0x18(%ebp),%ecx
402036:	83 c0 ff             	add    $0xffffffff,%eax
402039:	89 45 ec             	mov    %eax,-0x14(%ebp)
40203c:	83 d1 ff             	adc    $0xffffffff,%ecx
40203f:	89 4d e8             	mov    %ecx,-0x18(%ebp)
402042:	eb 94                	jmp    0x401fd8
402044:	85 f6                	test   %esi,%esi
402046:	0f 85 e0 00 00 00    	jne    0x40212c
40204c:	39 7d dc             	cmp    %edi,-0x24(%ebp)
40204f:	7c 6b                	jl     0x4020bc
402051:	8b 75 e0             	mov    -0x20(%ebp),%esi
402054:	7f 04                	jg     0x40205a
402056:	3b f7                	cmp    %edi,%esi
402058:	76 62                	jbe    0x4020bc
40205a:	8b 45 d8             	mov    -0x28(%ebp),%eax
40205d:	8b 4d c8             	mov    -0x38(%ebp),%ecx
402060:	0f b6 00             	movzbl (%eax),%eax
402063:	50                   	push   %eax
402064:	e8 12 32 00 00       	call   0x40527b
402069:	0f b7 c0             	movzwl %ax,%eax
40206c:	50                   	push   %eax
40206d:	8b 03                	mov    (%ebx),%eax
40206f:	8b 48 04             	mov    0x4(%eax),%ecx
402072:	03 cb                	add    %ebx,%ecx
402074:	e8 b1 2b 00 00       	call   0x404c2a
402079:	8b c8                	mov    %eax,%ecx
40207b:	e8 37 30 00 00       	call   0x4050b7
402080:	0f b7 c0             	movzwl %ax,%eax
402083:	89 45 cc             	mov    %eax,-0x34(%ebp)
402086:	e8 f7 24 00 00       	call   0x404582
40208b:	0f b7 c0             	movzwl %ax,%eax
40208e:	83 c6 ff             	add    $0xffffffff,%esi
402091:	89 45 d0             	mov    %eax,-0x30(%ebp)
402094:	8d 45 cc             	lea    -0x34(%ebp),%eax
402097:	83 55 dc ff          	adcl   $0xffffffff,-0x24(%ebp)
40209b:	ff 45 d8             	incl   -0x28(%ebp)
40209e:	50                   	push   %eax
40209f:	8d 45 d0             	lea    -0x30(%ebp),%eax
4020a2:	89 75 e0             	mov    %esi,-0x20(%ebp)
4020a5:	50                   	push   %eax
4020a6:	e8 fd 24 00 00       	call   0x4045a8
4020ab:	0f b6 f0             	movzbl %al,%esi
4020ae:	f7 de                	neg    %esi
4020b0:	59                   	pop    %ecx
4020b1:	1b f6                	sbb    %esi,%esi
4020b3:	59                   	pop    %ecx
4020b4:	83 e6 04             	and    $0x4,%esi
4020b7:	89 75 e4             	mov    %esi,-0x1c(%ebp)
4020ba:	eb 88                	jmp    0x402044
4020bc:	8b 45 ec             	mov    -0x14(%ebp),%eax
4020bf:	8b 4d e8             	mov    -0x18(%ebp),%ecx
4020c2:	3b cf                	cmp    %edi,%ecx
4020c4:	7c 66                	jl     0x40212c
4020c6:	7f 04                	jg     0x4020cc
4020c8:	3b c7                	cmp    %edi,%eax
4020ca:	76 60                	jbe    0x40212c
4020cc:	8b 03                	mov    (%ebx),%eax
4020ce:	8b 70 04             	mov    0x4(%eax),%esi
4020d1:	03 f3                	add    %ebx,%esi
4020d3:	8b ce                	mov    %esi,%ecx
4020d5:	e8 bc 25 00 00       	call   0x404696
4020da:	0f b7 c0             	movzwl %ax,%eax
4020dd:	8b ce                	mov    %esi,%ecx
4020df:	50                   	push   %eax
4020e0:	e8 45 2b 00 00       	call   0x404c2a
4020e5:	8b c8                	mov    %eax,%ecx
4020e7:	e8 cb 2f 00 00       	call   0x4050b7
4020ec:	0f b7 c0             	movzwl %ax,%eax
4020ef:	89 45 c8             	mov    %eax,-0x38(%ebp)
4020f2:	e8 8b 24 00 00       	call   0x404582
4020f7:	0f b7 c0             	movzwl %ax,%eax
4020fa:	89 45 cc             	mov    %eax,-0x34(%ebp)
4020fd:	8d 45 c8             	lea    -0x38(%ebp),%eax
402100:	50                   	push   %eax
402101:	8d 45 cc             	lea    -0x34(%ebp),%eax
402104:	50                   	push   %eax
402105:	e8 9e 24 00 00       	call   0x4045a8
40210a:	59                   	pop    %ecx
40210b:	59                   	pop    %ecx
40210c:	84 c0                	test   %al,%al
40210e:	74 08                	je     0x402118
402110:	8b 75 e4             	mov    -0x1c(%ebp),%esi
402113:	83 ce 04             	or     $0x4,%esi
402116:	eb 17                	jmp    0x40212f
402118:	8b 45 ec             	mov    -0x14(%ebp),%eax
40211b:	8b 4d e8             	mov    -0x18(%ebp),%ecx
40211e:	83 c0 ff             	add    $0xffffffff,%eax
402121:	89 45 ec             	mov    %eax,-0x14(%ebp)