410cbc:	8b ec                	mov    %esp,%ebp
410cbe:	83 ec 28             	sub    $0x28,%esp
410cc1:	a1 c0 d0 43 00       	mov    0x43d0c0,%eax
410cc6:	33 c5                	xor    %ebp,%eax
410cc8:	89 45 fc             	mov    %eax,-0x4(%ebp)
410ccb:	53                   	push   %ebx
410ccc:	56                   	push   %esi
410ccd:	57                   	push   %edi
410cce:	6a 41                	push   $0x41
410cd0:	5f                   	pop    %edi
410cd1:	8b f1                	mov    %ecx,%esi
410cd3:	89 7d ec             	mov    %edi,-0x14(%ebp)
410cd6:	6a 02                	push   $0x2
410cd8:	59                   	pop    %ecx
410cd9:	33 db                	xor    %ebx,%ebx
410cdb:	0f b7 46 2e          	movzwl 0x2e(%esi),%eax
410cdf:	6a 58                	push   $0x58
410ce1:	5a                   	pop    %edx
410ce2:	83 f8 64             	cmp    $0x64,%eax
410ce5:	77 6a                	ja     0x410d51
410ce7:	0f 84 8c 00 00 00    	je     0x410d79
410ced:	83 f8 53             	cmp    $0x53,%eax
410cf0:	77 2c                	ja     0x410d1e
410cf2:	0f 84 ae 00 00 00    	je     0x410da6
410cf8:	2b c7                	sub    %edi,%eax
410cfa:	74 16                	je     0x410d12
410cfc:	2b c1                	sub    %ecx,%eax
410cfe:	74 33                	je     0x410d33
410d00:	2b c1                	sub    %ecx,%eax
410d02:	74 0e                	je     0x410d12
410d04:	83 e8 01             	sub    $0x1,%eax
410d07:	74 09                	je     0x410d12
410d09:	83 e8 01             	sub    $0x1,%eax
410d0c:	0f 85 a8 00 00 00    	jne    0x410dba
410d12:	8b ce                	mov    %esi,%ecx
410d14:	e8 3f 06 00 00       	call   0x411358
410d19:	e9 98 00 00 00       	jmp    0x410db6
410d1e:	2b c2                	sub    %edx,%eax
410d20:	74 24                	je     0x410d46
410d22:	2b c1                	sub    %ecx,%eax
410d24:	74 17                	je     0x410d3d
410d26:	83 e8 07             	sub    $0x7,%eax
410d29:	74 e7                	je     0x410d12
410d2b:	2b c1                	sub    %ecx,%eax
410d2d:	0f 85 87 00 00 00    	jne    0x410dba
410d33:	53                   	push   %ebx
410d34:	8b ce                	mov    %esi,%ecx
410d36:	e8 59 08 00 00       	call   0x411594
410d3b:	eb 79                	jmp    0x410db6
410d3d:	8b ce                	mov    %esi,%ecx
410d3f:	e8 20 04 00 00       	call   0x411164
410d44:	eb 70                	jmp    0x410db6
410d46:	6a 01                	push   $0x1
410d48:	8b ce                	mov    %esi,%ecx
410d4a:	e8 6c de ff ff       	call   0x40ebbb
410d4f:	eb 65                	jmp    0x410db6
410d51:	83 f8 6f             	cmp    $0x6f,%eax
410d54:	77 3a                	ja     0x410d90
410d56:	74 2f                	je     0x410d87
410d58:	83 e8 65             	sub    $0x65,%eax
410d5b:	74 b5                	je     0x410d12
410d5d:	83 e8 01             	sub    $0x1,%eax
410d60:	74 b0                	je     0x410d12
410d62:	83 e8 01             	sub    $0x1,%eax
410d65:	74 ab                	je     0x410d12
410d67:	2b c1                	sub    %ecx,%eax
410d69:	74 0e                	je     0x410d79
410d6b:	83 e8 05             	sub    $0x5,%eax
410d6e:	75 4a                	jne    0x410dba
410d70:	8b ce                	mov    %esi,%ecx
410d72:	e8 c5 08 00 00       	call   0x41163c
410d77:	eb 3d                	jmp    0x410db6
410d79:	83 4e 1c 10          	orl    $0x10,0x1c(%esi)
410d7d:	53                   	push   %ebx
410d7e:	8b ce                	mov    %esi,%ecx
410d80:	e8 17 db ff ff       	call   0x40e89c
410d85:	eb 2f                	jmp    0x410db6
410d87:	8b ce                	mov    %esi,%ecx
410d89:	e8 50 09 00 00       	call   0x4116de
410d8e:	eb 26                	jmp    0x410db6
410d90:	83 e8 70             	sub    $0x70,%eax
410d93:	74 1a                	je     0x410daf
410d95:	83 e8 03             	sub    $0x3,%eax
410d98:	74 0c                	je     0x410da6
410d9a:	2b c1                	sub    %ecx,%eax
410d9c:	74 df                	je     0x410d7d
410d9e:	83 e8 03             	sub    $0x3,%eax
410da1:	75 17                	jne    0x410dba
410da3:	53                   	push   %ebx
410da4:	eb a2                	jmp    0x410d48
410da6:	8b ce                	mov    %esi,%ecx
410da8:	e8 ec 09 00 00       	call   0x411799
410dad:	eb 07                	jmp    0x410db6
410daf:	8b ce                	mov    %esi,%ecx
410db1:	e8 5b 09 00 00       	call   0x411711
410db6:	84 c0                	test   %al,%al
410db8:	75 07                	jne    0x410dc1
410dba:	32 c0                	xor    %al,%al
410dbc:	e9 dd 02 00 00       	jmp    0x41109e
410dc1:	38 5e 2c             	cmp    %bl,0x2c(%esi)
410dc4:	0f 85 d2 02 00 00    	jne    0x41109c
410dca:	8b 46 1c             	mov    0x1c(%esi),%eax
410dcd:	33 d2                	xor    %edx,%edx
410dcf:	c1 e8 04             	shr    $0x4,%eax
410dd2:	42                   	inc    %edx
410dd3:	89 5d f4             	mov    %ebx,-0xc(%ebp)
410dd6:	8b cb                	mov    %ebx,%ecx
410dd8:	66 89 5d f8          	mov    %bx,-0x8(%ebp)
410ddc:	89 4d f0             	mov    %ecx,-0x10(%ebp)
410ddf:	6a 20                	push   $0x20
410de1:	5f                   	pop    %edi
410de2:	84 c2                	test   %al,%dl
410de4:	74 33                	je     0x410e19
410de6:	8b 46 1c             	mov    0x1c(%esi),%eax
410de9:	c1 e8 06             	shr    $0x6,%eax
410dec:	84 c2                	test   %al,%dl
410dee:	74 04                	je     0x410df4
410df0:	6a 2d                	push   $0x2d
410df2:	eb 07                	jmp    0x410dfb
410df4:	84 56 1c             	test   %dl,0x1c(%esi)
410df7:	74 0e                	je     0x410e07
410df9:	6a 2b                	push   $0x2b
410dfb:	58                   	pop    %eax
410dfc:	8b ca                	mov    %edx,%ecx
410dfe:	66 89 45 f4          	mov    %ax,-0xc(%ebp)
410e02:	89 4d f0             	mov    %ecx,-0x10(%ebp)
410e05:	eb 12                	jmp    0x410e19
410e07:	8b 46 1c             	mov    0x1c(%esi),%eax
410e0a:	d1 e8                	shr    $1,%eax
410e0c:	84 c2                	test   %al,%dl
410e0e:	74 09                	je     0x410e19
410e10:	66 89 7d f4          	mov    %di,-0xc(%ebp)
410e14:	8b ca                	mov    %edx,%ecx
410e16:	89 55 f0             	mov    %edx,-0x10(%ebp)
410e19:	0f b7 56 2e          	movzwl 0x2e(%esi),%edx
410e1d:	6a 78                	push   $0x78
410e1f:	5f                   	pop    %edi
410e20:	66 3b d7             	cmp    %di,%dx
410e23:	74 08                	je     0x410e2d
410e25:	6a 58                	push   $0x58
410e27:	58                   	pop    %eax
410e28:	66 3b d0             	cmp    %ax,%dx
410e2b:	75 0c                	jne    0x410e39
410e2d:	8b 46 1c             	mov    0x1c(%esi),%eax
410e30:	c1 e8 05             	shr    $0x5,%eax
410e33:	b4 01                	mov    $0x1,%ah
410e35:	a8 01                	test   $0x1,%al
410e37:	75 02                	jne    0x410e3b
410e39:	8a e3                	mov    %bl,%ah
410e3b:	83 fa 61             	cmp    $0x61,%edx
410e3e:	74 08                	je     0x410e48
410e40:	8a c3                	mov    %bl,%al
410e42:	66 3b 55 ec          	cmp    -0x14(%ebp),%dx
410e46:	75 02                	jne    0x410e4a
410e48:	b0 01                	mov    $0x1,%al
410e4a:	c7 45 e8 30 00 00 00 	movl   $0x30,-0x18(%ebp)
410e51:	84 e4                	test   %ah,%ah
410e53:	75 04                	jne    0x410e59
410e55:	84 c0                	test   %al,%al
410e57:	74 23                	je     0x410e7c
410e59:	8b 45 e8             	mov    -0x18(%ebp),%eax
410e5c:	6a 58                	push   $0x58
410e5e:	66 89 44 4d f4       	mov    %ax,-0xc(%ebp,%ecx,2)
410e63:	58                   	pop    %eax
410e64:	66 3b d0             	cmp    %ax,%dx
410e67:	74 06                	je     0x410e6f
410e69:	66 3b 55 ec          	cmp    -0x14(%ebp),%dx
410e6d:	75 02                	jne    0x410e71
410e6f:	8b f8                	mov    %eax,%edi
410e71:	66 89 7c 4d f6       	mov    %di,-0xa(%ebp,%ecx,2)
410e76:	83 c1 02             	add    $0x2,%ecx
410e79:	89 4d f0             	mov    %ecx,-0x10(%ebp)
410e7c:	8b 56 20             	mov    0x20(%esi),%edx
410e7f:	2b 56 34             	sub    0x34(%esi),%edx
410e82:	2b d1                	sub    %ecx,%edx
410e84:	f6 46 1c 0c          	testb  $0xc,0x1c(%esi)
410e88:	89 55 dc             	mov    %edx,-0x24(%ebp)
410e8b:	75 5e                	jne    0x410eeb
410e8d:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
410e90:	85 d2                	test   %edx,%edx
410e92:	7e 57                	jle    0x410eeb
410e94:	8b 5e 14             	mov    0x14(%esi),%ebx
410e97:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
410e9a:	8b be 48 04 00 00    	mov    0x448(%esi),%edi
410ea0:	8b 47 08             	mov    0x8(%edi),%eax
410ea3:	3b 47 04             	cmp    0x4(%edi),%eax
410ea6:	75 11                	jne    0x410eb9
410ea8:	80 7f 0c 00          	cmpb   $0x0,0xc(%edi)
410eac:	74 03                	je     0x410eb1
410eae:	43                   	inc    %ebx
410eaf:	eb 03                	jmp    0x410eb4
410eb1:	83 cb ff             	or     $0xffffffff,%ebx
410eb4:	89 5e 14             	mov    %ebx,0x14(%esi)
410eb7:	eb 20                	jmp    0x410ed9
410eb9:	8d 43 01             	lea    0x1(%ebx),%eax
410ebc:	89 46 14             	mov    %eax,0x14(%esi)
410ebf:	ff 47 08             	incl   0x8(%edi)
410ec2:	8b 86 48 04 00 00    	mov    0x448(%esi),%eax
410ec8:	6a 20                	push   $0x20
410eca:	5b                   	pop    %ebx
410ecb:	8b 00                	mov    (%eax),%eax
410ecd:	66 89 18             	mov    %bx,(%eax)
410ed0:	8b 86 48 04 00 00    	mov    0x448(%esi),%eax
410ed6:	83 00 02             	addl   $0x2,(%eax)
410ed9:	8b 5e 14             	mov    0x14(%esi),%ebx
410edc:	83 fb ff             	cmp    $0xffffffff,%ebx
410edf:	74 05                	je     0x410ee6
410ee1:	41                   	inc    %ecx
410ee2:	3b ca                	cmp    %edx,%ecx
410ee4:	7c b4                	jl     0x410e9a
410ee6:	8b 4d f0             	mov    -0x10(%ebp),%ecx
410ee9:	33 db                	xor    %ebx,%ebx
410eeb:	ff 76 08             	push   0x8(%esi)
410eee:	8d 7e 14             	lea    0x14(%esi),%edi
410ef1:	57                   	push   %edi
410ef2:	51                   	push   %ecx
410ef3:	8d 86 48 04 00 00    	lea    0x448(%esi),%eax
410ef9:	8d 4d f4             	lea    -0xc(%ebp),%ecx
410efc:	89 45 e4             	mov    %eax,-0x1c(%ebp)
410eff:	51                   	push   %ecx
410f00:	8b c8                	mov    %eax,%ecx
410f02:	e8 0e 0c 00 00       	call   0x411b15
410f07:	8b 4e 1c             	mov    0x1c(%esi),%ecx
410f0a:	8d 96 48 04 00 00    	lea    0x448(%esi),%edx
410f10:	8b c1                	mov    %ecx,%eax
410f12:	c1 e8 03             	shr    $0x3,%eax
410f15:	a8 01                	test   $0x1,%al
410f17:	74 5b                	je     0x410f74
410f19:	c1 e9 02             	shr    $0x2,%ecx
410f1c:	f6 c1 01             	test   $0x1,%cl
410f1f:	75 53                	jne    0x410f74
410f21:	8b 4d dc             	mov    -0x24(%ebp),%ecx
410f24:	89 5d ec             	mov    %ebx,-0x14(%ebp)
410f27:	85 c9                	test   %ecx,%ecx
410f29:	7e 49                	jle    0x410f74
410f2b:	8b 02                	mov    (%edx),%eax
410f2d:	89 45 f0             	mov    %eax,-0x10(%ebp)
410f30:	8b d8                	mov    %eax,%ebx
410f32:	8b 40 08             	mov    0x8(%eax),%eax
410f35:	3b 43 04             	cmp    0x4(%ebx),%eax
410f38:	8b c3                	mov    %ebx,%eax
410f3a:	75 12                	jne    0x410f4e
410f3c:	80 78 0c 00          	cmpb   $0x0,0xc(%eax)
410f40:	74 05                	je     0x410f47
410f42:	8b 07                	mov    (%edi),%eax
410f44:	40                   	inc    %eax
410f45:	eb 03                	jmp    0x410f4a
410f47:	83 c8 ff             	or     $0xffffffff,%eax
410f4a:	89 07                	mov    %eax,(%edi)
410f4c:	eb 14                	jmp    0x410f62
410f4e:	ff 07                	incl   (%edi)
410f50:	ff 40 08             	incl   0x8(%eax)
410f53:	8b 02                	mov    (%edx),%eax
410f55:	8b 5d e8             	mov    -0x18(%ebp),%ebx
410f58:	8b 00                	mov    (%eax),%eax
410f5a:	66 89 18             	mov    %bx,(%eax)
410f5d:	8b 02                	mov    (%edx),%eax
410f5f:	83 00 02             	addl   $0x2,(%eax)
410f62:	83 3f ff             	cmpl   $0xffffffff,(%edi)
410f65:	74 0b                	je     0x410f72
410f67:	8b 45 ec             	mov    -0x14(%ebp),%eax
410f6a:	40                   	inc    %eax
410f6b:	89 45 ec             	mov    %eax,-0x14(%ebp)
410f6e:	3b c1                	cmp    %ecx,%eax
410f70:	7c b9                	jl     0x410f2b
410f72:	33 db                	xor    %ebx,%ebx
410f74:	80 7e 38 00          	cmpb   $0x0,0x38(%esi)
410f78:	0f 85 ad 00 00 00    	jne    0x41102b
410f7e:	39 5e 34             	cmp    %ebx,0x34(%esi)
410f81:	0f 8e a4 00 00 00    	jle    0x41102b
410f87:	8b 46 08             	mov    0x8(%esi),%eax
410f8a:	89 45 e0             	mov    %eax,-0x20(%ebp)
410f8d:	80 78 14 00          	cmpb   $0x0,0x14(%eax)
410f91:	75 0a                	jne    0x410f9d
410f93:	8b c8                	mov    %eax,%ecx
410f95:	e8 26 09 00 00       	call   0x4118c0
410f9a:	8b 45 e0             	mov    -0x20(%ebp),%eax
410f9d:	8b 4e 30             	mov    0x30(%esi),%ecx
410fa0:	89 4d e8             	mov    %ecx,-0x18(%ebp)
410fa3:	89 5d ec             	mov    %ebx,-0x14(%ebp)
410fa6:	39 5e 34             	cmp    %ebx,0x34(%esi)
410fa9:	0f 84 8d 00 00 00    	je     0x41103c
410faf:	8b 40 0c             	mov    0xc(%eax),%eax
410fb2:	33 d2                	xor    %edx,%edx
410fb4:	ff 76 08             	push   0x8(%esi)
410fb7:	66 89 55 f0          	mov    %dx,-0x10(%ebp)
410fbb:	ff 70 04             	push   0x4(%eax)
410fbe:	8d 45 f0             	lea    -0x10(%ebp),%eax
410fc1:	51                   	push   %ecx
410fc2:	50                   	push   %eax
410fc3:	e8 0d c7 00 00       	call   0x41d6d5
410fc8:	83 c4 10             	add    $0x10,%esp
410fcb:	89 45 f4             	mov    %eax,-0xc(%ebp)
410fce:	8d 96 48 04 00 00    	lea    0x448(%esi),%edx
410fd4:	85 c0                	test   %eax,%eax
410fd6:	7e 4e                	jle    0x411026
410fd8:	8b 0a                	mov    (%edx),%ecx
410fda:	0f b7 45 f0          	movzwl -0x10(%ebp),%eax
410fde:	89 45 d8             	mov    %eax,-0x28(%ebp)
410fe1:	8b 41 08             	mov    0x8(%ecx),%eax
410fe4:	3b 41 04             	cmp    0x4(%ecx),%eax
410fe7:	75 0f                	jne    0x410ff8
410fe9:	80 79 0c 00          	cmpb   $0x0,0xc(%ecx)
410fed:	74 04                	je     0x410ff3
410fef:	ff 07                	incl   (%edi)
410ff1:	eb 19                	jmp    0x41100c
410ff3:	83 0f ff             	orl    $0xffffffff,(%edi)
410ff6:	eb 14                	jmp    0x41100c
410ff8:	ff 07                	incl   (%edi)
410ffa:	ff 41 08             	incl   0x8(%ecx)
410ffd:	8b 02                	mov    (%edx),%eax
410fff:	8b 4d d8             	mov    -0x28(%ebp),%ecx
411002:	8b 00                	mov    (%eax),%eax
411004:	66 89 08             	mov    %cx,(%eax)
411007:	8b 02                	mov    (%edx),%eax
411009:	83 00 02             	addl   $0x2,(%eax)
41100c:	8b 4d e8             	mov    -0x18(%ebp),%ecx
41100f:	03 4d f4             	add    -0xc(%ebp),%ecx
411012:	8b 45 ec             	mov    -0x14(%ebp),%eax
411015:	40                   	inc    %eax
411016:	89 4d e8             	mov    %ecx,-0x18(%ebp)
411019:	3b 46 34             	cmp    0x34(%esi),%eax
41101c:	89 45 ec             	mov    %eax,-0x14(%ebp)
41101f:	8b 45 e0             	mov    -0x20(%ebp),%eax
411022:	75 8b                	jne    0x410faf
411024:	eb 1c                	jmp    0x411042
411026:	83 0f ff             	orl    $0xffffffff,(%edi)
411029:	eb 17                	jmp    0x411042
41102b:	ff 76 08             	push   0x8(%esi)
41102e:	8b ca                	mov    %edx,%ecx
411030:	57                   	push   %edi
411031:	ff 76 34             	push   0x34(%esi)
411034:	ff 76 30             	push   0x30(%esi)
411037:	e8 d9 0a 00 00       	call   0x411b15
41103c:	8d 96 48 04 00 00    	lea    0x448(%esi),%edx
411042:	8b 0f                	mov    (%edi),%ecx
411044:	85 c9                	test   %ecx,%ecx
411046:	78 54                	js     0x41109c
411048:	8b 46 1c             	mov    0x1c(%esi),%eax
41104b:	c1 e8 02             	shr    $0x2,%eax
41104e:	a8 01                	test   $0x1,%al
411050:	74 4a                	je     0x41109c
411052:	8b 75 dc             	mov    -0x24(%ebp),%esi
411055:	85 f6                	test   %esi,%esi
411057:	7e 43                	jle    0x41109c
411059:	8b 12                	mov    (%edx),%edx
41105b:	8b 42 08             	mov    0x8(%edx),%eax
41105e:	3b 42 04             	cmp    0x4(%edx),%eax
411061:	75 13                	jne    0x411076
411063:	80 7a 0c 00          	cmpb   $0x0,0xc(%edx)